From 0ebfa6c2aaf63abec4b63b27598e93c7877020a2 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 22 Aug 2026 10:33:32 +0900 Subject: [PATCH] =?UTF-8?q?fix(B06):=20=EC=A7=91=EC=88=98=EC=A0=95=20?= =?UTF-8?q?=EB=85=B8=EA=B2=AC=20=ED=99=95=EC=9E=A5=EC=9D=80=20I=ED=98=95?= =?UTF-8?q?=EB=A7=8C=20=E2=80=94=20=E3=84=B4=C2=B7=E3=84=B7=ED=98=95?= =?UTF-8?q?=EC=9D=80=20=EB=82=B4=EB=B6=80=20=EB=86=92=EC=9D=B4=201.2m=20?= =?UTF-8?q?=EA=B3=A0=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 벽 높이 형태 분기(2026-08-22 사용자 정정): · I형(공유벽뿐): 노견 끝 접점까지 성장(직전 커밋 규칙 유지) · ㄴ(L)·ㄷ형(바닥판이 원지반 대체): 성장 없음, 내부 높이(바닥 윗면~ 벽 상단) = BASIN_INNER_HEIGHT_M 1.2m (⚠ 임시값, 근거 확정 시 교체) - 검증: 13+15.7(ㄴ형) 내부높이 1.200, 벽 상단 도로측 x=노견 x(dx=0), 관 유입단 원지반 유지, 화면 대조 완료. Co-Authored-By: Claude Opus 5 (1M context) --- .../B06_Section_UI_Cross_Culvert_Const.ts | 7 +++++++ .../B06_Section_UI_Cross_Culvert_Geom.ts | 19 ++++++++++--------- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/B06_Section/B06_Section_UI_Cross_Culvert_Const.ts b/B06_Section/B06_Section_UI_Cross_Culvert_Const.ts index 97e50ddb..45c33ffd 100644 --- a/B06_Section/B06_Section_UI_Cross_Culvert_Const.ts +++ b/B06_Section/B06_Section_UI_Cross_Culvert_Const.ts @@ -121,3 +121,10 @@ export const FILL_MIN_RISE_M = 0.3; * (2026-08-21 사용자 확정 — 종전에는 성토 경사선과의 교점으로 높이를 잡았다). */ export const BASIN_BOTTOM_CLEARANCE_M = 0.5; + +/** + * 집수정 내부 높이(m) — 바닥판이 있는 ㄴ(L)·ㄷ형의 **바닥 윗면~벽 상단** 깊이. + * ⚠ 임시 설정값 1.2(2026-08-22 사용자 지정 "일단 1.2로") — 근거 확정 시 교체. + * I형(공유벽뿐)은 이 값을 쓰지 않고 노견 끝 접점까지 벽을 키운다. + */ +export const BASIN_INNER_HEIGHT_M = 1.2; diff --git a/B06_Section/B06_Section_UI_Cross_Culvert_Geom.ts b/B06_Section/B06_Section_UI_Cross_Culvert_Geom.ts index a3c19839..2a482fbc 100644 --- a/B06_Section/B06_Section_UI_Cross_Culvert_Geom.ts +++ b/B06_Section/B06_Section_UI_Cross_Culvert_Geom.ts @@ -18,6 +18,7 @@ import type { CrossSection, CulvertSideSpec, SectionSample } from "./B06_Section_Api_Fetch"; import { BASIN_BOTTOM_CLEARANCE_M, + BASIN_INNER_HEIGHT_M, FILL_MIN_RISE_M, FILL_SLOPE_MAX_LENGTH_M, FILL_SLOPE_RATIO_MAX, @@ -244,17 +245,17 @@ export function computeCulvertLayout( const shape: BasinShape = "L"; const innerWidth = 1.0; // 집수정은 기슭막이와 달리 **물을 모으려고 만든 구조물**이다(2026-08-22 사용자 - // 확정) — 바닥판이 있는 ㄴ·ㄷ형은 그 바닥이 원지반을 대체하고, 형태별로 별도 - // 구성한다. 배관(invert)은 원지반 자리를 그대로 지킨다. - // 벽 높이: 기본 = 관 아래 여유 + 관경 + 관 위 여유(2026-08-21). 원지반이 낮아 - // 그 높이로 **노견 끝 접점이 안 되면 배관은 그대로 두고 벽을 노견 표고까지 - // 키운다**(2026-08-22 사용자 확정 — 상단 도로측 꼭짓점 = 노견 끝 지점). + // 확정) — 형태별로 별도 구성하고, 배관(invert)은 원지반 자리를 그대로 지킨다. + // · I형(공유벽뿐): 원지반이 낮아 기본 높이(관경+여유)로 노견 끝 접점이 안 + // 되면 배관은 그대로 두고 **벽을 노견 표고까지 키운다**. + // · ㄴ(L)·ㄷ형(바닥판이 원지반 대체): 벽을 키우지 않는다 — 내부 높이(바닥 + // 윗면~벽 상단)는 BASIN_INNER_HEIGHT_M(임시 1.2) 고정. const floorThickness = BASIN_BOTTOM_CLEARANCE_M; const roleEdge = spec.role === "inlet" ? inletInfo.edge : outletInfo.edge; - const wallHeight = Math.max( - diameter + REVET_FREEBOARD_M, - roleEdge.elevation_m - anchor.elevation, - ); + const wallHeight = + shape === "I" + ? Math.max(diameter + REVET_FREEBOARD_M, roleEdge.elevation_m - anchor.elevation) + : BASIN_INNER_HEIGHT_M; // 벽 단면은 기슭막이와 동일(두께 0.45). 기움은 **수직 기준 반전** — 상단이 // 도로측(내공 쪽)으로 1:0.3 물러난다(2026-08-20 사용자 정정). const wallOf = (baseOffset: number, dir: number): OffsetPoint[] => {