dev #84
|
@ -233,7 +233,7 @@ const calc_table = computed(() => {
|
||||||
v-model="form_state.total_length" :ref="form_refs.total_length" />
|
v-model="form_state.total_length" :ref="form_refs.total_length" />
|
||||||
</div>
|
</div>
|
||||||
<div class="form-item text-sm xl:text-base">
|
<div class="form-item text-sm xl:text-base">
|
||||||
<p v-if="form_state.total_length_mm < parametric.length.min" class="text-ioprim">
|
<p v-if="form_state.total_length_mm < parametric.length.min" class="text-ioprim test-sm">
|
||||||
Выбранный размер забора слишком мал для расчета стоимости. Пожалуйста, выберите больший
|
Выбранный размер забора слишком мал для расчета стоимости. Пожалуйста, выберите больший
|
||||||
размер, чтобы продолжить.
|
размер, чтобы продолжить.
|
||||||
</p>
|
</p>
|
||||||
|
|
|
@ -48,7 +48,7 @@ const count_pos = () => {
|
||||||
new Box3().expandByObject(line1).getSize(line1_size)
|
new Box3().expandByObject(line1).getSize(line1_size)
|
||||||
line1.getWorldPosition(line1_pos)
|
line1.getWorldPosition(line1_pos)
|
||||||
}
|
}
|
||||||
const k = ((line1_size.x / props.count) - line1_size.z) * 0.5
|
const k = (line1_size.x / props.count) * 0.5 + 0.05
|
||||||
switch (props.number) {
|
switch (props.number) {
|
||||||
case 1: break;
|
case 1: break;
|
||||||
case 2:
|
case 2:
|
||||||
|
@ -80,7 +80,7 @@ watch(() => [props.count, fence_section.value, section_count.value, extra_sectio
|
||||||
:position-z="position.z">
|
:position-z="position.z">
|
||||||
<TresGroup :name="`line_${props.number}_inner`">
|
<TresGroup :name="`line_${props.number}_inner`">
|
||||||
<template v-for="i in props.count">
|
<template v-for="i in props.count">
|
||||||
<template v-if="(i + (props.number - 1) * props.count) <= 1"
|
<template v-if="(i + (props.number - 1) * props.count) <= Math.min(total, max_size)"
|
||||||
:key="(i + (props.number - 1) * props.count)">
|
:key="(i + (props.number - 1) * props.count)">
|
||||||
<ModelFence :index="i" :models="props.models"
|
<ModelFence :index="i" :models="props.models"
|
||||||
:last_element="(i + (props.number - 1) * props.count) == total"
|
:last_element="(i + (props.number - 1) * props.count) == total"
|
||||||
|
|
|
@ -74,8 +74,9 @@ watch(() => [section_count.value, extra_section.value], () => {
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
const setTarget = (smooth = false) => {
|
const setTarget = (smooth = false) => {
|
||||||
let f = fence_section.value * lamelles_count.value * lamelle_height.value * 0.75
|
let f = fence_section.value * lamelles_count.value * lamelle_height.value * 0.75;
|
||||||
if (f < 3) f = 3
|
const max = 2.25
|
||||||
|
if (f < max) f = max
|
||||||
const target = new Vector3(0, lamelles_count.value * lamelle_height.value * 0.5, 0);
|
const target = new Vector3(0, lamelles_count.value * lamelle_height.value * 0.5, 0);
|
||||||
if (smooth) {
|
if (smooth) {
|
||||||
goto_target.value = target
|
goto_target.value = target
|
||||||
|
@ -96,10 +97,11 @@ watch(open_calc, () => {
|
||||||
setTarget(true)
|
setTarget(true)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
const min_for_square = 12
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<TresGroup name="base">
|
<TresGroup name="base">
|
||||||
<template v-for="line in (total >= 4) ? 4 : 1" :key="`${line}_${count}`">
|
<template v-for="line in (total >= min_for_square) ? 4 : 1" :key="`${line}_${count}`">
|
||||||
<ModelLine :models="{
|
<ModelLine :models="{
|
||||||
top,
|
top,
|
||||||
pillar_center, pillar_top, pillar_bottom, pillar_inner,
|
pillar_center, pillar_top, pillar_bottom, pillar_inner,
|
||||||
|
|
|
@ -19,7 +19,7 @@ export const use_section_count = () => useState('section_count', () => n)
|
||||||
export const use_extra_section = () => useState('extra_section', () => 0)
|
export const use_extra_section = () => useState('extra_section', () => 0)
|
||||||
export const use_total_length = () => useState('total_length', () => (((min + 104) * n) + 104) * 0.001)
|
export const use_total_length = () => useState('total_length', () => (((min + 104) * n) + 104) * 0.001)
|
||||||
export const use_min_length = () => useState('min_length', () => 700)
|
export const use_min_length = () => useState('min_length', () => 700)
|
||||||
export const use_max_size = () => useState<number>('max_size', () => 20)
|
export const use_max_size = () => useState<number>('max_size', () => 2)
|
||||||
export const use_explosion_state = () => useState<boolean>('explosion_state', () => false)
|
export const use_explosion_state = () => useState<boolean>('explosion_state', () => false)
|
||||||
|
|
||||||
export const use_goto_camera = () => useState<Vector3 | undefined>('gotocam', () => undefined)
|
export const use_goto_camera = () => useState<Vector3 | undefined>('gotocam', () => undefined)
|
||||||
|
|
Loading…
Reference in New Issue