From 35547e551de45d63aea8dd07f5ff9e29d6d650b6 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 29 Aug 2026 10:27:32 +0900 Subject: [PATCH] =?UTF-8?q?fix(B06):=20=EC=9C=A0=EC=9E=85=EC=B8=A1=20?= =?UTF-8?q?=EB=8B=A4=EB=8B=A8=EC=9D=98=20=EC=A2=8C=EC=9A=B0=20=EC=A1=B0?= =?UTF-8?q?=EC=9E=91=20=EB=B6=80=ED=98=B8=EB=A5=BC=20=EB=B0=94=EB=A1=9C?= =?UTF-8?q?=EC=9E=A1=EA=B3=A0=20=ED=86=B5=EB=82=98=EB=AC=B4=C2=B7=EB=AA=A9?= =?UTF-8?q?=EC=9E=AC=ED=8B=80=C2=B7=EB=B0=94=EC=9E=90=20=ED=95=9C=EA=B3=84?= =?UTF-8?q?=EB=A5=BC=202m=EB=A1=9C=20=EB=91=94=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - outwardOf가 role === "inlet"만 유입측으로 봐서 유입측 다단(bextra)이 반대쪽 부호로 움직였다. inletSideRole()로 bextra를 유입측에 포함한다 - revetHeightLimit: 통나무·목재틀·바자를 2.0m로 명시한다(종전에는 함수 기본값 3.0으로 떨어졌다 — 2026-08-29 사용자 확정) Co-Authored-By: Claude Opus 5 (1M context) --- B06_Section/B06_Section_UI_Cross_Culvert_Const.ts | 2 ++ B06_Section/B06_Section_UI_Cross_View.ts | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/B06_Section/B06_Section_UI_Cross_Culvert_Const.ts b/B06_Section/B06_Section_UI_Cross_Culvert_Const.ts index de1ad3f2..b24f6aa0 100644 --- a/B06_Section/B06_Section_UI_Cross_Culvert_Const.ts +++ b/B06_Section/B06_Section_UI_Cross_Culvert_Const.ts @@ -79,12 +79,14 @@ export const REVET_EMBED_DEPTH_M = 0.5; * 돌 **찰쌓기 3.0m 이하**, 돌 **메쌓기 2.0m 이하**(교본 7-3 돌흙막이 기준), * 돌망태 2m 정도. 큰돌쌓기는 총높이 한계 없음(1일 시공 1.5m 제한만). * 초과 시 콘크리트 옹벽 등 상위 구조물 검토 대상이다. + * 통나무·목재틀·바자는 지식DB에 수치가 없어 **2.0m**로 둔다(2026-08-29 사용자 확정). */ export function revetHeightLimit(form: string | null | undefined): number { if (!form) return 3.0; if (form.includes("메")) return 2.0; if (form.includes("찰")) return 3.0; if (form.includes("돌망태")) return 2.0; + if (form.includes("통나무") || form.includes("목재") || form.includes("바자")) return 2.0; if (form.includes("콘크리트")) return 5.0; // 프로젝트 확정값 — materialLimit과 동일 return 3.0; } diff --git a/B06_Section/B06_Section_UI_Cross_View.ts b/B06_Section/B06_Section_UI_Cross_View.ts index 945ec6e7..e4b20ca1 100644 --- a/B06_Section/B06_Section_UI_Cross_View.ts +++ b/B06_Section/B06_Section_UI_Cross_View.ts @@ -640,13 +640,16 @@ export function createCrossSectionCard( setChipActive = readout.setActive; // 구조물 조정은 도면 안 오버레이 창(2026-08-21). 화면 좌(◀) = offset 증가 — // 벽 기준 이동량(outward 부호)으로 환산해 넘긴다. + // 유입측 벽 — 기준벽과 유입측 다단(bextra). 빼먹으면 그 벽만 좌우가 뒤집힌다. + const inletSideRole = (role: RevetKey): boolean => + role === "inlet" || role.startsWith("bextra"); const outwardOf = (role: RevetKey): number => // 독립 기슭막이는 배관 유입/유출과 무관 — 정본 설치 측(좌 = +offset)으로 부호를 잡는다. role === "own" ? section.revetment?.side === "우" ? -1 : 1 - : ((section.uphill_side ?? "left") === "left") === (role === "inlet") + : ((section.uphill_side ?? "left") === "left") === inletSideRole(role) ? 1 : -1; const heightOfWall = (key: RevetKey): number => culvertWallSpecs.get(key)?.height ?? 0;