feat(B06): 세월교 · 박스 흙막이 횡단 그림 — 관보호공 흙막이와 같은 벽 · 자리 · 연동 · 경사(73-4)
- 유입 · 유출 구조 「흙막이」면 배관 흙막이와 같은 세트(관 숨김 · body)를 같은 측점 culvert 자리에 함께 얹음(파이썬 _guard_set ↔ TS guardSet 짝 · 거울 시험) - 자동 자리 = 벽 전면이 관(세월교) · 본체(박스) 끝 · 좌우 x 는 그 자리 기준(본체를 늘리면 벽도 따라감) · 상하 d 는 배관과 같음 - 연동 옆 측점 · 3D 연동 해제 자리는 본체 기준 x 를 절대값으로 넘겨 받음 · 3D 만료 해시에 흙막이 값 포함 - 설계선 트림 = 벽 선 쪽은 흙막이 · 안 선 쪽은 본체 · 벽 선 쪽 본체 성토선은 걷음(두 줄 방지) · 관 연장은 안 실음 - 좌측 폼 → 캐시: 세트 다시 짓기 · 높이 · 형태 · 추가 흙막이 상자 수 = 유출 다단 수 - [연동][경사] 회색 풀림(옆 측점에 벽이 서면 연동 · 구간 있으면 경사) — 배관과 같은 규칙 - 시험: test_73_4_body_guard(벽 전면 = 본체 끝 · 박스 +1 m 따라감 · 연동 옆 측점 벽 · 서버 Node 면적 = 화면) · 거울 시험 흙막이 칸 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EYJJRCfHfdCGNhmXTjQKV7
This commit is contained in:
@@ -53,6 +53,10 @@ POINTS = [
|
||||
"wing_in_length_m": 3.0,
|
||||
"wing_in_angle_deg": 30.0,
|
||||
"wing_out": "없음",
|
||||
# 세월교 유입 흙막이(73-4)
|
||||
"inlet_type": "흙막이",
|
||||
"inlet_revet_form": "콘크리트",
|
||||
"inlet_revet_height_m": 1.5,
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -64,6 +68,10 @@ POINTS = [
|
||||
"wing_in": "날개벽",
|
||||
"wing_out": "흙막이",
|
||||
"wing_out_length_m": 2.0,
|
||||
# 박스 유출 흙막이(73-4) — 배관 흙막이와 같은 칸 · `culvert` 자리에 함께 얹힘
|
||||
"outlet_revet_form": "돌쌓기(찰)",
|
||||
"outlet_revet_height_m": 3.5,
|
||||
"outlet_revet_length_m": 10,
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -175,3 +183,19 @@ def test_culvert_sets_match_between_python_and_ts(tmp_path: Path) -> None:
|
||||
assert left == right, f"{CHAINAGES[index]}m 측점 세트가 갈렸다"
|
||||
# 시설이 실제로 붙었는지 — 빈 결과끼리 같아서 통과하는 것을 막는다.
|
||||
assert sum(1 for item in expected if len(item) > 1) >= 6
|
||||
|
||||
|
||||
def test_ford_box_guard_attached_as_culvert() -> None:
|
||||
"""세월교 · 박스 흙막이(73-4) — 흙막이 고른 쪽만 기슭막이 · 관 숨김 · 자리 기준 = 본체."""
|
||||
sections = {item["chainage_m"]: item for item in _python_sections()}
|
||||
ford, box = sections[60.0]["culvert"], sections[80.0]["culvert"]
|
||||
assert (ford["body"], ford["hidden_pipe"], ford["diameter_m"]) == ("ford", True, 1.0)
|
||||
assert ford["inlet"]["structure"] == "기슭막이" and ford["outlet"]["structure"] == ""
|
||||
assert ford["inlet"]["revet_form"] == "콘크리트"
|
||||
assert box["body"] == "box" and box["inlet"]["structure"] == ""
|
||||
assert box["outlet"]["revet_height_m"] == 3.5
|
||||
# 본체 전체 높이 = 상판 + 내공 2.5 + 저판
|
||||
b = sections[80.0]["box"]
|
||||
assert box["diameter_m"] == round(b["top_thickness_m"] + 2.5 + b["slab_thickness_m"], 3)
|
||||
# 흙막이 없는 시설엔 안 얹음
|
||||
assert "culvert" not in sections[100.0]
|
||||
|
||||
Reference in New Issue
Block a user