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