fix(765-8): 벌마다 평면노선 따로 — 받은 노선을 그 벌 지형으로 잘라 벌 예정노선으로 두고 따라감(요구 612)

- 벌 예정노선 terrain_route.csv(벌 몫) — 체인이 받은 노선을 그 지형으로 잘라 한 번 적음 · 초기 폴리라인(merged_follow) · 화면 예상노선 · 고칠 선 끝이 이것을 바탕으로(route_source_path · 없으면 공유 예상노선)
- 공유 예상노선 expected_route.csv = 설계 지형으로 자른 하나(추천 열쇠 그대로) · 고친 예정노선 expected_route_edit.csv 는 벌 몫(다른 벌에 안 번짐)
- 검증_sub5: 라이다 벌 1,352.9 m · 곡선 19(옛 값과 같음) · 수치지형도 벌 2,110.2 m · 곡선 28(예정노선 끝까지) · 칩 왕복 · 벌마다 [초기화] 값 같음 · 공유 예상노선 그대로
- 시험 test_765_design_sets — 벌 몫 가름에 벌 예정노선 · 고친 예정노선 · 벌 예정노선 자름 · 초기 폴리라인 바탕 둘 덧 · 지운 csf 필터 글자를 ptd · classification 으로(637 · 763_3 · 765)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-11-03 16:56:10 +09:00
co-authored by Claude Opus 5.5
parent 61c6f0e9df
commit 57a6c0ee22
9 changed files with 115 additions and 18 deletions
+13
View File
@@ -229,6 +229,18 @@ def expected_route_edit_path(project_root: Path) -> Path:
return Path(project_root) / "B05_Profile" / "route" / "expected_route_edit.csv"
def terrain_route_csv_path(project_root: Path) -> Path:
"""벌 예정노선(765-8 · 요구 612) — 받은 노선을 **그 벌 지형**으로 자른 것 · 벌 몫(묶음 안).
공유 `expected_route.csv` 는 설계 지형으로 자른 하나(추천 열쇠)."""
return Path(project_root) / "B05_Profile" / "route" / "terrain_route.csv"
def route_source_path(project_root: Path) -> Path:
"""초기 폴리라인 · 화면 예상노선의 바탕 — 벌 예정노선 · 없으면(옛 프로젝트) 공유 예상노선."""
own = terrain_route_csv_path(project_root)
return own if own.is_file() else expected_route_csv_path(project_root)
def write_route_csv(path: Path, points: list[dict[str, float]]) -> None:
"""노선 정점을 CSV로 적는다. 열 이름은 `read_planned_route_csv()`가 아는 것."""
path.parent.mkdir(parents=True, exist_ok=True)
@@ -312,6 +324,7 @@ def load_design_route(
for master in (
planned_route_working_path(project_root),
planned_route_initial_path(project_root),
terrain_route_csv_path(project_root), # 벌 예정노선(765-8)
expected_route_csv_path(project_root),
design_route_csv_path(project_root),
):