feat: read concrete-lining drawings 04-004..009 and link lining spec to model (Task 6)

Extracted per-sheet pattern groups (입출구부 50 m / 온도미고려), note-5 scope,
fck 27 MPa, SD400, aggregate 25 mm, rebar label counts and printed radii.
Model keeps R1 = 6,982 mm; lining sheets print 6.892 m -> [CONFLICT DETECTED]
for user check. Sheet-to-station and pattern-name mapping left [미확정].
Viewer shows the lining spec on click.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01A5Cun3RHQKna9qxE6ybZ4A
This commit is contained in:
Claude committed 2026-10-21 06:30:45 +00:00
1 parent 6c7e555c25
commit fe6fe26655
8 files changed
+9593 -4

No files matched your search

+8 -1
View File
@@ -191,7 +191,14 @@ meta = {
"pattern_status": "PLACEHOLDER: 2 m 임의 배정. 실제 측점 구간 아님 (사용자 결정 2026-10-21). data/pattern_zones_placeholder.csv 를 수정 후 재빌드",
"patterns": [{"from": a, "to": b, "pattern": pat} for a, b, pat, _ in ZONES],
"open": ["4+700~4+745 and 5+480~5+500 excluded ([미확정])", "pattern zones (03-003~008) pending Task 5",
"lining details (04-004~009) pending Task 6"]
"lining reference recorded (meta.lining_reference, 04-004~009); sheet-to-station mapping [미확정]",
"[CONFLICT DETECTED] lining sheets print R1=6.892 m, standard section R1=6,982 mm (model keeps 6.982) - user check"]
}
_ls = json.load(open(f"{ROOT}/data/lining_spec.json", encoding="utf-8"))
meta["lining_reference"] = {
"source": _ls["source"], "concrete": "fck 27 MPa", "rebar": "SD400 (fy 400 MPa)", "aggregate_mm": 25,
"summary": "C0060304-004~009 | fck 27 MPa | SD400 | 입출구부 50 m 취약구간 철근 상세 (측점 대응 미확정)",
"sheets": [{"sheet": r["file"][:14], "groups": [[g["group"], g["kind"]] for g in r["pattern_details"]]} for r in _ls["sheets"]]
}
json.dump(meta, open(f"{ROOT}/model/tunnel_skeleton_meta.json", "w", encoding="utf-8"), ensure_ascii=False, indent=2)
print(json.dumps(checks, ensure_ascii=False, indent=1))