feat(B07): 횡단도 수량표 4칸 → 14칸 — 저장된 설계에서 채우는 통로
별표2 Ⅰ.1.나.(5) 가 요구하는 여덟(지반고·계획고·절토고·성토고·단면적·지장목 제거· 측구터파기 단면적·사면보호공) 중 뒤 넷이 빈칸으로 나가던 자리. 빈칸의 까닭은 「값이 없어서」가 아니라 **통로가 없어서**였음 — 표가 `source["quantities"]` 를 보는데 그 키가 원본 파일에 아예 없음(실측: 횡단 원본 15키에 `samples`·`center_z`· `chainage_m` 은 있고 `quantities` 는 없음). 반면 저장된 설계에는 단면적이 그대로 있고 사면길이도 설계선에서 유도됨. ⚠ 계산을 새로 짜지 않음 — 단면적은 B06 저장값을 그대로 읽고, 사면 계열은 B08 이 쓰는 `station_slope` 를 그대로 부름. 계열 이름·어느 면을 쓰나도 `SlopeArea` 정의를 빌림 (거기서 밑수가 바뀌면 이 표도 같이 움직여야 함). 채운 열 칸 단면적 3 깍기 토사 · 깍기 암석 · 쌓기 사면 7 층따기 · 면고르기(성·절) · 지장목제거(성·절) · 성토파종 · 절토살포 ⚠ 사면 칸의 단위 — B08 은 측점 사이를 적분해 ㎡ 를 내나 그것은 두 측점이 있어야 나옴. 한 장짜리 횡단도에 들어가는 것은 그 측점의 **사면길이(m)** 이고 1m 폭 조각의 ㎡/m 와 수치가 같음. 표기를 m 로 볼지 ㎡/m 로 볼지는 표기 문제이고 값은 하나임. 안 채운 칸 — 근거가 없어 임의로 안 넣음 측구 토사/암석(저장값이 `ditch_area_m2` 한 값뿐) · 표토제거(두께 칸 없음) · 편책(별도 일위대가 제작 뒤 연결로 확정) · 제근(입목 본수 안 듦) · 노면다짐 자체검증 — 새 시험 8건(사면길이는 손으로 잰 √5 · √(2.4²+2²) 와 대조, `is not None` 만 보면 0 이어도 통과하므로 실수치로 맞춤), 회귀 570 통과 · 0 실패. 실프로젝트 936be972 세 측점에서 **21칸 중 14칸**에 값이 찍힘(앞서 4칸). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -54,6 +54,7 @@ from B07_DesignDetail.B07_DesignDetail_Engine_Cad_Standard import (
|
||||
from B07_DesignDetail.B07_DesignDetail_Engine_Cad_Table import (
|
||||
QUANTITY_VALUE_KEYS,
|
||||
)
|
||||
from B07_DesignDetail.B07_DesignDetail_Engine_Cross_Quantity import derived_cells
|
||||
from B07_DesignDetail.B07_DesignDetail_Engine_Template import add_title_fields
|
||||
|
||||
# 유역도 배경·파일 입출력 조각은 700줄 제한으로 떼어냈다(2026-09-04).
|
||||
@@ -270,6 +271,11 @@ def _quantity_table(
|
||||
**계획고는 횡단 설계(design)에도 있다** — 장 배치 입력의 원본에는 그 값이 없어
|
||||
계획고·절토고·성토고 세 칸이 통째로 비어 나갔다(2026-09-03 실측: 장 확정 시 21개
|
||||
항목 중 지반고 하나만 채워짐). 원본에 없으면 설계에서 읽는다.
|
||||
|
||||
⚠ **본문 칸도 설계에서 온다**(2026-09-09) — `source["quantities"]` 키는 원본 파일에
|
||||
아예 없어 열일곱 칸이 통째로 비어 나갔다. 채울 수 있는 것은 `_Engine_Cross_Quantity`
|
||||
가 낸다(단면적은 저장값, 사면 계열은 B08 이 쓰는 함수 그대로). 별표2 법정 요구
|
||||
여덟 중 뒤 넷이 비던 자리다.
|
||||
"""
|
||||
|
||||
def num(value: Any) -> float | None:
|
||||
@@ -289,6 +295,8 @@ def _quantity_table(
|
||||
"cut": cut,
|
||||
"fill": fill,
|
||||
}
|
||||
chainage = num(source.get("chainage_m")) or 0.0
|
||||
table.update(derived_cells(chainage, design))
|
||||
for key in QUANTITY_VALUE_KEYS:
|
||||
table.setdefault(key, num(quantities.get(key)))
|
||||
return table
|
||||
|
||||
Reference in New Issue
Block a user