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[] => {