- 측점 계획 planStations(TS) ↔ plan_stations(py): 관 · 구조물 + 구조물 표 → 측점 · 역할 · 카드 이름 · 덮는 구조물 id · 빈칸 경고(형상 부품 필수 칸) · 같은 m 하나(이름 = 관 먼저 · 앞선 것) - 서버 resolve_extra_stations = 계획(같은 자리 한 번 · 옛 「마지막 이름」 걷음) · _stale_marks = 자리 + 이름(종류 · 관 공식 · 정의 판 이름) - 카드 목록(Section_Drafts) = 계획 이름 · 일반 측점 자리(regular)에 새로 놓은 구조물 = 그 자리 구조물 없는 사본에 이름 칩 · 관 그림 · 벽 · 포장(219 흠) - B05 종단 · 3D 측점 = 계획(design_structure_status.plannedIrregular) · 배수유역도로 관 자리 되먹임 끊음 - B06 종단 띠 = 계획(관만 → 모든 종류 · 관 구간도 넘김) - 고름: followMovedPipe — 고른 관을 옮기면 고름도 새 자리(B05 폼 · 종단 끌기 · B06 옮김) - 부품 상자 형상 「필수 칸」(관경 · 벽 높이 · 맹암거 높이 · 물넘이 높이 · 기슭막이 높이) - 시험: test_322_3_plan_mirror(거울 · 규칙 · 서버 공급자 · 낡음) · test_322_3_flow(흐름 일곱 + 고름 따라감) · 272_1 = 같은 자리 한 번 · 318 도움 파일 표 모듈 한 줄 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ji4nuyLVHcxrXWHTdb5nRD
514 lines
13 KiB
JSON
514 lines
13 KiB
JSON
{
|
|
"comment": "구조물 부품 상자(PLAN 322-1) — 코드가 그리는 방법 한 벌. TS(import) · 파이썬(json.load)이 같은 파일을 읽음. parts = 갈래(횡단도 · 카드이름 · 형상 · 3D)마다 부품 id → {이름 · 읽는 칸(옵션 키) · 자리꼴 · 정본 · 필수 칸(비면 그 그림이 안 섬 = 빈칸 경고 · 형상만)}. 처음값 = 종류마다 정의 `반영` 이 없을 때 쓰는 값(지금 동작 · ★ = PLAN_구조물표 4장). 표 읽기 = common_util_structure_catalog.ts · .py(짝).",
|
|
"parts": {
|
|
"횡단도": {
|
|
"anchor": {
|
|
"이름": "기준 한 장",
|
|
"읽는 칸": [],
|
|
"자리꼴": ["point", "interval", "site"],
|
|
"정본": ["pipe_points", "structures"]
|
|
},
|
|
"span3": {
|
|
"이름": "시작 · 기준 · 끝",
|
|
"읽는 칸": ["length_m", "before_m", "after_m"],
|
|
"자리꼴": ["interval"],
|
|
"정본": ["pipe_points", "structures"]
|
|
}
|
|
},
|
|
"카드이름": {
|
|
"pipe": {
|
|
"이름": "관종 D관경",
|
|
"읽는 칸": ["pipe_kind", "pipe_diameter_mm"],
|
|
"자리꼴": ["point"],
|
|
"정본": ["pipe_points"]
|
|
}
|
|
},
|
|
"형상": {
|
|
"pipe_set": {
|
|
"이름": "배관 세트(관 · 유입 · 유출 · 흙막이 · 도수로)",
|
|
"읽는 칸": [
|
|
"pipe_kind",
|
|
"pipe_diameter_mm",
|
|
"revet_foundation",
|
|
"inlet_type",
|
|
"inlet_revet_form",
|
|
"inlet_revet_length_m",
|
|
"inlet_revet_before_m",
|
|
"inlet_revet_after_m",
|
|
"inlet_revet_height_m",
|
|
"inlet_basin_length_m",
|
|
"inlet_basin_before_m",
|
|
"inlet_basin_after_m",
|
|
"inlet_basin_height_m",
|
|
"outlet_type",
|
|
"outlet_revet_form",
|
|
"outlet_revet_length_m",
|
|
"outlet_revet_before_m",
|
|
"outlet_revet_after_m",
|
|
"outlet_revet_height_m"
|
|
],
|
|
"자리꼴": ["point"],
|
|
"정본": ["pipe_points"],
|
|
"필수 칸": ["pipe_diameter_mm"]
|
|
},
|
|
"box": {
|
|
"이름": "BOX 본체 · 날개벽",
|
|
"읽는 칸": [
|
|
"body_width_m",
|
|
"body_height_m",
|
|
"wall_thickness_m",
|
|
"slab_thickness_m",
|
|
"wing_in",
|
|
"wing_in_height_m",
|
|
"wing_in_length_m",
|
|
"wing_in_angle_deg",
|
|
"wing_out",
|
|
"wing_out_height_m",
|
|
"wing_out_length_m",
|
|
"wing_out_angle_deg"
|
|
],
|
|
"자리꼴": ["point"],
|
|
"정본": ["pipe_points"]
|
|
},
|
|
"ford": {
|
|
"이름": "세월교(관 · 월류 · 날개벽)",
|
|
"읽는 칸": [
|
|
"pipe_kind",
|
|
"pipe_diameter_mm",
|
|
"pipe_count",
|
|
"ford_width_m",
|
|
"ford_height_m",
|
|
"wing_in",
|
|
"wing_in_height_m",
|
|
"wing_in_length_m",
|
|
"wing_in_angle_deg",
|
|
"wing_out",
|
|
"wing_out_height_m",
|
|
"wing_out_length_m",
|
|
"wing_out_angle_deg"
|
|
],
|
|
"자리꼴": ["point"],
|
|
"정본": ["pipe_points"]
|
|
},
|
|
"ford_pavement": {
|
|
"이름": "물넘이 포장(파인 노면 · 도수로)",
|
|
"읽는 칸": ["ford_width_m", "ford_height_m", "ford_slope_deg", "ford_slope_pct"],
|
|
"자리꼴": ["point"],
|
|
"정본": ["pipe_points"],
|
|
"필수 칸": ["ford_height_m"]
|
|
},
|
|
"hidden_revet": {
|
|
"이름": "독립 기슭막이(관 숨김 벽)",
|
|
"읽는 칸": [
|
|
"form",
|
|
"height_m",
|
|
"length_m",
|
|
"before_m",
|
|
"after_m",
|
|
"tiers",
|
|
"side",
|
|
"foundation",
|
|
"face_role",
|
|
"face_slope_ratio"
|
|
],
|
|
"자리꼴": ["interval"],
|
|
"정본": ["pipe_points"],
|
|
"필수 칸": ["height_m"]
|
|
},
|
|
"wall": {
|
|
"이름": "벽(옹벽 · 흙막이 · 돌쌓기)",
|
|
"읽는 칸": [
|
|
"form",
|
|
"height_m",
|
|
"side",
|
|
"foundation",
|
|
"tiers",
|
|
"lift_m",
|
|
"shift_m",
|
|
"face_role",
|
|
"face_slope_ratio"
|
|
],
|
|
"자리꼴": ["interval"],
|
|
"정본": ["structures"],
|
|
"필수 칸": ["height_m"]
|
|
},
|
|
"berm": {
|
|
"이름": "소단(사면 계단)",
|
|
"읽는 칸": ["width_m", "interval_m", "slope_deg", "depth_m"],
|
|
"자리꼴": ["interval"],
|
|
"정본": ["structures"]
|
|
},
|
|
"underdrain": {
|
|
"이름": "맹암거",
|
|
"읽는 칸": ["culvert_height_m", "culvert_slope_pct"],
|
|
"자리꼴": ["point"],
|
|
"정본": ["structures"],
|
|
"필수 칸": ["culvert_height_m"]
|
|
},
|
|
"pavement": {
|
|
"이름": "포장층",
|
|
"읽는 칸": ["pave_spec", "height_m", "widening_off"],
|
|
"자리꼴": ["interval"],
|
|
"정본": ["structures"]
|
|
},
|
|
"spoil": {
|
|
"이름": "사토(성토 채움)",
|
|
"읽는 칸": ["capacity_m3"],
|
|
"자리꼴": ["site"],
|
|
"정본": ["structures"]
|
|
}
|
|
},
|
|
"3D": {
|
|
"pipe": {
|
|
"이름": "관 · 유입 · 유출 벽",
|
|
"읽는 칸": [],
|
|
"자리꼴": ["point"],
|
|
"정본": ["pipe_points"]
|
|
},
|
|
"box": {
|
|
"이름": "BOX 본체 · 날개벽",
|
|
"읽는 칸": [],
|
|
"자리꼴": ["point"],
|
|
"정본": ["pipe_points"]
|
|
},
|
|
"ford": {
|
|
"이름": "세월교 몸체 · 관",
|
|
"읽는 칸": [],
|
|
"자리꼴": ["point"],
|
|
"정본": ["pipe_points"]
|
|
},
|
|
"chute": {
|
|
"이름": "물넘이 도수로 띠",
|
|
"읽는 칸": [],
|
|
"자리꼴": ["point"],
|
|
"정본": ["pipe_points"]
|
|
},
|
|
"wall": {
|
|
"이름": "벽 스윕",
|
|
"읽는 칸": [],
|
|
"자리꼴": ["interval"],
|
|
"정본": ["pipe_points", "structures"]
|
|
},
|
|
"surface": {
|
|
"이름": "설계선만(몸체 없음)",
|
|
"읽는 칸": [],
|
|
"자리꼴": ["point", "interval", "site"],
|
|
"정본": ["pipe_points", "structures"]
|
|
}
|
|
}
|
|
},
|
|
"처음값": {
|
|
"pipe": {
|
|
"목록": "both",
|
|
"횡단도": "anchor",
|
|
"카드이름": "pipe",
|
|
"형상": "pipe_set",
|
|
"3D": "pipe"
|
|
},
|
|
"box_culvert": {
|
|
"목록": "both",
|
|
"횡단도": "anchor",
|
|
"카드이름": "name",
|
|
"형상": "box",
|
|
"3D": "box"
|
|
},
|
|
"ford_pavement": {
|
|
"목록": "both",
|
|
"횡단도": "anchor",
|
|
"카드이름": "name",
|
|
"형상": "ford_pavement",
|
|
"3D": "chute"
|
|
},
|
|
"ford_bridge": {
|
|
"목록": "both",
|
|
"횡단도": "anchor",
|
|
"카드이름": "name",
|
|
"형상": "ford",
|
|
"3D": "ford"
|
|
},
|
|
"cross_drain_exposed": {
|
|
"목록": "both",
|
|
"횡단도": "none",
|
|
"카드이름": "name",
|
|
"형상": "none",
|
|
"3D": "none"
|
|
},
|
|
"open_ditch": {
|
|
"목록": "both",
|
|
"횡단도": "none",
|
|
"카드이름": "name",
|
|
"형상": "none",
|
|
"3D": "none"
|
|
},
|
|
"cross_underdrain": {
|
|
"목록": "both",
|
|
"횡단도": "anchor",
|
|
"카드이름": "name",
|
|
"형상": "underdrain",
|
|
"3D": "surface"
|
|
},
|
|
"ditch_side": {
|
|
"목록": "hidden",
|
|
"횡단도": "none",
|
|
"카드이름": "name",
|
|
"형상": "none",
|
|
"3D": "none"
|
|
},
|
|
"ditch_ridge": {
|
|
"목록": "hidden",
|
|
"횡단도": "none",
|
|
"카드이름": "name",
|
|
"형상": "none",
|
|
"3D": "none"
|
|
},
|
|
"ditch_berm": {
|
|
"목록": "hidden",
|
|
"횡단도": "none",
|
|
"카드이름": "name",
|
|
"형상": "none",
|
|
"3D": "none"
|
|
},
|
|
"chute": {
|
|
"목록": "hidden",
|
|
"횡단도": "none",
|
|
"카드이름": "name",
|
|
"형상": "none",
|
|
"3D": "none"
|
|
},
|
|
"slope_drain": {
|
|
"목록": "hidden",
|
|
"횡단도": "none",
|
|
"카드이름": "name",
|
|
"형상": "none",
|
|
"3D": "none"
|
|
},
|
|
"underdrain": {
|
|
"목록": "hidden",
|
|
"횡단도": "none",
|
|
"카드이름": "name",
|
|
"형상": "none",
|
|
"3D": "none"
|
|
},
|
|
"retaining_wall": {
|
|
"목록": "both",
|
|
"횡단도": "span3",
|
|
"카드이름": "name",
|
|
"형상": "wall",
|
|
"형상칸": {
|
|
"form": "콘크리트",
|
|
"weep": true
|
|
},
|
|
"3D": "wall"
|
|
},
|
|
"masonry_wet": {
|
|
"목록": "hidden",
|
|
"횡단도": "span3",
|
|
"카드이름": "name",
|
|
"형상": "wall",
|
|
"형상칸": {
|
|
"form": "돌쌓기(찰)"
|
|
},
|
|
"3D": "wall"
|
|
},
|
|
"masonry_dry": {
|
|
"목록": "hidden",
|
|
"횡단도": "span3",
|
|
"카드이름": "name",
|
|
"형상": "wall",
|
|
"형상칸": {
|
|
"form": "돌쌓기(메)"
|
|
},
|
|
"3D": "wall"
|
|
},
|
|
"soil_guard": {
|
|
"목록": "both",
|
|
"횡단도": "span3",
|
|
"카드이름": "name",
|
|
"형상": "wall",
|
|
"형상칸": {
|
|
"form": "통나무·목재틀"
|
|
},
|
|
"3D": "wall"
|
|
},
|
|
"boulder_masonry": {
|
|
"목록": "hidden",
|
|
"횡단도": "span3",
|
|
"카드이름": "name",
|
|
"형상": "wall",
|
|
"형상칸": {
|
|
"form": "돌쌓기(메)"
|
|
},
|
|
"3D": "wall"
|
|
},
|
|
"berm": {
|
|
"목록": "both",
|
|
"횡단도": "span3",
|
|
"카드이름": "name",
|
|
"형상": "berm",
|
|
"3D": "surface"
|
|
},
|
|
"erosion_check": {
|
|
"목록": "hidden",
|
|
"횡단도": "none",
|
|
"카드이름": "name",
|
|
"형상": "none",
|
|
"3D": "none"
|
|
},
|
|
"bed_sill": {
|
|
"목록": "hidden",
|
|
"횡단도": "none",
|
|
"카드이름": "name",
|
|
"형상": "none",
|
|
"3D": "none"
|
|
},
|
|
"check_dam_small": {
|
|
"목록": "hidden",
|
|
"횡단도": "none",
|
|
"카드이름": "name",
|
|
"형상": "none",
|
|
"3D": "none"
|
|
},
|
|
"revetment": {
|
|
"목록": "hidden",
|
|
"횡단도": "span3",
|
|
"카드이름": "name",
|
|
"형상": "hidden_revet",
|
|
"3D": "wall",
|
|
"자리꼴": "interval"
|
|
},
|
|
"evac_road": {
|
|
"목록": "both",
|
|
"횡단도": "none",
|
|
"카드이름": "name",
|
|
"형상": "none",
|
|
"3D": "none"
|
|
},
|
|
"refuge": {
|
|
"목록": "hidden",
|
|
"횡단도": "none",
|
|
"카드이름": "name",
|
|
"형상": "none",
|
|
"3D": "none"
|
|
},
|
|
"work_yard": {
|
|
"목록": "hidden",
|
|
"횡단도": "none",
|
|
"카드이름": "name",
|
|
"형상": "none",
|
|
"3D": "none"
|
|
},
|
|
"turnaround": {
|
|
"목록": "hidden",
|
|
"횡단도": "none",
|
|
"카드이름": "name",
|
|
"형상": "none",
|
|
"3D": "none"
|
|
},
|
|
"mirror": {
|
|
"목록": "both",
|
|
"횡단도": "none",
|
|
"카드이름": "name",
|
|
"형상": "none",
|
|
"3D": "none"
|
|
},
|
|
"curb": {
|
|
"목록": "both",
|
|
"횡단도": "none",
|
|
"카드이름": "name",
|
|
"형상": "none",
|
|
"3D": "none"
|
|
},
|
|
"hazard_sign": {
|
|
"목록": "both",
|
|
"횡단도": "none",
|
|
"카드이름": "name",
|
|
"형상": "none",
|
|
"3D": "none"
|
|
},
|
|
"guardrail": {
|
|
"목록": "both",
|
|
"횡단도": "none",
|
|
"카드이름": "name",
|
|
"형상": "none",
|
|
"3D": "none"
|
|
},
|
|
"position_sign": {
|
|
"목록": "both",
|
|
"횡단도": "none",
|
|
"카드이름": "name",
|
|
"형상": "none",
|
|
"3D": "none"
|
|
},
|
|
"water_intake": {
|
|
"목록": "both",
|
|
"횡단도": "none",
|
|
"카드이름": "name",
|
|
"형상": "none",
|
|
"3D": "none"
|
|
},
|
|
"barrier_gate": {
|
|
"목록": "both",
|
|
"횡단도": "none",
|
|
"카드이름": "name",
|
|
"형상": "none",
|
|
"3D": "none"
|
|
},
|
|
"completion_sign": {
|
|
"목록": "both",
|
|
"횡단도": "none",
|
|
"카드이름": "name",
|
|
"형상": "none",
|
|
"3D": "none"
|
|
},
|
|
"spoil_bank": {
|
|
"목록": "both",
|
|
"횡단도": "none",
|
|
"카드이름": "name",
|
|
"형상": "spoil",
|
|
"3D": "surface"
|
|
},
|
|
"borrow_pit": {
|
|
"목록": "both",
|
|
"횡단도": "none",
|
|
"카드이름": "name",
|
|
"형상": "none",
|
|
"3D": "none"
|
|
},
|
|
"wildlife_path": {
|
|
"목록": "b06",
|
|
"횡단도": "none",
|
|
"카드이름": "name",
|
|
"형상": "none",
|
|
"3D": "none"
|
|
},
|
|
"revegetation": {
|
|
"목록": "b06",
|
|
"횡단도": "none",
|
|
"카드이름": "name",
|
|
"형상": "none",
|
|
"3D": "none"
|
|
},
|
|
"pavement_concrete": {
|
|
"목록": "both",
|
|
"횡단도": "none",
|
|
"카드이름": "name",
|
|
"형상": "pavement",
|
|
"3D": "surface"
|
|
},
|
|
"gravel_surfacing": {
|
|
"목록": "b06",
|
|
"횡단도": "none",
|
|
"카드이름": "name",
|
|
"형상": "pavement",
|
|
"3D": "surface"
|
|
},
|
|
"etc": {
|
|
"목록": "both",
|
|
"횡단도": "none",
|
|
"카드이름": "name",
|
|
"형상": "none",
|
|
"3D": "none"
|
|
}
|
|
}
|
|
}
|