fix(472 덧 관 자리): 관 파일 누가거리를 그대로 읽던 남은 서버 자리 = 지금 노선에 얹은 관 자리(route_pipe_points 한 벌)

- 옛 노선 지문 관 파일(옛 누가거리 394 · 좌표 351) — 측점 계획 · 관 지점 GET · 화면 · 상세 얹기는 351 인데
  세월교 노면 하강(ford_surface_drops) · 물넘이포장 구간(ford_pavement_ranges · tilt_ranges) · 카드 이름
  (relabel_pipe_stations) · B07 관 글 재료(load_note_sources) · 옛 비정규 측점 이관 심는 자리만 394 로 읽음
  → [저장] 재계산 · [확정] · 상세 값이 화면과 갈림
- B05_Profile_Engine_Sections.route_pipe_points — 관 지점 정본을 지금 노선에 얹어 읽음(_load_pipe_points 이월)
  · 노선 경로 안 줌 = 노선 파일 하나(ROUTE_DATA_FILE · 노선 풀기도 같은 이름을 씀) · 노선 못 읽으면 저장분 그대로
- load_culvert_sets · attach_saved_shapes(saved_pipes 걷음) · relabel_pipe_stations(상세 GET 은 노선 경로 넘김)
  · B07 load_note_sources · Structures_Router 이관 심는 자리 = 이 한 벌
- 시험 test_472_d_route_pipe_readers(옛 코드 빨강 2) · test_472_d_pipe_route_attach 「노선 모름 = 파일 누가거리」
  단언은 옛 동작이라 「노선 파일 하나 = 351」로 고침 · 위키 rules · calculations 줄

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-19 12:22:09 +09:00
co-authored by Claude Opus 5.5
parent e1f8ba7bff
commit fa41db8b4f
11 changed files with 179 additions and 69 deletions
@@ -14,17 +14,17 @@ B06 [상세] 모달을 한 번도 안 연 측점(칸 = 없음)에 B07 이 같은
좌표 = 도면 mm(글 2.0 · 줄 3.0) · 칸 왼쪽 위 = (0, 0) · 아래로 음수.
"""
import json
import logging
import math
import re
from pathlib import Path
from typing import Any
from B05_Profile.B05_Profile_Engine_Sections import route_pipe_points
from B05_Profile.B05_Profile_Structures_Repository import load_structures
from B05_Profile.B05_Profile_Structures_Schema import load_definition, load_structure_types
from B06_Section.B06_Section_Engine_Culvert import _culvert_set, pipe_points_file
from common_util.common_util_drainage_pipes import PIPE_FACILITY_PIPE, parse_pipe_points
from B06_Section.B06_Section_Engine_Culvert import _culvert_set
from common_util.common_util_drainage_pipes import PIPE_FACILITY_PIPE
from common_util.common_util_node_bundle import run_bundle_json
from common_util.common_util_structure_station import PIPE_MATCH_M # 같은 자리 폭 한 곳(323-7)
@@ -272,11 +272,7 @@ def with_option_lines(things: list[Thing]) -> list[Thing]:
def load_note_sources(project_root: Path) -> tuple[list[Pipe], list[Thing]]:
"""정본 재료 — (원형 마크 배수관 · 관경 안 고름 = 없음, 글 줄 재료 = 관 지점 + 구조물 배치)."""
try:
document = json.loads(pipe_points_file(project_root).read_text(encoding="utf-8"))
points = parse_pipe_points(document.get("points"))
except (OSError, json.JSONDecodeError):
points = []
points = route_pipe_points(project_root) # 관 = 지금 노선에 얹은 자리(472 덧)
pipes: list[Pipe] = []
for point in points:
options = dict(point.options or {})