- 충돌 6 = 같은 import 줄 — B05 logic 새 자리(sub5) + B06 logic 새 경로(518-3) - test_472_3 SESSION_PULLS 빈 목록 — 측점 간격 common_util_station 으로 ui_template_locale 끌림 끊김 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
261 lines
10 KiB
TypeScript
261 lines
10 KiB
TypeScript
/* =============================================================================
|
|
* A00_Common/design/logic/design_calc_registry_facility.ts
|
|
* 계산 등록부(`design_calc_registry.ts`) 뒤 몫 — 시설 · 토량 · 배수 · 3D · 추천 줄(칸 뜻 = 그 파일 머리).
|
|
* 순수 자료 — 함수 import 없음(타입만).
|
|
* ========================================================================== */
|
|
|
|
import type { CalcEntry } from "./design_calc_registry";
|
|
|
|
const B05 = "B05_Profile/";
|
|
const B05L = "B05_Profile/logic/";
|
|
const B06 = "B06_Section/";
|
|
const U = "common_util/";
|
|
|
|
export const FACILITY_ROWS: readonly CalcEntry[] = [
|
|
/* ── 시설 ─────────────────────────────────────────────────────────────── */
|
|
{
|
|
id: "facility.follow",
|
|
no: "F1",
|
|
label: "시설 따라감(노선 바뀜 → 관 · 구조물 자리)",
|
|
inputs: ["route.polyline"],
|
|
outputs: ["새 좌표 · 누가거리(input.pipes · input.structures 고침)"],
|
|
site: "browser_now",
|
|
stage: "follow",
|
|
ts: `${U}common_util_route_follow.ts#followStructures`,
|
|
runner: "node:facility.follow",
|
|
pair: null,
|
|
mirror: [
|
|
"test_410_follow_xy",
|
|
"test_344_2_route_pairs",
|
|
"test_459_route_seat_mirror",
|
|
"test_380_3_site_follow",
|
|
"test_472_4_follow_node",
|
|
],
|
|
note: "파이썬 `common_util_route_follow.follow_structures` = Node 부름 겉 · 저장 때 좌표 맞춤 `fill_structure_coordinates` = 같은 Node 입구 + fill(`fillStructureCoordinates` · 옛 좌표 지킴 · 0.1 mm · `placeOnLine` 노선 위 자리와 한 벌 · 511-B B-5)",
|
|
},
|
|
{
|
|
id: "facility.plus_follow",
|
|
no: "F2",
|
|
label: "추가 측점 따라감",
|
|
inputs: ["route.polyline"],
|
|
outputs: ["추가 측점(input.plusStations 고침)"],
|
|
site: "browser_now",
|
|
stage: "follow",
|
|
ts: `${U}common_util_route_follow.ts#followPlusRows`,
|
|
runner: "node:facility.plus_follow",
|
|
pair: null,
|
|
mirror: ["test_459_route_seat_mirror", "test_368_2_plus_stations", "test_472_4_follow_node"],
|
|
note: "파이썬 `Plus_Stations.follow_plus_stations` = Node 부름 겉(정본 파일 읽기 · 쓰기)",
|
|
},
|
|
{
|
|
id: "facility.rebase",
|
|
no: "F10",
|
|
label: "관 · 구조물 초안 다시 얹기(노선 바뀐 [저장] — 서버 따라감 위에)",
|
|
inputs: ["facility.follow", "input.pipes", "input.structures"],
|
|
outputs: ["관 · 구조물 [저장] 본문(새 노선)"],
|
|
site: "browser_now",
|
|
stage: null,
|
|
ts: `${U}common_util_route_follow.ts#rebasePipeDraft`,
|
|
runner: "node:facility.rebase",
|
|
pair: null,
|
|
mirror: ["test_472_6_route_save", "test_459_route_seat_mirror"],
|
|
note: "구조물 = 같은 파일 `rebaseStructureDraft` · 서버 [저장] 한 본문(`B06_Section_Router_DesignSave_Route`)이 부름",
|
|
},
|
|
{
|
|
id: "facility.stations",
|
|
no: "F3",
|
|
label: "시설 측점 계획",
|
|
inputs: ["route.polyline", "input.pipes", "input.structures"],
|
|
outputs: ["시설 측점"],
|
|
site: "browser_now",
|
|
stage: "stations",
|
|
ts: `${U}common_util_structure_station.ts#planStations`,
|
|
runner: "node:stations.plan",
|
|
pair: `${U}common_util_structure_station.py#plan_stations`,
|
|
mirror: ["test_322_3_plan_mirror", "test_234_1_structure_station"],
|
|
note: "서버 측점 생성 = Node `stations.sections` · 남은 부름(이월 열쇠 주인 · 옛 측점 옮기기) = Node `stations.plan` · 파이썬 짝은 B06 형상 얹기 · B07 · 배수 · Node 못 돌릴 때",
|
|
},
|
|
{
|
|
id: "facility.attach",
|
|
no: "F4",
|
|
label: "형상 얹기(관 세트 · 벽 · 포장 · 맹암거 그림 자료)",
|
|
inputs: ["input.pipes", "input.structures", "cross.design"],
|
|
outputs: ["그림 자료"],
|
|
site: "browser_now",
|
|
stage: "cross",
|
|
ts: `${U}common_util_structure_attach.ts#attachShapes`,
|
|
runner: "node:facility.attach",
|
|
pair: `${B06}B06_Section_Engine_Attach.py#attach_shapes`,
|
|
mirror: ["test_323_4_attach_mirror"],
|
|
note: "GET 상세 · 재생성 = Node facility.attach(511-B B-4) · 파이썬 짝 = Node 못 부를 때",
|
|
},
|
|
{
|
|
id: "facility.culvert_sets",
|
|
no: "F5",
|
|
label: "관 세트(관경 · 날개벽 · 집수정)",
|
|
inputs: ["input.pipes"],
|
|
outputs: ["관 세트"],
|
|
site: "browser_now",
|
|
stage: null,
|
|
ts: `${U}common_util_culvert_sets.ts#pipeWallHeightM`,
|
|
runner: `py:${B06}B06_Section_Engine_Culvert.py#pipe_wall_height_m`,
|
|
pair: `${B06}B06_Section_Engine_Culvert.py#pipe_wall_height_m`,
|
|
mirror: ["test_b06_culvert_sets_mirror", "test_b06_pipe_wall_height_mirror"],
|
|
note: "짝 유지 — 파이썬 소비자 B04 · B07 · B08(472 밖)",
|
|
},
|
|
{
|
|
id: "facility.walls",
|
|
no: "F6",
|
|
label: "벽 · 포장",
|
|
inputs: ["input.structures"],
|
|
outputs: ["벽 · 포장"],
|
|
site: "browser_now",
|
|
stage: null,
|
|
ts: `${U}common_util_structure_walls.ts#wallSpecsFrom`,
|
|
runner: `py:${B06}B06_Section_Engine_Structures_Wall.py#wall_specs_from`,
|
|
pair: `${B06}B06_Section_Engine_Structures_Wall.py#wall_specs_from`,
|
|
mirror: ["test_b06_structure_walls_mirror", "test_b06_structure_pavement_mirror"],
|
|
note: "짝 유지 — 포장 짝 common_util_structure_pavement(.py · .ts) · B07 소비",
|
|
},
|
|
{
|
|
id: "structure.layouts",
|
|
no: "F7",
|
|
label: "관 길이 · 구조물 폐회로 면적 · 다단 벽",
|
|
inputs: ["cross.design", "cross.areas", "facility.attach"],
|
|
outputs: ["관 길이 · 구조물 면적 · 선 다단 벽", "db:cross_sections.design"],
|
|
site: "browser_now",
|
|
stage: null,
|
|
ts: `${B06}logic/B06_Section_Structure_Layouts.ts#structureAreaRows`,
|
|
runner: "node:structure.layouts",
|
|
pair: null,
|
|
mirror: ["test_b06_pipe_length", "test_299_ford_span_pipe"],
|
|
},
|
|
{
|
|
id: "excavation.trench",
|
|
no: "F8",
|
|
label: "터파기(관 폭 · 벽 단면)",
|
|
inputs: ["facility.culvert_sets", "facility.walls"],
|
|
outputs: ["터파기 폭 · 단면적"],
|
|
site: "browser_now",
|
|
stage: null,
|
|
ts: `${U}common_util_excavation.ts#wallTrenchAreaM2`,
|
|
runner: "node:excavation.trench",
|
|
pair: null,
|
|
mirror: ["test_excavation_mirror"],
|
|
note: "서버 = Node 한 벌 · 파이썬 짝 운영 부름 0 → 걷음(511-B B-6)",
|
|
},
|
|
{
|
|
id: "facility.ford",
|
|
no: "F9",
|
|
label: "세월교 높이 · 깊이",
|
|
inputs: ["input.structures"],
|
|
outputs: ["높이"],
|
|
site: "browser_now",
|
|
stage: null,
|
|
ts: "A00_Common/design/design_structure_ford_calc.ts#fordHeightM",
|
|
runner: "py:B04_PreProcess/B04_PreProcess_Router_Basins.py#ford_height_m",
|
|
pair: "B04_PreProcess/B04_PreProcess_Router_Basins.py#ford_height_m",
|
|
mirror: ["test_65_ford_defaults", "test_73_11_b08_hydro_box_ford"],
|
|
note: "짝 유지(B04 · B08)",
|
|
},
|
|
/* ── 토량 ─────────────────────────────────────────────────────────────── */
|
|
{
|
|
id: "masshaul.cumulative",
|
|
no: "E1",
|
|
label: "누가토량",
|
|
inputs: ["cross.areas", "structure.layouts", "context.earthwork_conversion"],
|
|
outputs: ["누가토량 · 배지", "file:longitudinal.mass_haul"],
|
|
site: "browser_now",
|
|
stage: null,
|
|
ts: `${U}common_util_mass_haul.ts#computeMassHaul`,
|
|
runner: "node:masshaul.cumulative",
|
|
pair: null,
|
|
mirror: [],
|
|
note: "브라우저는 그릴 때 셈(B05_Profile_UI_Profile_MassHaul) · 같은 코드",
|
|
},
|
|
{
|
|
id: "haul.plan",
|
|
no: "E2",
|
|
label: "유토 배분 · 운반거리",
|
|
inputs: ["masshaul.cumulative", "context.haul_equipment_limits"],
|
|
outputs: ["배분", "file:longitudinal.mass_haul.haul_plan"],
|
|
site: "server_canon",
|
|
stage: null,
|
|
ts: `${U}common_util_mass_haul_balance.ts#computeHaulPlan`,
|
|
runner: "node:haul.plan",
|
|
pair: null,
|
|
mirror: ["test_511_c_haul_node"],
|
|
note: "기본 /haul-plan(늘 떠 있는 Node haul.view) · 판 haul both = 브라우저 dynamic import(511-C)",
|
|
},
|
|
/* ── 배수 · 3D · 추천 ────────────────────────────────────────────────── */
|
|
{
|
|
id: "drainage.basins",
|
|
no: "D1",
|
|
label: "배수유역 세부 나눔",
|
|
inputs: ["route.polyline", "input.pipes"],
|
|
outputs: ["유역 · 관경 제안"],
|
|
site: "server_only",
|
|
stage: "drainage",
|
|
ts: null,
|
|
runner: `py:${U}common_util_drainage_detail.py#build_detail`,
|
|
pair: null,
|
|
mirror: [],
|
|
note: "TS 는 일정만(B05_Profile/logic/B05_Profile_Drainage_Live.ts)",
|
|
},
|
|
{
|
|
id: "drainage.suggest",
|
|
no: "D2",
|
|
label: "관 자리 제안",
|
|
inputs: ["route.polyline", "drainage.basins"],
|
|
outputs: ["제안"],
|
|
site: "server_only",
|
|
stage: null,
|
|
ts: null,
|
|
runner: `py:${U}common_util_stream_crossing.py#propose_pipes`,
|
|
pair: null,
|
|
mirror: [],
|
|
note: "[자동 제안](510) — TS 는 후보 그리기 · 고름만(B05_Profile/B05_Profile_UI_Drainage_Propose.ts)",
|
|
},
|
|
{
|
|
id: "corridor.mesh",
|
|
no: "D3",
|
|
label: "3D 길 모형",
|
|
inputs: ["profile.alignment", "cross.design"],
|
|
outputs: ["3D", "file:corridor"],
|
|
site: "browser_now",
|
|
stage: "corridor",
|
|
ts: `${B05}logic/B05_Profile_Corridor_Build.ts#buildCorridor`,
|
|
runner: "node:corridor.mesh",
|
|
pair: null,
|
|
mirror: [],
|
|
},
|
|
{
|
|
id: "footprint.plan",
|
|
no: "D4",
|
|
label: "평면 발자국(절성토선)",
|
|
inputs: ["cross.design", "ground.sample"],
|
|
outputs: ["발자국", "store.footprint"],
|
|
site: "browser_only",
|
|
stage: "footprint",
|
|
ts: `${B05L}B05_Profile_PlanFootprint.ts#footprintRecord`,
|
|
runner: `browser:${B05L}B05_Profile_Footprint_Stage.ts#footprintStage`,
|
|
pair: "B07_DesignDetail/B07_DesignDetail_Engine_Cad_PlanSlope.py#route_frame",
|
|
mirror: ["test_346_2_plan_footprint_mirror"],
|
|
note: "서버 정본 없음(즉시 후보) · X4 B07 파이썬이 따로 셈(472 밖)",
|
|
},
|
|
{
|
|
id: "route.recommend",
|
|
no: "N1",
|
|
label: "노선 추천",
|
|
inputs: ["file:dtm_grid", "file:streams"],
|
|
outputs: ["추천 노선"],
|
|
site: "server_only",
|
|
stage: null,
|
|
ts: null,
|
|
runner: `py:${B05}B05_Profile_Engine_RouteInitial.py#generate_initial_route`,
|
|
pair: null,
|
|
mirror: ["test_419_1_recommend_engine"],
|
|
note: "[적용] 정본은 route.polyline · stations.list 길 · TS 는 보기만(B05_Profile_UI_RouteEdit_Initial_Model.ts)",
|
|
},
|
|
];
|