--- type: page-feature status: stable page_id: B06_Section related_pages: ["[[B06_Section/B06_frontend]]", "[[B06_Section/B06_backend]]", "[[B06_Section/B06_api]]", "[[B06_Section/B06_culvert_geometry_redesign]]", "[[B06_Section/B06_culvert_basin_multitier]]", "[[B05_Profile/B05_structures]]"] last_updated: 2026-08-22 source: ["docs/raw/plans/2026-08-20_plan_B06_배수관_횡단도_세트.md", "docs/raw/verification/2026-08-20_verify_B06_배수관_횡단도_세트_자체검증근거.md"] --- # B06 배수관 횡단도 세트 B05의 `pipe_points.json`에 저장된 배수관 측점만 골라 배관, 유입 기슭막이 또는 집수정, 유출 기슭막이, 보호공을 B06 횡단도에 분리 SVG로 표시한다. 세월교·BOX암거는 이 기능의 대상이 아니다. 8월 21일 이후 현재 자리·높이·물매·관 길이·조정 UI 규칙은 [[B06_Section/B06_culvert_geometry_redesign]]을 따른다. 아래 형상 내용은 8월 20일 검증 완료 스냅샷으로 보존한다. ## 입력·판정 | 항목 | 내용 | |---|---| | 정본 | B04/B05 공용 `pipe_points.json`; `facility == "pipe"`만 처리 | | 기본값 | 저장 옵션이 없으면 `B05_Profile_Structure_Types.json`의 `pipe` 기본값 사용 | | 측점·방향 | chainage ±0.02m, 유입=`uphill_side`, `+offset`=좌측 | | 유입 구조물 | 유입측 절토 또는 관 단면 30% 이상 원지반 폐색이면 집수정, 그 외 기슭막이 | | 주요 기준 | 관경 1,000㎜ 이상(현지여건 800㎜), 성토사면 5m 이내, 보호공 두께 0.45m·길이 낙차고×2 | | 임시 근거값 | 최소 토피 0.5m, 기슭막이 근입 0.5m, 집수정 내공 1.0m; 근거 확보 시 교체 | ## 형상·표시 순서 (2026-08-20 스냅샷) | 구성 | 내용 | |---|---| | 배관 | 역경사는 수평으로 제한하고 길이는 m 단위 올림해 유출측으로 연장한다. 외경 실선과 내경 점선의 직사각 관벽으로 표시한다. | | 기슭막이 | 배면 수직 사다리꼴+전면 평행사변형 띠. 이음선 상단점이 성토 계획선과 만나며 바닥만 0.5m 근입한다. | | 집수정 | I·ㄴ·ㄷ형 기하를 지원하며 기본은 ㄴ형. ㄴ·ㄷ형 절토선은 보라 실선 계획선이다. | | 보호공 | 관 하단 꼭짓점에서 기슭막이 전면 경사로 시작해 성토사면과 원지반을 따라 낙차고×2 이상 연장한다. | | 계산·시공 순서 | 유출 구조물 → 유입 구조물 → 배관 → 유출 보호공 | ## 구현 항목 | 항목 | 위치 | 역할 | |---|---|---| | `attach_culvert_sets()` | `B06_Section/B06_Section_Engine_Culvert.py` | 정본·레지스트리를 횡단 dict의 `culvert`에 결합 | | `_culvert_set()` | `B06_Section/B06_Section_Engine_Culvert.py` | 측점별 유입·유출 제원 생성 | | `CulvertSet`·`CulvertSideSpec` | `B06_Section/B06_Section_Api_Fetch.ts` | 프론트 데이터 계약 | | `computeCulvertLayout()` | `B06_Section/B06_Section_UI_Cross_Culvert_Geom.ts` | 배관 세트 기하 계산 | | `appendCulvertOverlay()` | `B06_Section/B06_Section_UI_Cross_Culvert.ts` | 기하 결과를 SVG로 표시 | | `appendCrossDesignOverlay()` | `B06_Section/B06_Section_UI_Cross_Design.ts` | 계획선 필터와 `designTrim` 적용 | | `blocksPipeLowering()` | `B05_Profile/B05_Profile_UI_Profile_Render.ts` | 관경·토피가 부족해지는 계획고 하향 편집 차단 | 오버레이는 기하 678줄과 SVG 표시 247줄로 분리했다. B06은 세트 레이아웃을 먼저 계산하고 계획선을 자른 다음 구조물 도형을 표시한다. ## 계획선 규칙 원지반과 2px 이내로 겹치는 구간과 보라 점선은 숨긴다. 노면·노견·측구에서 사면의 첫 접점까지는 항상 표시하고, 측구가 있으면 폭만큼 범위를 넓힌다. 첫 접점 밖은 숨기며 배수관 측점은 기슭막이 이음선 또는 집수정 벽 상단에서 계획선을 자른다. ## 검증 근거와 후속 개발 담당 AI 기록은 pytest 148 passed·7 skipped, TypeScript·Ruff·Prettier 통과, 배수관 2측점 화면·DOM 좌표 확인을 남겼다. 위키 관리자는 사용자 요청에 따라 2차 교차검증을 재실행하지 않았다. 8월 22일 완료된 집수정 형식 선택·성토부선·다단 기슭막이는 [[B06_Section/B06_culvert_basin_multitier]]에 기록했다. 집수정 임시 명칭, 저장 재질 연계와 급사면 도수로는 `docs/raw/PLAN.md`에 남아 있다. 뜬 벽 하부 구조와 표준단면 전체 5m 플래그는 위키의 미결 사항으로 보존한다. 700줄 리팩터링 결과는 [[B06_Section/B06_frontend]]와 [[B06_Section/B06_backend]]를 따른다.