feat(설계묶음): 344-3 측점 열쇠 규칙 계약 — grid:k(원래 격자 번호) · pipe:<id> · structure:<id> · end:BP/EP · 글 자릿수 0.01 m · RouteLine 곡선표 칸
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TteK8mfYZetk5P3bEZkyVZ
This commit is contained in:
@@ -24,7 +24,7 @@
|
|||||||
* | 단계 | 주인 | deps | 출력 |
|
* | 단계 | 주인 | deps | 출력 |
|
||||||
* | route | sub8 | input.route | RouteLine |
|
* | route | sub8 | input.route | RouteLine |
|
||||||
* | follow | sub1 | route | FollowPatch(입력 고침) |
|
* | follow | sub1 | route | FollowPatch(입력 고침) |
|
||||||
* | stations | sub1·sub2| route · input.pipes · input.structures | PipelineStation[](지반 null) |
|
* | stations | sub7 | route · input.pipes · input.structures | PipelineStation[](지반 null) |
|
||||||
* | ground | sub8 | stations | GroundOutput |
|
* | ground | sub8 | stations | GroundOutput |
|
||||||
* | planline | sub1 | ground | AlignmentBase(첫 계획선) |
|
* | planline | sub1 | ground | AlignmentBase(첫 계획선) |
|
||||||
* | profile | sub1 | planline · input.alignment | ProfileAlignment |
|
* | profile | sub1 | planline · input.alignment | ProfileAlignment |
|
||||||
@@ -37,6 +37,16 @@
|
|||||||
*
|
*
|
||||||
* 가게 키(`design_store.ts`) — routeDraft(입력 · 세션 즉시) · stations(ground 단계 출력) ·
|
* 가게 키(`design_store.ts`) — routeDraft(입력 · 세션 즉시) · stations(ground 단계 출력) ·
|
||||||
* profile · footprint(메모리 우선 · 멈춘 뒤 한 번 세션) · generation(메모리만).
|
* profile · footprint(메모리 우선 · 멈춘 뒤 한 번 세션) · generation(메모리만).
|
||||||
|
*
|
||||||
|
* 측점 열쇠(344-3 · `stationKey` · `B05_Profile/logic/B05_Profile_Sections_Stations.ts`):
|
||||||
|
* | 측점 | 열쇠 | 뜻 |
|
||||||
|
* | 일반(격자) | grid:k | k = 원래 격자 번호(누가거리 ÷ 측점 간격 반올림) · 노선 모양이 바뀌어도 같은 번호 · 스냅으로 옮긴 측점은 원래 번호 |
|
||||||
|
* | 관 | pipe:<id> | 관 세션 id(없으면 `pipe-{누가거리 2자리}`) |
|
||||||
|
* | 구조물 | structure:<id> | structure_id · 구간형 시작 · 끝 = `:start` · `:end` 덧붙임 |
|
||||||
|
* | 시종점 | end:BP · end:EP | 그 자리 관 · 구조물이 있어도 시종점(서버 bp · ep 와 같음) |
|
||||||
|
* · 같은 m(0.005) 관 · 구조물이 겹치면 관 열쇠 하나 · 격자 자리에 얹히면 관 · 구조물 열쇠(격자는 숨음).
|
||||||
|
* · 누가거리를 글로 쓸 때(초안 칸 · 서버 이월) 자릿수 0.01 m 하나 — `stationText`.
|
||||||
|
* · 세션 횡단 초안 · 서버 이월을 이 열쇠로 바꾸는 일 = sub2(344-3 나머지).
|
||||||
* ========================================================================== */
|
* ========================================================================== */
|
||||||
|
|
||||||
import type {
|
import type {
|
||||||
@@ -116,8 +126,18 @@ export interface RangePart {
|
|||||||
/* ── 출력 ───────────────────────────────────────────────────────────────── */
|
/* ── 출력 ───────────────────────────────────────────────────────────────── */
|
||||||
|
|
||||||
/** route 단계 — 원호가 섞인 그린 노선(`_RouteEdit_Curve` 짝) · 누가거리. */
|
/** route 단계 — 원호가 섞인 그린 노선(`_RouteEdit_Curve` 짝) · 누가거리. */
|
||||||
|
/** 설계 곡선표 한 줄 — 서버 `RoutePlanCurve` · `EditedCurve` 와 같은 칸(반경 · 바깥쪽 · 스냅 재료). */
|
||||||
|
export interface DesignCurve {
|
||||||
|
start: Vertex;
|
||||||
|
apex: Vertex;
|
||||||
|
end: Vertex;
|
||||||
|
radius_m: number;
|
||||||
|
}
|
||||||
|
|
||||||
export interface RouteLine {
|
export interface RouteLine {
|
||||||
line: Vertex[];
|
line: Vertex[];
|
||||||
|
/** 설계 곡선표(없으면 빈 칸 = 측점마다 반경을 잼 · 서버와 같음). */
|
||||||
|
curves: DesignCurve[];
|
||||||
/** line 정점마다 누가거리(m). */
|
/** line 정점마다 누가거리(m). */
|
||||||
chainage: number[];
|
chainage: number[];
|
||||||
lengthM: number;
|
lengthM: number;
|
||||||
@@ -148,7 +168,7 @@ export interface StationGround {
|
|||||||
|
|
||||||
/** 측점 한 자리 — stations 가 만들고 ground 가 지반을 채움. 가게 키 `stations`. */
|
/** 측점 한 자리 — stations 가 만들고 ground 가 지반을 채움. 가게 키 `stations`. */
|
||||||
export interface PipelineStation {
|
export interface PipelineStation {
|
||||||
/** 측점 키 — 규칙 = 344-3(sub2 · 0.01 m · 격자 = 격자 번호 · 구조물 · 관 = id). */
|
/** 측점 열쇠 — 머리 표(grid:k · pipe:<id> · structure:<id> · end:BP/EP). */
|
||||||
key: string;
|
key: string;
|
||||||
chainageM: number;
|
chainageM: number;
|
||||||
x: number;
|
x: number;
|
||||||
|
|||||||
Reference in New Issue
Block a user