diff --git a/B08_Quantity/B08_Quantity_Engine_Handoff_Trench.py b/B08_Quantity/B08_Quantity_Engine_Handoff_Trench.py index 4dd004fc..d2c8e917 100644 --- a/B08_Quantity/B08_Quantity_Engine_Handoff_Trench.py +++ b/B08_Quantity/B08_Quantity_Engine_Handoff_Trench.py @@ -7,13 +7,15 @@ 실무 내역에는 서는 줄이다 — 울진 대흥 1공구 토적집계 D12~D14: `구조물터파기 토사 1,248 / 암 30 ㎥` · `되메우기 739 ㎥` -⚠ **품셈 9-13 은 18구분이다**(토질 3 × 육상/용수 × 심도 3). 우리는 **심도만** 안다 - (터파기 깊이 = 직고 + 기초 깊이). 토질·용수는 저장 제원에 칸이 없으므로 **지어내지 않고** - 상위 코드로 세운 뒤 사유를 붙인다 — 심도 갈래는 미리 갈라 두어 칸이 생기는 날 바로 붙는다. +⚠ **품셈 9-13 은 18구분이다**(토질 3 × 육상/용수 × 심도 3). 세 축이 다 서면 자식 코드로 + 내려간다 — 토질은 측점 설계값(`design.ground_type`), 심도는 구조물 제원(직고 + 기초 깊이), + 용수는 산출 조건 칸(기본 「육상」은 **통상값**이고 사용자 확정이 아니다). 하나라도 없으면 + **지어내지 않고** 상위 코드로 세운 뒤 사유를 붙인다. ⚠ **잔토는 내역 줄로 세우지 않는다** — 사토로 실어 내는 몫이라 유토곡선(B06)이 세야 겹치지 - 않는다. 다만 **지금 그 통로가 없다**(채집석 공제만 있다). 값을 버리지 않고 `in_bill=False` - 로 넘기며 그 사실을 사유에 적는다 — 빼 버리면 빠진 줄을 아무도 못 찾는다. + 않는다. **그 통로는 2026-09-09 에 생겼다**(`Engine_HaulInputs` → 유토곡선 사토 가산 → + 「사토 운반」 줄). 여기서는 값과 사유만 넘기고 `in_bill=False` 로 둔다 — 빼 버리면 빠진 줄을 + 아무도 못 찾는다. """ from __future__ import annotations diff --git a/B08_Quantity/B08_Quantity_Engine_UnitQuantity.py b/B08_Quantity/B08_Quantity_Engine_UnitQuantity.py index c63af84c..1e98217e 100644 --- a/B08_Quantity/B08_Quantity_Engine_UnitQuantity.py +++ b/B08_Quantity/B08_Quantity_Engine_UnitQuantity.py @@ -369,7 +369,9 @@ SLOPE_DIR = Path(__file__).resolve().parents[1] / "resources" / "data_masonry" SLOPE_PREFIX = "masonry_slope_" #: 사용자가 덮어쓰는 칸 — 값이 있으면 **그 값이 이긴다**(확정 ⑨). FACE_SLOPE_KEYS = ("face_slope_ratio",) -#: 성토/절토를 아직 저장이 안 갖고 있다 — 어느 칸을 잠정으로 쓰는지 한 곳에 둔다. +#: 성토/절토는 **측점 단면유형(`design.section_mode`) + 설치 측**으로 판정한다 +#: (`common_util_structure_face_role` 한 벌). 못 가르는 자리(`both_cut` + 「자동」)만 남아 +#: 그때 쓸 칸을 여기 한 곳에 둔다 — **눅여 쓰는 것이 아니라 종전값으로 서고 사유를 적는다.** DEFAULT_SLOPE_FACE = "성토" LEGACY_FACE_SLOPE_RATIO = 0.3 @@ -751,9 +753,9 @@ def stone_masonry( backfill_share = picked.get("backfill_ratio") body_ratio = 1.0 - float(backfill_share) if backfill_share is not None else 2.0 / 3.0 kind_label = str(picked.get("kind") or "") - # ⚠ `face_slope_ratio` 는 **레지스트리에 없는 키**다 — 즉 지금은 늘 기본 0.3 으로 돈다. - # 상수로 두는 것이 아니라 「칸이 생기면 바로 받는다」는 뜻으로 남겨 둔다. - # (키 이름 어긋남으로 저장값이 안 닿던 `back_len_cm` 사고와 구별할 것 — 이쪽은 **칸 자체가 없다**.) + # ⚠ `face_slope_ratio` 는 **2026-09-09 에 칸이 생겼다**(돌쌓기 계열 여섯 종류 · 표준도 + # 제원 폼). 빈 값이 「자동」의 뜻이라 비어 있으면 아래 표준경사표가 돌고, 채우면 그 값이 + # 이긴다. (키 이름 어긋남으로 저장값이 안 닿던 `back_len_cm` 사고와 구별할 것.) # **기본 0.3 의 근거** — 교본 7-3 돌흙막이 기준: 「돌 찰쌓기 3.0m 이하 **1:0.3** / # 돌 메쌓기 2.0m 이하 **1:0.3** / 큰돌쌓기 **1:0.3 이상**(전도 방지)」 # (`지식DB 02_상세설계/구조물/돌쌓기.md §1`, 값은 `data_masonry` 의 `face_slope`). diff --git a/resources/data_masonry/masonry_slope_2026-01-01.json b/resources/data_masonry/masonry_slope_2026-01-01.json index b31b8100..f23503db 100644 --- a/resources/data_masonry/masonry_slope_2026-01-01.json +++ b/resources/data_masonry/masonry_slope_2026-01-01.json @@ -12,17 +12,46 @@ "user_override": "저장 제원에 `face_slope_ratio` 가 있으면 **그 값이 이긴다**(사용자 확정 ⑨ 「자동 판정 + 사용자가 바꿀 수 있게」).", "no_write_back": "⚠ 자동으로 고른 값을 **저장에 박지 않는다.** 「정한 적 없음」과 「0.3 으로 정함」이 구별돼야 한다.", "boundary": "⚠ 원문 표기는 `∼1.5 · ∼3 · ∼5 · ∼7 · 7이상` 이다. 「∼」를 **이하**로 읽어 경계값은 **앞 칸**에 넣는다(직고 3.0m → `~3` 칸). 7.0m 은 `~7` 칸이고 그보다 커야 `7이상` 칸이다.", - "face_unknown": "⚠ 성토/절토를 **저장이 아직 안 갖고 있다.** 구조물 레지스트리의 설치 측 기본이 「자동(성토 쪽)」이고 사면 계열도 층따기가 성토 전용이라 **성토 열로 잠정 적용**하고, 근거 문구에 그 사실을 적는다 — 값이 들어오면 그 칸만 바꾸면 된다." + "face_unknown": "⚠ 성토/절토는 **측점 단면유형(`design.section_mode`)과 설치 측으로 판정**한다(2026-09-08 `common_util_structure_face_role` 한 벌로 이음 — 그 전에는 성토 열로 잠정 적용했다). 판정이 안 되는 자리(`both_cut` + 설치 측 「자동」)만 남고, 그때는 **성토로 눅이지 않고** 종전값(1:0.3)으로 서되 **왜 못 갈랐는지**를 근거에 적는다." }, - "steps_m": [1.5, 3.0, 5.0, 7.0], + "steps_m": [ + 1.5, + 3.0, + 5.0, + 7.0 + ], "table": { "메쌓기": { - "성토": [0.3, 0.35, 0.4, 0.45, 0.5], - "절토": [0.25, 0.3, 0.35, 0.4, 0.45] + "성토": [ + 0.3, + 0.35, + 0.4, + 0.45, + 0.5 + ], + "절토": [ + 0.25, + 0.3, + 0.35, + 0.4, + 0.45 + ] }, "찰쌓기": { - "성토": [0.25, 0.3, 0.35, 0.4, 0.45], - "절토": [0.2, 0.25, 0.3, 0.35, 0.4] + "성토": [ + 0.25, + 0.3, + 0.35, + 0.4, + 0.45 + ], + "절토": [ + 0.2, + 0.25, + 0.3, + 0.35, + 0.4 + ] } }, "not_here": {