feat(B05/B06): 흙막이를 기슭막이와 같은 벌로 — 형상·옵션 동일, 수량은 분리

사용자 확정 4차 원문 — 「흙막이는 횡단도에서 **표현방식들과 옵션들은 동일하게** 반영하면
될거야. **형상은 동일해.** 물론 **데이터는 분리하여 계산**되어야함.」

- 그리기 경로는 **이미 같음** — C군 벽은 `attachWallSpecs` 로 `section.revetment` 에 붙어
  기슭막이와 같은 기하를 탐(따로 그리지 않음). 형태 이름도 「찰/콘크리트」 글자로 갈려
  흙막이 선택지(돌(찰)·돌(메)·떼…)가 그대로 먹힘
- 빠져 있던 것은 **옵션 칸**이라 기슭막이 열두 칸을 **같은 글자 그대로** 옮김 —
  단 수 · 올림 · 이동 · 뒷길이 · 돌 종류 · 조달 · 야면석 계수 · 채움 강도 ·
  전면 기울기 · 기초 · 물빼기 구멍 둘
  ⚠ 흙막이 수량이 안 쓰는 칸도 **숨기지 않음**(사용자가 「동일하게」라 함) — 수량 쪽에서
    조용히 무시되면 됨
- ⚠ 코드에 **「형상 동일 ≠ 수량 동일」**을 못 박음. 원단위·공종코드·성분 줄은 흙막이 자기 것.
  반대 사례가 골막이임(그림도 수량도 다르고 두께식마저 다른 식) — **계열이 다르면 상수를
  나눠 쓸 것**

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-09 12:17:03 +09:00
co-authored by Claude Opus 5
parent 0b0763ed76
commit 8c88356459
2 changed files with 118 additions and 1 deletions
@@ -1094,6 +1094,113 @@
"input": "select",
"choices": ["자동(성토 쪽)", "좌", "우"],
"default": "자동(성토 쪽)"
},
{
"key": "tiers",
"label": "단 수(다단)",
"input": "number",
"unit": "단",
"default": 1,
"required": false,
"phase": "b05"
},
{
"key": "lift_m",
"label": "기준 올림(사면 위로)",
"input": "number",
"unit": "m",
"default": 0,
"required": false,
"phase": "b05"
},
{
"key": "shift_m",
"label": "기준 좌우 이동",
"input": "number",
"unit": "m",
"default": 0,
"required": false,
"phase": "b05"
},
{
"key": "back_len_cm",
"label": "뒷길이",
"input": "select",
"choices": ["25", "30", "35", "45", "55", "60", "75"],
"default": null,
"required": false,
"phase": "detail"
},
{
"key": "stone_kind",
"label": "돌 종류",
"input": "select",
"choices": ["야면석·호박돌", "깬잡석", "깬돌", "견치돌"],
"default": null,
"required": false,
"phase": "detail"
},
{
"key": "stone_supply",
"label": "조달",
"input": "select",
"choices": ["채집", "구입"],
"default": "채집",
"required": false,
"phase": "detail"
},
{
"key": "stone_coeff_basis",
"label": "야면석 계수",
"input": "select",
"choices": ["품셈", "실무 관행"],
"default": null,
"required": false,
"phase": "detail"
},
{
"key": "fill_concrete_mpa",
"label": "채움 강도",
"input": "select",
"choices": ["180", "210"],
"default": null,
"required": false,
"phase": "detail"
},
{
"key": "face_slope_ratio",
"label": "전면 기울기 (1:n 의 n)",
"input": "number",
"default": null,
"required": false,
"phase": "detail"
},
{
"key": "foundation",
"label": "기초",
"input": "select",
"choices": ["기초유", "기초버림"],
"default": null,
"required": true,
"phase": "detail"
},
{
"key": "weep_hole_diameter_mm",
"label": "물빼기 구멍 지름",
"input": "number",
"unit": "㎜",
"default": null,
"required": false,
"phase": "detail"
},
{
"key": "weep_hole_area_m2",
"label": "물빼기 구멍 1개당 벽면적",
"input": "number",
"unit": "㎡",
"default": null,
"required": false,
"phase": "detail"
}
]
},
+11 -1
View File
@@ -42,7 +42,17 @@ export interface WallSpec {
/** 구간 경계 측점을 구간 안으로 볼 허용 오차(m) — 파이썬 `_EDGE_TOLERANCE_M`. */
const EDGE_TOLERANCE_M = 0.02;
/** 구조물 종류 → 횡단 기하가 아는 형태 이름 — 파이썬 `_FORM_BY_TYPE` 와 같은 표. */
/**
* 구조물 종류 → 횡단 기하가 아는 형태 이름 — 파이썬 `_FORM_BY_TYPE` 와 같은 표.
*
* ⚠⚠ **「형상 동일」이 「수량 동일」이 아니다**(2026-09-09 사용자 확정 4차 원문:
* 「흙막이는 횡단도에서 표현방식들과 옵션들은 동일하게 반영 · **형상은 동일** ·
* 물론 **데이터는 분리하여 계산**되어야 함」).
* ⇒ 흙막이는 기슭막이와 **같은 그리기 경로·같은 옵션 벌**을 쓰되, 원단위·공종코드·성분
* 줄은 **흙막이 자기 것**이다. 그림이 같다고 수량을 빌려 쓰면 안 된다.
* ⚠ 반대 방향의 사례가 골막이다 — 그림도 수량도 다르고, 두께식마저 다른 식이었다.
* **구조물 계열이 다르면 상수를 나눠 쓸 것.**
*/
export const FORM_BY_TYPE: Record<string, string> = {
masonry_wet: "돌쌓기(찰)",
masonry_dry: "돌쌓기(메)",