fix(B06): 집수정 노견 확장은 I형만 — ㄴ·ㄷ형은 내부 높이 1.2m 고정
- 벽 높이 형태 분기(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) <noreply@anthropic.com>
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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[] => {
|
||||
|
||||
Reference in New Issue
Block a user