Merge remote-tracking branch 'origin/main_laptop_1' into main_desktop_1

This commit is contained in:
2026-09-09 12:22:07 +09:00
4 changed files with 128 additions and 2 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"
}
]
},
@@ -49,7 +49,11 @@ _CROSS_RIGHT_ROWS: tuple[tuple[str | None, str | None], ...] = (
("성토파종", "fill_seeding"),
("절토살포", "cut_spraying"),
("제근", "grubbing"),
(None, None),
# 사토장(유용토운반작업장) — **「쌓기」와 갈라 세운다**(2026-09-09 확정 ㉠).
# ⚠ 여기는 원래 **빈 줄**이었고, 실무 원본 횡단도에는 그 자리가 **아예 없다**
# (2026-09-09 400dpi 실측). 즉 **납품 양식을 늘리는 것이 아니라 안 쓰던 칸을 쓰는 것**이다.
# ⚠ 사토장이 없는 측점에는 값이 안 실려 종전처럼 빈칸으로 남는다.
("사토장", "spoil_fill"),
("노면다짐", "road_compaction"),
)
@@ -74,6 +78,8 @@ QUANTITY_VALUE_KEYS: tuple[str, ...] = (
"fill_seeding",
"cut_spraying",
"grubbing",
# 사토장 — 「쌓기(embankment)」와 **다른 칸**이다. 합치지 않는다(확정 ㉠).
"spoil_fill",
"road_compaction",
)
@@ -47,6 +47,9 @@ AREA_KEYS: tuple[tuple[str, str], ...] = (
("embankment", "fill_area_m2"),
("ditch_soil", "ditch_soil_area_m2"),
("ditch_rock", "ditch_rock_area_m2"),
# 사토장 — **`fill_area_m2` 와 갈라 든다**. B06 이 이미 노선 성토에서 뺀 값이라
# 여기서 더하거나 빼지 않는다(확정 ㉠ — 같은 흙을 두 번 세지 않기).
("spoil_fill", "spoil_fill_area_m2"),
)
#: `ditch_split_basis` 를 사람이 읽는 말로. 도면·화면이 「왜 이렇게 갈렸나」를 보일 때 쓴다.
+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: "돌쌓기(메)",