--- status: stable page_id: B08_DesignDetail related_pages: ["[[B08_DesignDetail/B08_backend]]", "[[B08_DesignDetail/B08_frontend]]", "[[B06_Section/B06_frontend]]", "[[B08_DesignDetail/B08_CAD_table_entity]]"] last_updated: 2026-08-30 source: ["docs/raw/plans/2026-08-30_plan_B08_cross_structure_sheets.md", "docs/raw/verification/2026-08-30_verify_B08_cross_structure_sheets.md"] --- # B08 횡단도 구조물·장 배치 ## 문제와 결정 기존 CAD 횡단도는 지표·설계·측구·암경계만 그렸고 전체 최대 블록 크기로 셀을 통일해 23개 단면이 A1 4장으로 나뉘었다. 사용자는 모든 구조물과 향후 수치·문자가 자동으로 따라오고 행·열이 맞는 조밀한 배치를 확정했다. ## 데이터·구현 흐름 | 항목 | 위치 | 역할 | |---|---|---| | `cross_placements` | `B08_DesignDetail_Engine_Cad.py` | 측점·종이 좌표·축척·프레임 메타 제공 | | `plan_cross_sheets()` | `B08_DesignDetail_Engine_Cad_Sheet.py` | 가변 열폭·행높이 격자와 슬롯 계산 | | `appendStructureEntities()` | `B08_DesignDetail_UI_Cad_Structures.ts` | B06 오프스크린 SVG를 CAD 엔티티로 변환 | | `appendCrossDesignOverlay()` | `B08_DesignDetail_UI_Cad_Structures.ts` | 구조물 `designTrim`이 반영된 설계선 재생성 | B06의 배수관·기슭막이·세월교·BOX·물넘이 기하 함수를 재사용하며 Python 산식 복제를 금지한다. SVG 선분은 연결하고 공선점을 제거해 CAD 폴리라인 수를 줄인다. ## 결과 - A1 내부 여백을 2%로 조정해 23개 단면을 2장(16+7)에 배치한다. - 셀 중앙이 아니라 하단을 맞춰 수량표 행이 정렬된다. - 배수관·집수정·세월교·BOX·연동 기슭막이와 텍스트가 설계선에 맞물려 저장된다. - 구조물이 블록 프레임을 넘은 측점은 없었다. ## 한계 - 데이터가 없던 물넘이포장·독립 기슭막이는 코드 경로만 확인했다. - 돌쌓기 `clipPath` 해칭은 CAD 클립 수단 부재로 제외했다.