From 3b272307ed81773499086c6325d387d3e6b4a6b9 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 22 Aug 2026 10:29:54 +0900 Subject: [PATCH] =?UTF-8?q?feat(B06):=20=EC=A7=91=EC=88=98=EC=A0=95=20I?= =?UTF-8?q?=ED=98=95=20=EB=B2=BD=20=EB=86=92=EC=9D=B4=EB=A5=BC=20=EB=85=B8?= =?UTF-8?q?=EA=B2=AC=20=EC=A0=91=EC=A0=90=EA=B9=8C=EC=A7=80=20=EC=84=B1?= =?UTF-8?q?=EC=9E=A5=20=E2=80=94=20=EB=B0=B0=EA=B4=80=EC=9D=80=20=EC=9B=90?= =?UTF-8?q?=EC=A7=80=EB=B0=98=20=EC=9C=A0=EC=A7=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 집수정은 물을 모으는 구조물(2026-08-22 사용자 확정): ㄴ·ㄷ형 바닥판은 원지반을 대체하며 형태별 별도 구성. 배관(invert)은 원지반 자리 유지. - I형(공유벽) 높이 = max(관 아래 여유+관경+위 여유, 노견 표고 − invert) — 원지반이 낮아 기본 높이로 노견 끝 접점이 안 되면 배관은 그대로 두고 벽을 노견 표고까지 키운다. 상단 도로측 꼭짓점 = 노견 끝 지점(완전 접점). - 검증: 13+15.7 — 노견 끝(-2.000, 540.441) = 벽 상단 도로측 꼭짓점, 오차 dx=0.000 dz=0.000. 관 유입단 (-3.000, 538.091) 원지반 유지. 화면 스크린샷 대조 완료. Co-Authored-By: Claude Opus 5 (1M context) --- B06_Section/B06_Section_UI_Cross_Culvert_Geom.ts | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/B06_Section/B06_Section_UI_Cross_Culvert_Geom.ts b/B06_Section/B06_Section_UI_Cross_Culvert_Geom.ts index ad76b2495..a3c19839e 100644 --- a/B06_Section/B06_Section_UI_Cross_Culvert_Geom.ts +++ b/B06_Section/B06_Section_UI_Cross_Culvert_Geom.ts @@ -243,11 +243,18 @@ export function computeCulvertLayout( // 형식 기본값 = ㄴ(L)형(2026-08-20 사용자 확정). 실무 내공 1.0m(울진 돌집수정). const shape: BasinShape = "L"; const innerWidth = 1.0; - // 집수정 깊이 = **관 아래 여유 + 관경 + 관 위 여유**(2026-08-21 사용자 확정). - // 종전에는 성토 경사선과의 교점으로 높이를 잡아 지형에 따라 들쭉날쭉했다. - // 위 여유는 기슭막이와 같은 값(0.5)을 써서 좌·우 표현이 어긋나지 않게 한다. + // 집수정은 기슭막이와 달리 **물을 모으려고 만든 구조물**이다(2026-08-22 사용자 + // 확정) — 바닥판이 있는 ㄴ·ㄷ형은 그 바닥이 원지반을 대체하고, 형태별로 별도 + // 구성한다. 배관(invert)은 원지반 자리를 그대로 지킨다. + // 벽 높이: 기본 = 관 아래 여유 + 관경 + 관 위 여유(2026-08-21). 원지반이 낮아 + // 그 높이로 **노견 끝 접점이 안 되면 배관은 그대로 두고 벽을 노견 표고까지 + // 키운다**(2026-08-22 사용자 확정 — 상단 도로측 꼭짓점 = 노견 끝 지점). const floorThickness = BASIN_BOTTOM_CLEARANCE_M; - const wallHeight = diameter + REVET_FREEBOARD_M; + const roleEdge = spec.role === "inlet" ? inletInfo.edge : outletInfo.edge; + const wallHeight = Math.max( + diameter + REVET_FREEBOARD_M, + roleEdge.elevation_m - anchor.elevation, + ); // 벽 단면은 기슭막이와 동일(두께 0.45). 기움은 **수직 기준 반전** — 상단이 // 도로측(내공 쪽)으로 1:0.3 물러난다(2026-08-20 사용자 정정). const wallOf = (baseOffset: number, dir: number): OffsetPoint[] => {