From 5d208045fedc6bd33c0dbe767a6988a82d3e111f Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 17 Oct 2026 14:58:15 +0900 Subject: [PATCH] =?UTF-8?q?fix(376-2):=20B07=20=EA=B5=AC=EC=A1=B0=EB=AC=BC?= =?UTF-8?q?=20=EB=8F=84=EB=A9=B4=20CAD=20=EA=B0=80=EC=9D=B4=EB=93=9C=20?= =?UTF-8?q?=EC=84=A0(M02=20=EC=96=B9=EB=8A=94=20=EB=8F=84=EA=B0=81=20?= =?UTF-8?q?=EC=B8=B5=EC=97=90=EC=84=9C=20=EC=9E=91=EB=8F=84=20=EC=98=81?= =?UTF-8?q?=EC=97=AD)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01XWh5wNNycMkbwMpACz1rte --- B07_DesignDetail/B07_DesignDetail_Router.py | 5 ++++- .../B07_DesignDetail_Router_Support_Structure.py | 2 ++ resources/tester/test_376_b07_structure_drawings.py | 9 +++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/B07_DesignDetail/B07_DesignDetail_Router.py b/B07_DesignDetail/B07_DesignDetail_Router.py index 7ffc5ceb4..26d1cd72a 100644 --- a/B07_DesignDetail/B07_DesignDetail_Router.py +++ b/B07_DesignDetail/B07_DesignDetail_Router.py @@ -52,6 +52,7 @@ from B07_DesignDetail.B07_DesignDetail_Router_Support import ( ) from B07_DesignDetail.B07_DesignDetail_Router_Support_Overlay import cross_overlay_extents from B07_DesignDetail.B07_DesignDetail_Router_Support_Plan import PLAN_KIND_ID, plan_kind_source +from B07_DesignDetail.B07_DesignDetail_Router_Support_Structure import STRUCTURE_FRAME_LAYER from B07_DesignDetail.B07_DesignDetail_Schema import ( DesignDrawingConfirmRequest, DesignDrawingConfirmResponse, @@ -140,7 +141,9 @@ def _asset_data_url(relative_path: str | None) -> str: def _drawing_guide(drawing: dict[str, Any]) -> dict[str, Any] | None: """CAD 가이드(169-1 · 169-2) — 작도 영역(도면 좌표) + 넘친 칸. 도각이 없으면 None.""" - area = frame_guide_area(drawing.get("entities") or []) + entities = drawing.get("entities") or [] + # 구조물 도면(376) = M02 얹는 도각 층 + area = frame_guide_area(entities) or frame_guide_area(entities, STRUCTURE_FRAME_LAYER) return {"area": area, "marks": drawing.get("overflow_cells") or []} if area else None diff --git a/B07_DesignDetail/B07_DesignDetail_Router_Support_Structure.py b/B07_DesignDetail/B07_DesignDetail_Router_Support_Structure.py index df1146ca7..549d036c0 100644 --- a/B07_DesignDetail/B07_DesignDetail_Router_Support_Structure.py +++ b/B07_DesignDetail/B07_DesignDetail_Router_Support_Structure.py @@ -20,6 +20,8 @@ from M02_MasterTemplete.M02_Item_Source import read_json logger = logging.getLogger(__name__) STRUCTURE_PREFIX = "structure_" +# M02 `structure_frame` 도각 층 — 그 모듈은 B07 라우터를 불러 여기서 못 부름(같은 값 유지) +STRUCTURE_FRAME_LAYER = "m02-structure-frame" _SHEET_ID = re.compile(r"^[A-Za-z0-9-]{1,40}$") diff --git a/resources/tester/test_376_b07_structure_drawings.py b/resources/tester/test_376_b07_structure_drawings.py index 081d8a467..d67260768 100644 --- a/resources/tester/test_376_b07_structure_drawings.py +++ b/resources/tester/test_376_b07_structure_drawings.py @@ -11,7 +11,9 @@ from pathlib import Path import pytest +from B07_DesignDetail import B07_DesignDetail_Router as router from B07_DesignDetail import B07_DesignDetail_Router_Support as support +from B07_DesignDetail import B07_DesignDetail_Router_Support_Structure as structure from B07_DesignDetail.B07_DesignDetail_Engine_Cad import DRAWING_FORMAT from B07_DesignDetail.B07_DesignDetail_Engine_Template import ( use_project_templates, @@ -114,6 +116,13 @@ def test_단건_도각_도번_도면명(project: Path) -> None: assert "관보호공 조합 · 상세" in texts # 도면명 assert "SD-000002-2" in texts # 장 도번 assert any(layer.get("id") == "m02-structure-frame" for layer in drawing["layers"]) + assert router._drawing_guide(drawing)["area"] # CAD 가이드 선 — 얹는 도각 층에서 + + +def test_도각_층_이름_M02_와_같음() -> None: + from M02_MasterTemplete.M02_MasterTemplete_Router_Drawing import STRUCTURE_FRAME_LAYER + + assert STRUCTURE_FRAME_LAYER == structure.STRUCTURE_FRAME_LAYER def test_없는_구조물_도면은_404(project: Path) -> None: