chore(rebar): Pier_T_rebar 작업 폴더 초기 구성 및 외부 의존 파일 통합

- Code\rebar_pipeline, review_pipeline, pier-program을 정션에서 실제 폴더로 전환
- Code\rhino_mcp 및 CLAUDE_rhino배경.md 추가, .mcp.json은 PYTHONPATH로 새 위치 사용
- pier-program 내부 .git 제거(이력은 backup\pier-program_20261028.bundle에 보관)
- worktree 가이드 반영(CLAUDE.local.md, HANDOFF.md)
- D:\Rhino-MCP 경로 참조를 새 위치로 치환

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
ahnyongjooandClaude Sonnet 5.5 committed 2026-10-28 11:20:18 +09:00
commit 964a841de1
3978 files changed
+58013356

No files matched your search

File diff suppressed because it is too large. Load diff
@@ -0,0 +1,117 @@
{
"expected:G1": {
"sha": "ebd00116a06211a5",
"by": "예제실행(Agent)",
"at": "2026-10-12 14:22:40"
},
"expected:G2": {
"sha": "12df59aa062bde7a",
"by": "예제실행(Agent)",
"at": "2026-10-12 14:22:40"
},
"expected:G3": {
"sha": "378eee3b312640dd",
"by": "예제실행(Agent)",
"at": "2026-10-12 14:22:40"
},
"expected:G4": {
"sha": "9d14cf310e66f7cf",
"by": "예제실행(Agent)",
"at": "2026-10-12 14:22:40"
},
"expected:G5": {
"sha": "4dd5a0aacc7137e4",
"by": "예제실행(Agent)",
"at": "2026-10-12 14:22:40"
},
"expected:pier_id": {
"sha": "97086571f822df69",
"by": "예제실행(Agent)",
"at": "2026-10-12 14:22:40"
},
"expected:planned_fail": {
"sha": "1c2024ffeca8d63f",
"by": "예제실행(Agent)",
"at": "2026-10-12 14:22:40"
},
"expected:rebar_palette": {
"sha": "c41013bf3e985022",
"by": "예제실행(Agent)",
"at": "2026-10-12 14:22:40"
},
"expected:tol_mm": {
"sha": "d0ff5974b6aa52cf",
"by": "예제실행(Agent)",
"at": "2026-10-12 14:22:40"
},
"params:bearing_seats": {
"sha": "f212a2858946a702",
"by": "예제실행(Agent)",
"at": "2026-10-12 14:22:40"
},
"params:column": {
"sha": "74c090c09f61aa42",
"by": "예제실행(Agent)",
"at": "2026-10-12 14:22:40"
},
"params:column_rebar": {
"sha": "6e5cd384a1c43c80",
"by": "예제실행(Agent)",
"at": "2026-10-12 14:22:40"
},
"params:coping": {
"sha": "9e3209026614e2d9",
"by": "예제실행(Agent)",
"at": "2026-10-12 14:22:40"
},
"params:coping_rebar": {
"sha": "c98e1cc7779f604b",
"by": "예제실행(Agent)",
"at": "2026-10-12 14:22:40"
},
"params:display": {
"sha": "b1b126034742709b",
"by": "예제실행(Agent)",
"at": "2026-10-12 14:22:40"
},
"params:footing": {
"sha": "b7c5056daeed1f8b",
"by": "예제실행(Agent)",
"at": "2026-10-12 14:22:40"
},
"params:footing_rebar": {
"sha": "3d11859aa672975b",
"by": "예제실행(Agent)",
"at": "2026-10-12 14:22:40"
},
"params:lean_concrete": {
"sha": "8c9222a4b2112cbd",
"by": "예제실행(Agent)",
"at": "2026-10-12 14:22:40"
},
"params:materials": {
"sha": "84f210201086bd7c",
"by": "예제실행(Agent)",
"at": "2026-10-12 14:22:40"
},
"params:pier_id": {
"sha": "97086571f822df69",
"by": "예제실행(Agent)",
"at": "2026-10-12 14:22:40"
},
"params:piles": {
"sha": "16b4cdea037fa977",
"by": "예제실행(Agent)",
"at": "2026-10-12 14:22:40"
},
"params:rebar_marks": {
"sha": "c5d7818e0137ed86",
"by": "예제실행(Agent)",
"at": "2026-10-12 14:22:40"
},
"params:sole_plates": {
"sha": "8cc6a2a1a125311c",
"by": "예제실행(Agent)",
"at": "2026-10-12 14:22:40"
}
}
@@ -0,0 +1,26 @@
[
{
"source": "C0050205-025-운곡교 교각도(1)(완도방향 P1).dwg",
"source_sha256": "d275fc3541eb2598c67563a366be893183f0a86063bf80fbad22bc4a41ad0694",
"dxf": "C0050205-025-운곡교 교각도(1)(완도방향 P1).dxf",
"dxf_sha256": "5fa173f34283ad95d2335ee1458f8c9658e09a25f574ad46a16dfeb2aef7daae",
"engine": "ODA File Converter 27.1.0",
"label": "D1"
},
{
"source": "C0050205-026-운곡교 교각도(2)(완도방향 P1).dwg",
"source_sha256": "0aa03f2145935b1a2d91ac6f50ed8f37269ada03ec69c22fc8a94e6a3b0584e1",
"dxf": "C0050205-026-운곡교 교각도(2)(완도방향 P1).dxf",
"dxf_sha256": "e7d18d63bbb8091eb29da94cdea60d0a569deac5f62609247ce95fe6d349285b",
"engine": "ODA File Converter 27.1.0",
"label": "D2"
},
{
"source": "C0050205-027-운곡교 교각도(3)(완도방향 P1).dwg",
"source_sha256": "f77980c5f8592d50be0b22c72b626154af1f492884ad2803e310771643e442b5",
"dxf": "C0050205-027-운곡교 교각도(3)(완도방향 P1).dxf",
"dxf_sha256": "85ff349e2c9905bc20c46aa323923c39a81fa5a9e326facea698c9742f747d2f",
"engine": "ODA File Converter 27.1.0",
"label": "D3"
}
]
@@ -0,0 +1 @@
[{"dwg": "D1", "layer": "CS-DIMT", "x": 43035.4, "y": 27654.4, "h": 150.0, "text": "137", "handle": "1BC7F"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 45797.9, "y": 27654.4, "h": 150.0, "text": "138", "handle": "1BC80"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 46137.4, "y": 27605.8, "h": 150.0, "text": "(1~3단)", "handle": "1BC81"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43035.4, "y": 20658.1, "h": 150.0, "text": "137", "handle": "1BC82"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 45797.9, "y": 20658.1, "h": 150.0, "text": "138", "handle": "1BC83"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44314.7, "y": 20268.1, "h": 150.0, "text": "3.100", "handle": "1BC84"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 42641.9, "y": 20868.1, "h": 150.0, "text": "100", "handle": "1BC85"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43956.2, "y": 20868.1, "h": 150.0, "text": "21@125=2.625", "handle": "1BC86"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 46341.9, "y": 20868.1, "h": 150.0, "text": "100", "handle": "1BC87"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44314.7, "y": 28464.4, "h": 150.0, "text": "3.100", "handle": "1BC88"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 42641.9, "y": 27864.4, "h": 150.0, "text": "100", "handle": "1BC89"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43956.2, "y": 27864.4, "h": 150.0, "text": "21@125=2.625", "handle": "1BC8A"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 46341.9, "y": 27864.4, "h": 150.0, "text": "100", "handle": "1BC8B"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 42641.9, "y": 21468.1, "h": 150.0, "text": "100", "handle": "1BC8C"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43256.9, "y": 21468.1, "h": 150.0, "text": "580", "handle": "1BC8D"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43836.9, "y": 21468.1, "h": 150.0, "text": "580", "handle": "1BC8E"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44416.9, "y": 21468.1, "h": 150.0, "text": "580", "handle": "1BC8F"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44996.9, "y": 21468.1, "h": 150.0, "text": "580", "handle": "1BC90"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 45576.9, "y": 21468.1, "h": 150.0, "text": "580", "handle": "1BC91"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 46266.9, "y": 21468.1, "h": 150.0, "text": "100", "handle": "1BC92"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44479.7, "y": 7438.8, "h": 150.0, "text": "3.100", "handle": "1BC93"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 42807.0, "y": 8038.8, "h": 150.0, "text": "100", "handle": "1BC94"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44121.3, "y": 8038.8, "h": 150.0, "text": "21@125=2.625", "handle": "1BC95"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 46507.0, "y": 8038.8, "h": 150.0, "text": "100", "handle": "1BC96"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44479.7, "y": 17682.6, "h": 150.0, "text": "3.100", "handle": "1BC97"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 46582.0, "y": 17082.6, "h": 150.0, "text": "100", "handle": "1BC98"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44058.8, "y": 17082.6, "h": 150.0, "text": "10@250=2.500", "handle": "1BC99"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 42807.0, "y": 17082.6, "h": 150.0, "text": "100", "handle": "1BC9A"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 42807.0, "y": 16482.6, "h": 150.0, "text": "100", "handle": "1BC9B"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44121.3, "y": 16482.6, "h": 150.0, "text": "21@125=2.625", "handle": "1BC9C"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 46507.0, "y": 16482.6, "h": 150.0, "text": "100", "handle": "1BC9D"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 42807.0, "y": 8638.8, "h": 150.0, "text": "100", "handle": "1BC9E"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43422.0, "y": 8638.8, "h": 150.0, "text": "580", "handle": "1BC9F"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44002.0, "y": 8638.8, "h": 150.0, "text": "580", "handle": "1BCA0"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44582.0, "y": 8638.8, "h": 150.0, "text": "580", "handle": "1BCA1"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 45162.0, "y": 8638.8, "h": 150.0, "text": "580", "handle": "1BCA2"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 45742.0, "y": 8638.8, "h": 150.0, "text": "580", "handle": "1BCA3"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 46432.0, "y": 8638.8, "h": 150.0, "text": "100", "handle": "1BCA4"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 40260.3, "y": 10101.8, "h": 150.0, "text": "100", "handle": "1BCA5"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 40260.3, "y": 11142.7, "h": 150.0, "text": "9@250=2.250", "handle": "1BCA6"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 40260.3, "y": 13017.5, "h": 150.0, "text": "694", "handle": "1BCA7"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 40260.3, "y": 13770.8, "h": 150.0, "text": "100", "handle": "1BCA8"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 39660.3, "y": 11790.2, "h": 150.0, "text": "3.144", "handle": "1BCA9"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43200.5, "y": 16272.6, "h": 150.0, "text": "137", "handle": "1BCAA"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 45963.0, "y": 16272.6, "h": 150.0, "text": "138", "handle": "1BCAB"}, {"dwg": "D1", "layer": "CS-DIMT", "xLine truncated
@@ -0,0 +1,118 @@
{
"_schema": "pier-T-expected/1",
"_note": "독립 기대값: 도면 치수 문자·표(D1~D3)에서 직접 옮긴 값. 생성용 params.json과 별도로 관리하며 검사기는 params를 읽지 않는다. 원출처: Code/교각모델링/verify_*.py (검증서 v0.1.05).",
"pier_id": "P1",
"tol_mm": 1.0,
"G1": {
"footing": {"dx": 9350, "dy": 7800, "z0": 26208, "thickness": 2200, "src": "D1 '9.350' '7.800' 'EL. 26.208' '2.200'"},
"lean": {"margin": 100, "thickness": 100, "src": "D1 footing +100 each side, 100 thick"},
"column": {"d": 2000, "height": 12003, "src": "D1 '2.000' '12.003'"},
"coping": {"dx": 12400, "dy": 3100, "z_top_left": 43411, "rise_upper": 1500, "rise_lower": 1500,
"z_top_right": 43698, "z_top_center": 43555, "flat_from_tip": 5100, "end_inset": 200, "radius": 12000,
"src": "D1 '12.400' '3.100' 'EL. 43.411' '1.500' x2 'EL. 43.698' 'EL. 43.555' '5.100' '200' 'R=12.000'"},
"coping_outline": [[-1100, 40411], [1100, 40411], [6200, 41911], [6000, 43698], [3715, 43698], [3715, 43627],
[1210, 43627], [1210, 43555], [-1296, 43555], [-1296, 43483], [-3801, 43483], [-3801, 43411],
[-6000, 43411], [-6200, 41911]],
"coping_outline_src": "D1 정면도 외형 (원호는 현으로 대체 후 활꼴 2개 차감)",
"dxf_arc_centres": {"datum_x": 12159.4, "datum_y": 16515.6, "datum_el": 40411,
"left": [5207.5, 6039.2], "right": [19111.2, 6039.2],
"src": "DXF ARC 1C4BF centre; datum CS-CNTL 1C546 / coping bottom line 1C4BD"},
"piles": {"nx": 6, "ny": 5, "pitch": 1550, "edge": 800, "d": 600, "length": 24400, "head_embedment": 100,
"src": "D1 '5@1.550' '4@1.550' '800' 'Ø600' 'L=24.4M'; 매입 100 (CS-CNTL)"},
"seats": {
"table": {"1": [43625, 164, 50, 700, 640], "2": [43697, 164, 50, 700, 640], "3": [43768, 164, 50, 700, 790],
"4": [43840, 164, 50, 700, 640], "5": [43912, 164, 50, 700, 640], "6": [43600, 139, 50, 700, 540],
"7": [43672, 139, 50, 700, 540], "8": [43744, 139, 50, 700, 650], "9": [43816, 139, 50, 700, 540],
"10": [43887, 139, 50, 700, 540]},
"table_columns": ["EL.'X'", "h1", "h2", "A", "B"],
"girders": 5,
"step_top": {"1": 43411, "2": 43483, "3": 43555, "4": 43627, "5": 43698},
"step_x": {"1": [-6000, -3801], "2": [-3801, -1296], "3": [-1296, 1210], "4": [1210, 3715], "5": [3715, 6000]},
"row_y": {"front": -698, "rear": 600},
"pitch_chain": [3, 7516],
"pedestal_plan": [1250, 1200],
"pad_margin": [200, 100],
"rear_first_from_tip": 1232,
"src": "D2 ELEVATION TABLE; D1 EL texts + drawn steps; D1 평면도 S1/S2 + D2 TABLE S1 (1550-852 / 1550-950); '3@2.505=7.516'; 대좌 2500x1200 반쪽; '1.232'"
}
},
"G2": {
"schedule_L": {"P1": 17247, "P2": 16553, "P3": 6436, "P4": 5636, "P5": 5636, "P6": 2136},
"schedule_n": {"P1": 46, "P2": 46, "P3": 36, "P4": 9, "P5": 22, "P6": 36},
"dia": {"P1": 32, "P2": 32, "P3": 19, "P4": 19, "P5": 19, "P6": 16},
"hoop_chain": {"start": [150, 1030], "groups": [[8, 120], [22, 120], [36, 300]]},
"hoop_marks_by_zone": [["P4", 9], ["P5", 22], ["P3", 36]],
"tie_chain": {"start": [150, 1030], "groups": [[8, 1800]]},
"tie_offset": 17.5,
"r_outer": 870.5, "r_inner": 825.5, "r_hoop": 897,
"main_divisions": 46,
"bottom_above_footing": 300,
"p1_top_parts": [300, 340, 16213],
"no_fillet_marks": ["P1", "P2", "P4", "P5"],
"src": "D3 L·수량; D1 '150','1.030','8@120=960','22@120=2.640','36@300=10.800','8@1.800=14.400'; HITL H2 반지름(단면 CAD)·D3 R"
},
"G3": {
"schedule": {"B1": [8000, 38], "B2": [11500, 38], "B3": [8000, 38], "B4": [7600, 35], "B5": [9550, 32],
"B6": [13050, 32], "B7": [9550, 32], "B8": [9150, 29], "B9": [2155, 493], "B10": [33684, 9],
"B11": [9350, 28], "B12": [7800, 34]},
"dia": {"B1": 25, "B2": 25, "B3": 19, "B4": 25, "B5": 29, "B6": 29, "B7": 19, "B8": 29, "B9": 16, "B10": 19,
"B11": 16, "B12": 16},
"layer_z": {"B2": 122, "B4": 122, "B6": 178, "B8": 178, "B3": 227.5, "B7": 277, "B1": 2073, "B5": 2127},
"rows": {"Y_BOT": {"ends": [-4575, 4575], "start": -4375, "pitch": 125, "n": 71},
"Y_250": {"ends": [-4575, 4575], "start": -4375, "pitch": 250, "n": 36},
"X_BOT": {"ends": [-3800, 3800], "start": -3625, "pitch": 125, "n": 59},
"X_250": {"ends": [-3800, 3800], "start": -3625, "pitch": 250, "n": 30}},
"b10_levels": {"start": 350, "pitch": 200, "n": 9},
"b10_size": [9198, 7644],
"b9_grid": {"x": {"start": -4125, "pitch": 250, "n": 34}, "y": {"start": -3500, "pitch": 250, "n": 29}},
"b9_erec": [150, 2100], "b9_a": 1995, "b9_c": 64,
"mid_levels": [550, 950, 1350, 1750],
"src": "D3 L·수량; D1/D2 '100','200','70@125=8.750' / '35@250' / '100','175','58@125=7.250' / '29@250'; F1 층 높이(작도점); '150','9@200=1.800'; '450','33@250=8.250' / '300','28@250=7.000'; EREC 150~2100; 중간층 작도점 [derived]"
},
"G4": {
"count": {"C1": 12, "C2": 12, "C3": 12, "C4": 12, "C5": 12, "C6": 12, "C7": 12, "C8": 12, "C9": 60, "C10": 21,
"C11": 60, "C12": 18, "C13": 9, "C14": 41, "C15": 13, "C16": 13, "S1": 50, "S2": 105},
"L": {"C1": 14490, "C2": 12081, "C3": 12106, "C4": 14490, "C5": 12081, "C6": 12106, "C7": 13994, "C8": 13994,
"C9": 8647, "C10": 10310, "C11": 8934, "C12": 20513, "C13": 29345, "C14": 3600, "C15": 2784, "C16": 5611,
"S1": 3800, "S2": 2500},
"range": {"C9": ["b_sched", 2956, 1376], "C11": ["b_sched", 2956, 1664], "C10": ["b_sched", 2998, 2998],
"C12": ["a_sched", 12228, 3151], "C13": ["a_sched", 12167, 12044]},
"range_convention": {"b_sched": {"a": 1407, "c": 750, "c_times": 2}, "a_sched": {"b": 1407, "c": 580, "c_times": 4}},
"dia": {"C1": 29, "C2": 29, "C3": 29, "C4": 29, "C5": 29, "C6": 29, "C7": 29, "C8": 29, "C9": 25, "C10": 25,
"C11": 25, "C12": 25, "C13": 25, "C14": 19, "C15": 19, "C16": 19, "S1": 19, "S2": 19},
"half_width": 1550,
"y24_chain": {"start": [100, 237], "pitch": 125, "n": 21, "end": 3000},
"y13_chain": {"start": [100, 237], "pitch": 250, "n": 10, "end": 3000},
"pairs": [["C1", "C4"], ["C2", "C5"], ["C3", "C6"], ["C7", "C8"]],
"tier_z": {"C1": 43311, "C4": 43311, "C2": 43211, "C5": 43211, "C3": 43111, "C6": 43111},
"stirrup_x": {"C10": [-900, -600, -300, 0, 300, 600, 900],
"C11": {"start": 1150, "pitch": 250, "n": 20}, "C9": {"start": -1150, "pitch": -250, "n": 20}},
"stirrups_per_x": 3,
"c10_bottom": 40511,
"loop_z": {"C12": {"start": 40761, "pitch": 250, "n": 6}, "C13": [42261, 42511, 42761]},
"c15_top": 43598.4, "c16_top": 43454.7,
"c14_levels": [[43088.5, 11], [43188.5, 11], [41011, 3], [42011, 5], [41511, 4], [42511, 6], [43442.4, 1]],
"s_per_girder": {"S1": [10, 50], "S2": [21, 100]},
"step_top": {"1": 43411, "2": 43483, "3": 43555, "4": 43627, "5": 43698},
"src": "D3 수량·L·a/b 범위; D1 A-A 사슬 '100','137','21@125','3000' / B-B '10@250'; 정면도 단 높이·스터럽 X·루프 EL; D2 '50','50'"
},
"G5": {
"el_x": {"1": 43625, "2": 43697, "3": 43768, "4": 43840, "5": 43912, "6": 43600, "7": 43672, "8": 43744, "9": 43816, "10": 43887},
"S": {"1": -1.910, "2": -1.907, "3": -1.905, "4": -1.903, "5": -1.901, "6": -1.910, "7": -1.907, "8": -1.905, "9": -1.903, "10": -1.901},
"W": {"1": 740, "2": 740, "3": 890, "4": 740, "5": 740, "6": 640, "7": 640, "8": 750, "9": 640, "10": 640},
"L": 800, "T": 30, "h3": 181,
"bearing_shrink": 100,
"colours": {"bearing": [0, 0, 0], "sole_plate": [150, 150, 150]},
"src": "D2 ELEVATION TABLE (EL.'X', h3), 솔플레이트 상세 TABLE (S, L, W, T); (L-100)x(W-100)·색 = 사용자 지시 2026-10-08"
},
"rebar_palette": {"32": [214, 39, 40], "29": [255, 127, 14], "25": [188, 60, 160], "19": [44, 160, 44], "16": [31, 119, 180]},
"rebar_palette_src": "디자인지침_경로.md R8 (2026-10-07)",
"planned_fail": [
{"gate": "G3", "item": "B12 bar count vs schedule", "reason": "작도 28본 채택(F2) vs D3 34본 — OPEN #9", "approved": "사용자 2026-10-07"},
{"gate": "G4", "item_prefix": "C9 original length vs L", "reason": "작도 폭 채택(K1)", "approved": "사용자 2026-10-07"},
{"gate": "G4", "item_prefix": "C10 original length vs L", "reason": "작도 폭 채택(K1)", "approved": "사용자 2026-10-07"},
{"gate": "G4", "item_prefix": "C11 original length vs L", "reason": "작도 폭 채택(K1)", "approved": "사용자 2026-10-07"},
{"gate": "G4", "item_prefix": "C12 original length vs L", "reason": "작도 폭 채택(C12·C13 drawn width)", "approved": "사용자 2026-10-07"},
{"gate": "G4", "item_prefix": "C13 original length vs L", "reason": "작도 폭 채택(C12·C13 drawn width)", "approved": "사용자 2026-10-07"}
]
}
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -0,0 +1 @@
{"model": "C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\운곡교P1\\runs\\current\\G1.3dm", "units": "Millimeters", "tolerance": 0.001, "count": 54, "layers": {"P1::받침패드": [90, 160, 90, true], "P1::받침대좌": [190, 90, 90, true], "P1::말뚝": [110, 110, 110, true], "P1::코핑": [210, 180, 80, true], "P1::기둥": [200, 140, 90, true], "P1::기초": [120, 150, 200, true], "P1::버림콘크리트": [160, 160, 160, true]}, "objects": {"P1-BP10": {"layer": "P1::받침패드", "type": "Brep", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [4659.59, 130.44, 43837.0, 5447.21, 1069.16, 43887.0], "user": {"fck": "-", "id": "P1-BP10", "role": "bearing pad h2 NO.10 2800 kN 양방향", "source_views": "D1 평면도, D1 단면도, D2 교량받침 상세·ELEVATION TABLE"}, "faces": 6, "solid": true, "volume": 29366666.7}, "P1-BS10": {"layer": "P1::받침대좌", "type": "Brep", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [4420.0, -95.8, 43698.0, 5712.5, 1242.6, 43837.0], "user": {"fck": "40MPa", "id": "P1-BS10", "role": "bearing pedestal h1 NO.10 girder 5 rear", "source_views": "D1 평면도, D1 단면도, D2 ELEVATION TABLE"}, "faces": 6, "solid": true, "volume": 208505497.5}, "P1-BP09": {"layer": "P1::받침패드", "type": "Brep", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [2154.29, 130.44, 43766.0, 2941.91, 1069.16, 43816.0], "user": {"fck": "-", "id": "P1-BP09", "role": "bearing pad h2 NO.9 2800 kN 양방향", "source_views": "D1 평면도, D1 단면도, D2 교량받침 상세·ELEVATION TABLE"}, "faces": 6, "solid": true, "volume": 29366666.7}, "P1-BS09": {"layer": "P1::받침대좌", "type": "Brep", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [1914.67, -95.8, 43627.0, 3207.17, 1242.6, 43766.0], "user": {"fck": "40MPa", "id": "P1-BS09", "role": "bearing pedestal h1 NO.9 girder 4 rear", "source_views": "D1 평면도, D1 단면도, D2 ELEVATION TABLE"}, "faces": 6, "solid": true, "volume": 208505497.4}, "P1-BP08": {"layer": "P1::받침패드", "type": "Brep", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [-406.03, 127.46, 43694.0, 491.43, 1072.14, 43744.0], "user": {"fck": "-", "id": "P1-BP08", "role": "bearing pad h2 NO.8 2800 kN 교축방향", "source_views": "D1 평면도, D1 단면도, D2 교량받침 상세·ELEVATION TABLE"}, "faces": 6, "solid": true, "volume": 34041666.7}, "P1-BS08": {"layer": "P1::받침대좌", "type": "Brep", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [-590.67, -95.8, 43555.0, 701.83, 1242.6, 43694.0], "user": {"fck": "40MPa", "id": "P1-BS08", "role": "bearing pedestal h1 NO.8 girder 3 rear", "source_views": "D1 평면도, D1 단면도, D2 ELEVATION TABLE"}, "faces": 6, "solid": true, "volume": 208505497.4}, "P1-BP07": {"layer": "P1::받침패드", "type": "Brep", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [-2856.41, 130.44, 43622.0, -2068.79, 1069.16, 43672.0], "user": {"fck": "-", "id": "P1-BP07", "role": "bearing pad h2 NO.7 2800 kN 양방향 [추론: 평행 이동]", "source_views": "D1 평면도, D1 단면도, D2 교량받침 상세·ELEVATION TABLE"}, "faces": 6, "solid": true, "volume": 29366666.7}, "P1-BS07": {"layer": "P1::받침대좌", "type": "Brep", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [-3096.0, -95.8, 43483.0, -1803.5, 1242.6, 43622.0], "user": {"fck": "40MPa", "id": "P1-BS07", "role": "bearing pedestal h1 NO.7 girder 2 rear [추론: 평행 이동]", "source_views": "D1 평면도, D1 단면도, D2 ELEVATION TABLE"}, "faces": 6, "solid": true, "volume": 208505497.5}, "P1-BP06": {"layer": "P1::받침패드", "type": "Brep", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [-5361.71, 130.44, 43550.0, -4574.09, 1069.16, 43600.0], "user": {"fck": "-", "id": "P1-BP06", "role": "bearing pad h2 NO.6 2800 kN 양방향 [추론: 평행 이동]", "source_views": "D1 평면도, D1 단면도, D2 교량받침 상세·ELEVATION TABLE"}, "faces": 6, "solid": true, "volume": 29366666.7}, "P1-BS06": {"layer": "P1::받침대좌", "type": "Brep", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [-5601.33, -95.8, 43411.0, -4308.83, 1242.6, 43550.0], "user": {"fck": "40MPa", "id": "P1-BS06", "role": "bearing pedestal h1 NO.6 girder 1 rear [추론: 평행 이동]", "source_views": "D1 평면도, D1 단면도, D2 ELEVATION TABLE"}, "faces": 6, "solid": true, "volume": 208505497.4}, "P1-BP05": {"layer": "P1::받침패드", "type": "Brep", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [4514.99, -1178.72, 43862.0, 5421.61, -216.88, 43912.0], "user": {"fck": "-", "id": "P1-BP05", "role": "bearing pad h2 NO.5 3500 kN 양방향", "source_Line truncated
@@ -0,0 +1,77 @@
{
"gate": "G1",
"checker": "g1_shape.py",
"verdict": "PASS",
"summary": {
"total": 171,
"passed": 171,
"failed": 0,
"volumes_m3": {
"lean": 6.792,
"footing": 160.446,
"column": 37.709,
"coping": 89.586
},
"pile_volume_each_m3": 6.899
},
"unplanned_fails": [],
"planned_fails": [],
"negative": {
"negH": {
"move": {
"id": "BS08",
"d": [
3,
0,
0
]
},
"new_fails": [
"rear pedestal pitch girder 2-3",
"rear pedestal pitch girder 3-4"
],
"detected": true
},
"negV": {
"move": {
"id": "BP03",
"d": [
0,
0,
2
]
},
"new_fails": [
"NO.3 pad top = EL.'X'"
],
"detected": true
}
},
"reload": {
"built": 54,
"reopened": 54,
"fingerprint": 54,
"ok": true
},
"unchanged": {
"compared": 0,
"diffs": [],
"missing": [],
"ok": true,
"against": null
},
"model": "C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\운곡교P1\\runs\\current\\G1.3dm",
"secs": 44.3,
"build_steps": [
{
"name": "G1:concrete.py",
"secs": 0.25
},
{
"name": "display.py",
"secs": 0.02
}
],
"inputs_sha": "a07fc78446227a14",
"job_id": "a347483f1632"
}
@@ -0,0 +1,12 @@
{
"id": "a347483f1632",
"pid": 14676,
"state": "완료",
"at": "2026-10-12 14:23:24",
"log": [
"Rhino 작업 시작",
"[G1] build G1..G1",
"[G1] re-open, check, negative tests, fingerprint",
"[G1] PASS checks 171/171 (planned FAIL 0, unplanned 0) negative H/V True/True reload True unchanged True (0) 44.3s"
]
}
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,425 @@
{
"summary": {
"total": 42,
"passed": 42,
"failed": 0,
"min_cover": {
"P1": 113.5,
"P2": 158.5,
"P3": 93.5,
"P4": 109.7,
"P5": 93.5,
"P6": 74.0
}
},
"results": [
{
"check": "C8",
"item": "P1 bar count",
"expected": 46,
"actual": 46,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 pipes closed & paired with centrelines",
"detail": "pipes 46 / centrelines 46",
"result": "PASS"
},
{
"check": "C8",
"item": "P2 bar count",
"expected": 46,
"actual": 46,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 pipes closed & paired with centrelines",
"detail": "pipes 46 / centrelines 46",
"result": "PASS"
},
{
"check": "C8",
"item": "P3 bar count",
"expected": 36,
"actual": 36,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 pipes closed & paired with centrelines",
"detail": "pipes 72 / centrelines 72",
"result": "PASS"
},
{
"check": "C8",
"item": "P4 bar count",
"expected": 9,
"actual": 9,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 pipes closed & paired with centrelines",
"detail": "pipes 18 / centrelines 18",
"result": "PASS"
},
{
"check": "C8",
"item": "P5 bar count",
"expected": 22,
"actual": 22,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 pipes closed & paired with centrelines",
"detail": "pipes 22 / centrelines 22",
"result": "PASS"
},
{
"check": "C8",
"item": "P6 bar count",
"expected": 36,
"actual": 36,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 pipes closed & paired with centrelines",
"detail": "pipes 36 / centrelines 36",
"result": "PASS"
},
{
"check": "C8",
"item": "P1 original length (+coupler b) vs schedule L (worst of 46)",
"expected": 0,
"actual": 0.071,
"diff": 0.071,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 curve length - L (record, fillets shorten hooks)",
"detail": "min 0.1 / max 0.1 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P1 curve length (+coupler b) vs L (no fillet)",
"expected": 0,
"actual": 0.071,
"diff": 0.071,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 original length (+coupler b) vs schedule L (worst of 46)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 curve length - L (record, fillets shorten hooks)",
"detail": "min 0.0 / max 0.0 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P2 curve length (+coupler b) vs L (no fillet)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 original length (+coupler b) vs schedule L (worst of 36)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 curve length - L (record, fillets shorten hooks)",
"detail": "min -493.1 / max -493.1 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P4 original length (+coupler b) vs schedule L (worst of 9)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 curve length - L (record, fillets shorten hooks)",
"detail": "min 0.0 / max 0.0 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P4 curve length (+coupler b) vs L (no fillet)",
"expected": 0,
"actual": 0.017,
"diff": 0.017,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 original length (+coupler b) vs schedule L (worst of 22)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 curve length - L (record, fillets shorten hooks)",
"detail": "min 0.0 / max 0.0 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P5 curve length (+coupler b) vs L (no fillet)",
"expected": 0,
"actual": 0.017,
"diff": 0.017,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 original length (+coupler b) vs schedule L (worst of 36)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 curve length - L (record, fillets shorten hooks)",
"detail": "min -20.6 / max -20.6 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P1 top EL",
"expected": 43061,
"actual": 43061.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 radius (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 angle vs i*360/46 (worst, deg)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 top EL",
"expected": 43061,
"actual": 43061.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 radius (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 angle vs i*360/46 (worst, deg)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 hook leg EL (footing bottom + 300)",
"expected": 26508,
"actual": 26508.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 bottom EL",
"expected": 26508,
"actual": 26508.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 radius",
"expected": 897,
"actual": 897.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 radius",
"expected": 897,
"actual": 897.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "hoop level count 67",
"detail": "67",
"result": "PASS"
},
{
"check": "C8",
"item": "hoop levels vs dim chain (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "hoop marks by zone (P4 x9, P5 x22, P3 x36)",
"detail": "",
"result": "PASS"
},
{
"check": "C8",
"item": "tie levels vs chain + 17.5 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "concrete union for cover",
"detail": "1 brep",
"result": "INFO"
},
{
"check": "C8",
"item": "P1 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "min cover to concrete surface per mark (record)",
"detail": "{\"P1\": 113.5, \"P2\": 158.5, \"P3\": 93.5, \"P4\": 109.7, \"P5\": 93.5, \"P6\": 74.0}",
"result": "INFO"
},
{
"check": "C8",
"item": "clearance P1 outer surface vs hoop inner surface (record)",
"detail": "1.0 mm",
"result": "INFO"
}
]
}
@@ -0,0 +1 @@
{"model": "C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\운곡교P1\\runs\\current\\G2.3dm", "units": "Millimeters", "tolerance": 0.001, "count": 534, "layers": {"P1::철근::기둥::P6": [140, 60, 160, true], "P1::철근::중심선": [60, 60, 60, true], "P1::철근::기둥::P3": [40, 120, 200, true], "P1::철근::기둥::P5": [90, 90, 220, true], "P1::철근::기둥::P4": [40, 170, 170, true], "P1::철근::기둥::P2": [230, 120, 40, true], "P1::철근::기둥::P1": [200, 40, 40, true], "P1::받침패드": [90, 160, 90, true], "P1::받침대좌": [190, 90, 90, true], "P1::말뚝": [110, 110, 110, true], "P1::코핑": [210, 180, 80, true], "P1::기둥": [200, 140, 90, true], "P1::기초": [120, 150, 200, true], "P1::버림콘크리트": [160, 160, 160, true]}, "objects": {"P1-R-P6-L9-135": {"layer": "P1::철근::기둥::P6", "type": "Brep", "hidden": false, "locked": false, "colour_source": 1, "colour": [31, 119, 180], "bbox": [-657.12, -657.12, 41655.5, 657.12, 657.12, 41813.5], "user": {"anchor_hosts": "P1-CP", "coupler_length": "0.000", "design_length": "2136.000", "dia": "H16", "host": "P1-CL", "id": "P1-R-P6-L9-135", "mark": "P6", "occurrence": "L9-135", "shape": "III", "src": "EL 41.788 (+17.5 on hoop); angle 135 deg"}, "faces": 7, "solid": true, "volume": "skipped"}, "P1-RC-P6-L9-135": {"layer": "P1::철근::중심선", "type": "PolyCurve", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [-649.12, -649.12, 41655.5, 649.12, 649.12, 41805.5], "user": {"anchor_hosts": "P1-CP", "coupler_length": "0.000", "design_length": "2136.000", "dia": "H16", "host": "P1-CL", "id": "P1-RC-P6-L9-135", "mark": "P6", "occurrence": "L9-135", "shape": "III", "src": "EL 41.788 (+17.5 on hoop); angle 135 deg"}, "length": 2115.398}, "P1-R-P6-L9-090": {"layer": "P1::철근::기둥::P6", "type": "Brep", "hidden": false, "locked": false, "colour_source": 1, "colour": [31, 119, 180], "bbox": [-8.0, -926.0, 41655.5, 8.0, 926.0, 41813.5], "user": {"anchor_hosts": "P1-CP", "coupler_length": "0.000", "design_length": "2136.000", "dia": "H16", "host": "P1-CL", "id": "P1-R-P6-L9-090", "mark": "P6", "occurrence": "L9-090", "shape": "III", "src": "EL 41.788 (+17.5 on hoop); angle 90 deg"}, "faces": 7, "solid": true, "volume": "skipped"}, "P1-RC-P6-L9-090": {"layer": "P1::철근::중심선", "type": "PolyCurve", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [-0.0, -918.0, 41655.5, 0.0, 918.0, 41805.5], "user": {"anchor_hosts": "P1-CP", "coupler_length": "0.000", "design_length": "2136.000", "dia": "H16", "host": "P1-CL", "id": "P1-RC-P6-L9-090", "mark": "P6", "occurrence": "L9-090", "shape": "III", "src": "EL 41.788 (+17.5 on hoop); angle 90 deg"}, "length": 2115.398}, "P1-R-P6-L9-045": {"layer": "P1::철근::기둥::P6", "type": "Brep", "hidden": false, "locked": false, "colour_source": 1, "colour": [31, 119, 180], "bbox": [-657.12, -657.12, 41655.5, 657.12, 657.12, 41813.5], "user": {"anchor_hosts": "P1-CP", "coupler_length": "0.000", "design_length": "2136.000", "dia": "H16", "host": "P1-CL", "id": "P1-R-P6-L9-045", "mark": "P6", "occurrence": "L9-045", "shape": "III", "src": "EL 41.788 (+17.5 on hoop); angle 45 deg"}, "faces": 7, "solid": true, "volume": "skipped"}, "P1-RC-P6-L9-045": {"layer": "P1::철근::중심선", "type": "PolyCurve", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [-649.12, -649.12, 41655.5, 649.12, 649.12, 41805.5], "user": {"anchor_hosts": "P1-CP", "coupler_length": "0.000", "design_length": "2136.000", "dia": "H16", "host": "P1-CL", "id": "P1-RC-P6-L9-045", "mark": "P6", "occurrence": "L9-045", "shape": "III", "src": "EL 41.788 (+17.5 on hoop); angle 45 deg"}, "length": 2115.398}, "P1-R-P6-L9-000": {"layer": "P1::철근::기둥::P6", "type": "Brep", "hidden": false, "locked": false, "colour_source": 1, "colour": [31, 119, 180], "bbox": [-926.0, -8.0, 41655.5, 926.0, 8.0, 41813.5], "user": {"anchor_hosts": "P1-CP", "coupler_length": "0.000", "design_length": "2136.000", "dia": "H16", "host": "P1-CL", "id": "P1-R-P6-L9-000", "mark": "P6", "occurrence": "L9-000", "shape": "III", "src": "EL 41.788 (+17.5 on hoop); angle 0 deg"}, "faces": 7, "solid": true, "volume": "skipped"}, "P1-RC-P6-L9-000": {"layer": "P1::철근::중심선", "type": "PolyCurve", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [-918.0, 0.0, 41655.5, 918.0, 0.0, 41805.5], "user": {"anchor_hosts": "P1-CP", "coupler_length": "0.000", "design_length": "2136.000", "dia": "H16", "host": "P1-CL", "id": "P1-RC-P6-L9-000", "mark": "P6", "occurrence": "L9-000", "shape": "III", "src": "EL 41.788 (+17.5 on hoop); angle 0 deg"}, "length": 2115.398}, "P1-R-P6-L8-135": {"layer": "P1::철근::기둥::P6", "type": "Brep", "hidden": false, "locked": false, "colour_source": 1, "colour": [31, 119, 180], "bbox": [-657.12, -657.12, 39855.5, 657.12, 657.12, 40013.5], "user": {"coupler_lLine truncated
@@ -0,0 +1,87 @@
{
"gate": "G2",
"checker": "g2_column_rebar.py",
"verdict": "PASS",
"summary": {
"total": 42,
"passed": 42,
"failed": 0,
"min_cover": {
"P1": 113.5,
"P2": 158.5,
"P3": 93.5,
"P4": 109.7,
"P5": 93.5,
"P6": 74.0
}
},
"unplanned_fails": [],
"planned_fails": [],
"negative": {
"negH": {
"move": {
"mark": "P2",
"d": [
5,
0,
0
]
},
"new_fails": [
"P2 radius (worst)"
],
"detected": true
},
"negV": {
"move": {
"mark": "P3",
"d": [
0,
0,
5
]
},
"new_fails": [
"hoop level count 67",
"hoop levels vs dim chain (worst)",
"hoop marks by zone (P4 x9, P5 x22, P3 x36)"
],
"detected": true
}
},
"reload": {
"built": 534,
"reopened": 534,
"fingerprint": 534,
"ok": true
},
"unchanged": {
"compared": 54,
"diffs": [],
"missing": [],
"ok": true,
"against": "G1_fp.json"
},
"model": "C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\운곡교P1\\runs\\current\\G2.3dm",
"secs": 69.0,
"build_steps": [
{
"name": "G1:concrete.py",
"secs": 0.25
},
{
"name": "G2:column_rebar.py",
"secs": 0.86
},
{
"name": "G2:rebar_colours.py",
"secs": 0.05
},
{
"name": "display.py",
"secs": 0.03
}
],
"inputs_sha": "a07fc78446227a14",
"job_id": "efab39f78d82"
}
@@ -0,0 +1,12 @@
{
"id": "efab39f78d82",
"pid": 14676,
"state": "완료",
"at": "2026-10-12 14:24:34",
"log": [
"Rhino 작업 시작",
"[G2] build G1..G2",
"[G2] re-open, check, negative tests, fingerprint",
"[G2] PASS checks 42/42 (planned FAIL 0, unplanned 0) negative H/V True/True reload True unchanged True (54) 69.0s"
]
}
@@ -0,0 +1,425 @@
{
"summary": {
"total": 42,
"passed": 41,
"failed": 1,
"min_cover": {
"P1": 113.5,
"P2": 153.5,
"P3": 93.5,
"P4": 109.7,
"P5": 93.5,
"P6": 74.0
}
},
"results": [
{
"check": "C8",
"item": "P1 bar count",
"expected": 46,
"actual": 46,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 pipes closed & paired with centrelines",
"detail": "pipes 46 / centrelines 46",
"result": "PASS"
},
{
"check": "C8",
"item": "P2 bar count",
"expected": 46,
"actual": 46,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 pipes closed & paired with centrelines",
"detail": "pipes 46 / centrelines 46",
"result": "PASS"
},
{
"check": "C8",
"item": "P3 bar count",
"expected": 36,
"actual": 36,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 pipes closed & paired with centrelines",
"detail": "pipes 72 / centrelines 72",
"result": "PASS"
},
{
"check": "C8",
"item": "P4 bar count",
"expected": 9,
"actual": 9,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 pipes closed & paired with centrelines",
"detail": "pipes 18 / centrelines 18",
"result": "PASS"
},
{
"check": "C8",
"item": "P5 bar count",
"expected": 22,
"actual": 22,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 pipes closed & paired with centrelines",
"detail": "pipes 22 / centrelines 22",
"result": "PASS"
},
{
"check": "C8",
"item": "P6 bar count",
"expected": 36,
"actual": 36,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 pipes closed & paired with centrelines",
"detail": "pipes 36 / centrelines 36",
"result": "PASS"
},
{
"check": "C8",
"item": "P1 original length (+coupler b) vs schedule L (worst of 46)",
"expected": 0,
"actual": 0.071,
"diff": 0.071,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 curve length - L (record, fillets shorten hooks)",
"detail": "min 0.1 / max 0.1 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P1 curve length (+coupler b) vs L (no fillet)",
"expected": 0,
"actual": 0.071,
"diff": 0.071,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 original length (+coupler b) vs schedule L (worst of 46)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 curve length - L (record, fillets shorten hooks)",
"detail": "min 0.0 / max 0.0 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P2 curve length (+coupler b) vs L (no fillet)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 original length (+coupler b) vs schedule L (worst of 36)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 curve length - L (record, fillets shorten hooks)",
"detail": "min -493.1 / max -493.1 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P4 original length (+coupler b) vs schedule L (worst of 9)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 curve length - L (record, fillets shorten hooks)",
"detail": "min 0.0 / max 0.0 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P4 curve length (+coupler b) vs L (no fillet)",
"expected": 0,
"actual": 0.017,
"diff": 0.017,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 original length (+coupler b) vs schedule L (worst of 22)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 curve length - L (record, fillets shorten hooks)",
"detail": "min 0.0 / max 0.0 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P5 curve length (+coupler b) vs L (no fillet)",
"expected": 0,
"actual": 0.017,
"diff": 0.017,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 original length (+coupler b) vs schedule L (worst of 36)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 curve length - L (record, fillets shorten hooks)",
"detail": "min -20.6 / max -20.6 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P1 top EL",
"expected": 43061,
"actual": 43061.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 radius (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 angle vs i*360/46 (worst, deg)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 top EL",
"expected": 43061,
"actual": 43061.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 radius (worst)",
"expected": 0,
"actual": 5.0,
"diff": 5.0,
"tol": 0.5,
"result": "FAIL"
},
{
"check": "C8",
"item": "P2 angle vs i*360/46 (worst, deg)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 hook leg EL (footing bottom + 300)",
"expected": 26508,
"actual": 26508.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 bottom EL",
"expected": 26508,
"actual": 26508.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 radius",
"expected": 897,
"actual": 897.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 radius",
"expected": 897,
"actual": 897.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "hoop level count 67",
"detail": "67",
"result": "PASS"
},
{
"check": "C8",
"item": "hoop levels vs dim chain (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "hoop marks by zone (P4 x9, P5 x22, P3 x36)",
"detail": "",
"result": "PASS"
},
{
"check": "C8",
"item": "tie levels vs chain + 17.5 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "concrete union for cover",
"detail": "1 brep",
"result": "INFO"
},
{
"check": "C8",
"item": "P1 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "min cover to concrete surface per mark (record)",
"detail": "{\"P1\": 113.5, \"P2\": 153.5, \"P3\": 93.5, \"P4\": 109.7, \"P5\": 93.5, \"P6\": 74.0}",
"result": "INFO"
},
{
"check": "C8",
"item": "clearance P1 outer surface vs hoop inner surface (record)",
"detail": "1.0 mm",
"result": "INFO"
}
]
}
@@ -0,0 +1,425 @@
{
"summary": {
"total": 42,
"passed": 39,
"failed": 3,
"min_cover": {
"P1": 113.5,
"P2": 158.5,
"P3": 93.5,
"P4": 109.7,
"P5": 93.5,
"P6": 74.0
}
},
"results": [
{
"check": "C8",
"item": "P1 bar count",
"expected": 46,
"actual": 46,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 pipes closed & paired with centrelines",
"detail": "pipes 46 / centrelines 46",
"result": "PASS"
},
{
"check": "C8",
"item": "P2 bar count",
"expected": 46,
"actual": 46,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 pipes closed & paired with centrelines",
"detail": "pipes 46 / centrelines 46",
"result": "PASS"
},
{
"check": "C8",
"item": "P3 bar count",
"expected": 36,
"actual": 36,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 pipes closed & paired with centrelines",
"detail": "pipes 72 / centrelines 72",
"result": "PASS"
},
{
"check": "C8",
"item": "P4 bar count",
"expected": 9,
"actual": 9,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 pipes closed & paired with centrelines",
"detail": "pipes 18 / centrelines 18",
"result": "PASS"
},
{
"check": "C8",
"item": "P5 bar count",
"expected": 22,
"actual": 22,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 pipes closed & paired with centrelines",
"detail": "pipes 22 / centrelines 22",
"result": "PASS"
},
{
"check": "C8",
"item": "P6 bar count",
"expected": 36,
"actual": 36,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 pipes closed & paired with centrelines",
"detail": "pipes 36 / centrelines 36",
"result": "PASS"
},
{
"check": "C8",
"item": "P1 original length (+coupler b) vs schedule L (worst of 46)",
"expected": 0,
"actual": 0.071,
"diff": 0.071,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 curve length - L (record, fillets shorten hooks)",
"detail": "min 0.1 / max 0.1 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P1 curve length (+coupler b) vs L (no fillet)",
"expected": 0,
"actual": 0.071,
"diff": 0.071,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 original length (+coupler b) vs schedule L (worst of 46)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 curve length - L (record, fillets shorten hooks)",
"detail": "min 0.0 / max 0.0 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P2 curve length (+coupler b) vs L (no fillet)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 original length (+coupler b) vs schedule L (worst of 36)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 curve length - L (record, fillets shorten hooks)",
"detail": "min -493.1 / max -493.1 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P4 original length (+coupler b) vs schedule L (worst of 9)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 curve length - L (record, fillets shorten hooks)",
"detail": "min 0.0 / max 0.0 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P4 curve length (+coupler b) vs L (no fillet)",
"expected": 0,
"actual": 0.017,
"diff": 0.017,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 original length (+coupler b) vs schedule L (worst of 22)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 curve length - L (record, fillets shorten hooks)",
"detail": "min 0.0 / max 0.0 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P5 curve length (+coupler b) vs L (no fillet)",
"expected": 0,
"actual": 0.017,
"diff": 0.017,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 original length (+coupler b) vs schedule L (worst of 36)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 curve length - L (record, fillets shorten hooks)",
"detail": "min -20.6 / max -20.6 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P1 top EL",
"expected": 43061,
"actual": 43061.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 radius (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 angle vs i*360/46 (worst, deg)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 top EL",
"expected": 43061,
"actual": 43061.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 radius (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 angle vs i*360/46 (worst, deg)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 hook leg EL (footing bottom + 300)",
"expected": 26508,
"actual": 26508.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 bottom EL",
"expected": 26508,
"actual": 26508.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 radius",
"expected": 897,
"actual": 897.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 radius",
"expected": 897,
"actual": 897.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "hoop level count 67",
"detail": "68",
"result": "FAIL"
},
{
"check": "C8",
"item": "hoop levels vs dim chain (worst)",
"expected": 0,
"actual": 300.0,
"diff": 300.0,
"tol": 1.0,
"result": "FAIL"
},
{
"check": "C8",
"item": "hoop marks by zone (P4 x9, P5 x22, P3 x36)",
"detail": "",
"result": "FAIL"
},
{
"check": "C8",
"item": "tie levels vs chain + 17.5 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "concrete union for cover",
"detail": "1 brep",
"result": "INFO"
},
{
"check": "C8",
"item": "P1 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "min cover to concrete surface per mark (record)",
"detail": "{\"P1\": 113.5, \"P2\": 158.5, \"P3\": 93.5, \"P4\": 109.7, \"P5\": 93.5, \"P6\": 74.0}",
"result": "INFO"
},
{
"check": "C8",
"item": "clearance P1 outer surface vs hoop inner surface (record)",
"detail": "1.0 mm",
"result": "INFO"
}
]
}
@@ -0,0 +1,707 @@
{
"summary": {
"total": 73,
"passed": 72,
"failed": 1,
"cover": {
"B1": 87.5,
"B2": 87.5,
"B3": 90.5,
"B4": 87.5,
"B5": 58.5,
"B6": 57.5,
"B7": 90.5,
"B8": 85.5,
"B9": 69.5,
"B10": 66.5,
"B11": 92.0,
"B12": 92.0
}
},
"results": [
{
"check": "C9",
"item": "B1 bar count vs schedule",
"expected": 38,
"actual": 38,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B1 pipes closed & paired",
"detail": "38/38",
"result": "PASS"
},
{
"check": "C9",
"item": "B1 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B1 curve length - L (bend fillets)",
"detail": "min -48.3 / max -48.3",
"result": "INFO"
},
{
"check": "C9",
"item": "B2 bar count vs schedule",
"expected": 38,
"actual": 38,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 pipes closed & paired",
"detail": "38/38",
"result": "PASS"
},
{
"check": "C9",
"item": "B2 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 curve length - L (bend fillets)",
"detail": "min -48.3 / max -48.3",
"result": "INFO"
},
{
"check": "C9",
"item": "B3 bar count vs schedule",
"expected": 38,
"actual": 38,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 pipes closed & paired",
"detail": "38/38",
"result": "PASS"
},
{
"check": "C9",
"item": "B3 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 curve length - L (bend fillets)",
"detail": "min -36.7 / max -36.7",
"result": "INFO"
},
{
"check": "C9",
"item": "B4 bar count vs schedule",
"expected": 35,
"actual": 35,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B4 pipes closed & paired",
"detail": "35/35",
"result": "PASS"
},
{
"check": "C9",
"item": "B4 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B4 curve length - L (bend fillets)",
"detail": "min 0.0 / max 0.0",
"result": "INFO"
},
{
"check": "C9",
"item": "B5 bar count vs schedule",
"expected": 32,
"actual": 32,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 pipes closed & paired",
"detail": "32/32",
"result": "PASS"
},
{
"check": "C9",
"item": "B5 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 curve length - L (bend fillets)",
"detail": "min -56.0 / max -56.0",
"result": "INFO"
},
{
"check": "C9",
"item": "B6 bar count vs schedule",
"expected": 32,
"actual": 32,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B6 pipes closed & paired",
"detail": "32/32",
"result": "PASS"
},
{
"check": "C9",
"item": "B6 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B6 curve length - L (bend fillets)",
"detail": "min -56.0 / max -56.0",
"result": "INFO"
},
{
"check": "C9",
"item": "B7 bar count vs schedule",
"expected": 32,
"actual": 32,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 pipes closed & paired",
"detail": "32/32",
"result": "PASS"
},
{
"check": "C9",
"item": "B7 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 curve length - L (bend fillets)",
"detail": "min -36.7 / max -36.7",
"result": "INFO"
},
{
"check": "C9",
"item": "B8 bar count vs schedule",
"expected": 29,
"actual": 29,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B8 pipes closed & paired",
"detail": "29/29",
"result": "PASS"
},
{
"check": "C9",
"item": "B8 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B8 curve length - L (bend fillets)",
"detail": "min 0.0 / max 0.0",
"result": "INFO"
},
{
"check": "C9",
"item": "B9 bar count vs schedule",
"expected": 493,
"actual": 493,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 pipes closed & paired",
"detail": "493/493",
"result": "PASS"
},
{
"check": "C9",
"item": "B9 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 curve length - L (bend fillets)",
"detail": "min -10.3 / max -10.3",
"result": "INFO"
},
{
"check": "C9",
"item": "B10 bar count vs schedule",
"expected": 9,
"actual": 9,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 pipes closed & paired",
"detail": "9/9",
"result": "PASS"
},
{
"check": "C9",
"item": "B10 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 curve length - L (bend fillets)",
"detail": "min -73.4 / max -73.4",
"result": "INFO"
},
{
"check": "C9",
"item": "B11 bar count vs schedule",
"expected": 28,
"actual": 28,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B11 pipes closed & paired",
"detail": "28/28",
"result": "PASS"
},
{
"check": "C9",
"item": "B11 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B11 curve length - L (bend fillets)",
"detail": "min -20.6 / max -20.6",
"result": "INFO"
},
{
"check": "C9",
"item": "B12 bar count vs schedule",
"expected": 34,
"actual": 28,
"diff": -6,
"tol": 0,
"result": "FAIL"
},
{
"check": "C9",
"item": "B12 pipes closed & paired",
"detail": "28/28",
"result": "PASS"
},
{
"check": "C9",
"item": "B12 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B12 curve length - L (bend fillets)",
"detail": "min -20.6 / max -20.6",
"result": "INFO"
},
{
"check": "C9",
"item": "B1 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B4 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B6 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B8 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "bottom Y-bars B2+B4 positions vs chain (worst, n=73/73)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "bottom X-bars B6+B8 positions vs chain (worst, n=61/61)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 positions vs chain (worst, n=38/38)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B1 positions vs chain (worst, n=38/38)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 positions vs chain (worst, n=32/32)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 positions vs chain (worst, n=32/32)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 at ends and alternate from -4375",
"detail": "",
"result": "PASS"
},
{
"check": "C9",
"item": "B6 at ends and alternate from -3625",
"detail": "",
"result": "PASS"
},
{
"check": "C9",
"item": "B11 mid levels 550/950/1350/1750 [derived]",
"detail": "[550, 950, 1350, 1750]",
"result": "PASS"
},
{
"check": "C9",
"item": "B12 mid levels 550/950/1350/1750 [derived]",
"detail": "[550, 950, 1350, 1750]",
"result": "PASS"
},
{
"check": "C9",
"item": "B10 levels vs chain (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 centreline size X",
"expected": 9198,
"actual": 9198.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 centreline size Y",
"expected": 7644,
"actual": 7644.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 positions = checkerboard of 34x29 grid",
"detail": "493 / 493",
"result": "PASS"
},
{
"check": "C9",
"item": "B9 bottom z (worst of all)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 vertical extent a (bottom leg z to top of straight)",
"expected": 1995,
"actual": 1995.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B1 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B4 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B6 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B8 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B11 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B12 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "min cover to concrete exterior per mark",
"detail": "{\"B1\": 87.5, \"B2\": 87.5, \"B3\": 90.5, \"B4\": 87.5, \"B5\": 58.5, \"B6\": 57.5, \"B7\": 90.5, \"B8\": 85.5, \"B9\": 69.5, \"B10\": 66.5, \"B11\": 92.0, \"B12\": 92.0}",
"result": "INFO"
},
{
"check": "C9",
"item": "rebar pipe colour by diameter mismatches (all rebar)",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
}
]
}
@@ -0,0 +1 @@
{"model": "C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\운곡교P1\\runs\\current\\G3.3dm", "units": "Millimeters", "tolerance": 0.001, "count": 2198, "layers": {"P1::철근::기초::B9": [150, 110, 60, true], "P1::철근::중심선": [60, 60, 60, true], "P1::철근::기초::B10": [150, 110, 60, true], "P1::철근::기초::B12": [150, 110, 60, true], "P1::철근::기초::B11": [150, 110, 60, true], "P1::철근::기초::B5": [150, 110, 60, true], "P1::철근::기초::B1": [150, 110, 60, true], "P1::철근::기초::B7": [150, 110, 60, true], "P1::철근::기초::B3": [150, 110, 60, true], "P1::철근::기초::B6": [150, 110, 60, true], "P1::철근::기초::B8": [150, 110, 60, true], "P1::철근::기초::B2": [150, 110, 60, true], "P1::철근::기초::B4": [150, 110, 60, true], "P1::철근::기둥::P6": [140, 60, 160, true], "P1::철근::기둥::P3": [40, 120, 200, true], "P1::철근::기둥::P5": [90, 90, 220, true], "P1::철근::기둥::P4": [40, 170, 170, true], "P1::철근::기둥::P2": [230, 120, 40, true], "P1::철근::기둥::P1": [200, 40, 40, true], "P1::받침패드": [90, 160, 90, true], "P1::받침대좌": [190, 90, 90, true], "P1::말뚝": [110, 110, 110, true], "P1::코핑": [210, 180, 80, true], "P1::기둥": [200, 140, 90, true], "P1::기초": [120, 150, 200, true], "P1::버림콘크리트": [160, 160, 160, true]}, "objects": {"P1-R-B9-x+4125y+3250": {"layer": "P1::철근::기초::B9", "type": "Brep", "hidden": false, "locked": false, "colour_source": 1, "colour": [31, 119, 180], "bbox": [4117.0, 3242.0, 26327.5, 4221.0, 3258.0, 28358.87], "user": {"coupler_length": "0.000", "design_length": "2155.000", "dia": "H16", "host": "P1-FT", "id": "P1-R-B9-x+4125y+3250", "mark": "B9", "occurrence": "x+4125y+3250", "shape": "XI", "src": "D1 EREC grid @250 checker (i+j even) [추론]; count 493 [역산]"}, "faces": 6, "solid": true, "volume": "skipped"}, "P1-RC-B9-x+4125y+3250": {"layer": "P1::철근::중심선", "type": "PolyCurve", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [4125.0, 3250.0, 26335.5, 4221.0, 3250.0, 28350.87], "user": {"coupler_length": "0.000", "design_length": "2155.000", "dia": "H16", "host": "P1-FT", "id": "P1-RC-B9-x+4125y+3250", "mark": "B9", "occurrence": "x+4125y+3250", "shape": "XI", "src": "D1 EREC grid @250 checker (i+j even) [추론]; count 493 [역산]"}, "length": 2144.699}, "P1-R-B9-x+4125y+2750": {"layer": "P1::철근::기초::B9", "type": "Brep", "hidden": false, "locked": false, "colour_source": 1, "colour": [31, 119, 180], "bbox": [4117.0, 2742.0, 26327.5, 4221.0, 2758.0, 28358.87], "user": {"coupler_length": "0.000", "design_length": "2155.000", "dia": "H16", "host": "P1-FT", "id": "P1-R-B9-x+4125y+2750", "mark": "B9", "occurrence": "x+4125y+2750", "shape": "XI", "src": "D1 EREC grid @250 checker (i+j even) [추론]; count 493 [역산]"}, "faces": 6, "solid": true, "volume": "skipped"}, "P1-RC-B9-x+4125y+2750": {"layer": "P1::철근::중심선", "type": "PolyCurve", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [4125.0, 2750.0, 26335.5, 4221.0, 2750.0, 28350.87], "user": {"coupler_length": "0.000", "design_length": "2155.000", "dia": "H16", "host": "P1-FT", "id": "P1-RC-B9-x+4125y+2750", "mark": "B9", "occurrence": "x+4125y+2750", "shape": "XI", "src": "D1 EREC grid @250 checker (i+j even) [추론]; count 493 [역산]"}, "length": 2144.699}, "P1-R-B9-x+4125y+2250": {"layer": "P1::철근::기초::B9", "type": "Brep", "hidden": false, "locked": false, "colour_source": 1, "colour": [31, 119, 180], "bbox": [4117.0, 2242.0, 26327.5, 4221.0, 2258.0, 28358.87], "user": {"coupler_length": "0.000", "design_length": "2155.000", "dia": "H16", "host": "P1-FT", "id": "P1-R-B9-x+4125y+2250", "mark": "B9", "occurrence": "x+4125y+2250", "shape": "XI", "src": "D1 EREC grid @250 checker (i+j even) [추론]; count 493 [역산]"}, "faces": 6, "solid": true, "volume": "skipped"}, "P1-RC-B9-x+4125y+2250": {"layer": "P1::철근::중심선", "type": "PolyCurve", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [4125.0, 2250.0, 26335.5, 4221.0, 2250.0, 28350.87], "user": {"coupler_length": "0.000", "design_length": "2155.000", "dia": "H16", "host": "P1-FT", "id": "P1-RC-B9-x+4125y+2250", "mark": "B9", "occurrence": "x+4125y+2250", "shape": "XI", "src": "D1 EREC grid @250 checker (i+j even) [추론]; count 493 [역산]"}, "length": 2144.699}, "P1-R-B9-x+4125y+1750": {"layer": "P1::철근::기초::B9", "type": "Brep", "hidden": false, "locked": false, "colour_source": 1, "colour": [31, 119, 180], "bbox": [4117.0, 1742.0, 26327.5, 4221.0, 1758.0, 28358.87], "user": {"coupler_length": "0.000", "design_length": "2155.000", "dia": "H16", "host": "P1-FT", "id": "P1-R-B9-x+4125y+1750", "mark": "B9", "occurrence": "x+4125y+1750", "shape": "XI", "src": "D1 EREC grid @250 checker (i+j even) [추론]; count 493 [역산]"}, "faces": 6, "solid": true, "voluLine truncated
@@ -0,0 +1,100 @@
{
"gate": "G3",
"checker": "g3_footing_rebar.py",
"verdict": "PASS",
"summary": {
"total": 73,
"passed": 72,
"failed": 1,
"cover": {
"B1": 87.5,
"B2": 87.5,
"B3": 90.5,
"B4": 87.5,
"B5": 58.5,
"B6": 57.5,
"B7": 90.5,
"B8": 85.5,
"B9": 69.5,
"B10": 66.5,
"B11": 92.0,
"B12": 92.0
}
},
"unplanned_fails": [],
"planned_fails": [
{
"item": "B12 bar count vs schedule",
"reason": "작도 28본 채택(F2) vs D3 34본 — OPEN #9"
}
],
"negative": {
"negH": {
"move": {
"mark": "B4",
"d": [
5,
0,
0
]
},
"new_fails": [
"bottom Y-bars B2+B4 positions vs chain (worst, n=73/73)"
],
"detected": true
},
"negV": {
"move": {
"mark": "B9",
"d": [
0,
0,
5
]
},
"new_fails": [
"B9 bottom z (worst of all)"
],
"detected": true
}
},
"reload": {
"built": 2198,
"reopened": 2198,
"fingerprint": 2198,
"ok": true
},
"unchanged": {
"compared": 534,
"diffs": [],
"missing": [],
"ok": true,
"against": "G2_fp.json"
},
"model": "C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\운곡교P1\\runs\\current\\G3.3dm",
"secs": 64.2,
"build_steps": [
{
"name": "G1:concrete.py",
"secs": 0.23
},
{
"name": "G2:column_rebar.py",
"secs": 0.88
},
{
"name": "G3:footing_rebar.py",
"secs": 2.56
},
{
"name": "G3:rebar_colours.py",
"secs": 0.22
},
{
"name": "display.py",
"secs": 0.07
}
],
"inputs_sha": "a07fc78446227a14",
"job_id": "d9c3efa0ae83"
}
@@ -0,0 +1,12 @@
{
"id": "d9c3efa0ae83",
"pid": 14676,
"state": "완료",
"at": "2026-10-12 14:25:40",
"log": [
"Rhino 작업 시작",
"[G3] build G1..G3",
"[G3] re-open, check, negative tests, fingerprint",
"[G3] PASS checks 72/73 (planned FAIL 1, unplanned 0) negative H/V True/True reload True unchanged True (534) 64.2s"
]
}
@@ -0,0 +1,707 @@
{
"summary": {
"total": 73,
"passed": 71,
"failed": 2,
"cover": {
"B1": 87.5,
"B2": 87.5,
"B3": 90.5,
"B4": 87.5,
"B5": 58.5,
"B6": 57.5,
"B7": 90.5,
"B8": 85.5,
"B9": 69.5,
"B10": 66.5,
"B11": 92.0,
"B12": 92.0
}
},
"results": [
{
"check": "C9",
"item": "B1 bar count vs schedule",
"expected": 38,
"actual": 38,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B1 pipes closed & paired",
"detail": "38/38",
"result": "PASS"
},
{
"check": "C9",
"item": "B1 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B1 curve length - L (bend fillets)",
"detail": "min -48.3 / max -48.3",
"result": "INFO"
},
{
"check": "C9",
"item": "B2 bar count vs schedule",
"expected": 38,
"actual": 38,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 pipes closed & paired",
"detail": "38/38",
"result": "PASS"
},
{
"check": "C9",
"item": "B2 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 curve length - L (bend fillets)",
"detail": "min -48.3 / max -48.3",
"result": "INFO"
},
{
"check": "C9",
"item": "B3 bar count vs schedule",
"expected": 38,
"actual": 38,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 pipes closed & paired",
"detail": "38/38",
"result": "PASS"
},
{
"check": "C9",
"item": "B3 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 curve length - L (bend fillets)",
"detail": "min -36.7 / max -36.7",
"result": "INFO"
},
{
"check": "C9",
"item": "B4 bar count vs schedule",
"expected": 35,
"actual": 35,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B4 pipes closed & paired",
"detail": "35/35",
"result": "PASS"
},
{
"check": "C9",
"item": "B4 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B4 curve length - L (bend fillets)",
"detail": "min 0.0 / max 0.0",
"result": "INFO"
},
{
"check": "C9",
"item": "B5 bar count vs schedule",
"expected": 32,
"actual": 32,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 pipes closed & paired",
"detail": "32/32",
"result": "PASS"
},
{
"check": "C9",
"item": "B5 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 curve length - L (bend fillets)",
"detail": "min -56.0 / max -56.0",
"result": "INFO"
},
{
"check": "C9",
"item": "B6 bar count vs schedule",
"expected": 32,
"actual": 32,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B6 pipes closed & paired",
"detail": "32/32",
"result": "PASS"
},
{
"check": "C9",
"item": "B6 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B6 curve length - L (bend fillets)",
"detail": "min -56.0 / max -56.0",
"result": "INFO"
},
{
"check": "C9",
"item": "B7 bar count vs schedule",
"expected": 32,
"actual": 32,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 pipes closed & paired",
"detail": "32/32",
"result": "PASS"
},
{
"check": "C9",
"item": "B7 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 curve length - L (bend fillets)",
"detail": "min -36.7 / max -36.7",
"result": "INFO"
},
{
"check": "C9",
"item": "B8 bar count vs schedule",
"expected": 29,
"actual": 29,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B8 pipes closed & paired",
"detail": "29/29",
"result": "PASS"
},
{
"check": "C9",
"item": "B8 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B8 curve length - L (bend fillets)",
"detail": "min 0.0 / max 0.0",
"result": "INFO"
},
{
"check": "C9",
"item": "B9 bar count vs schedule",
"expected": 493,
"actual": 493,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 pipes closed & paired",
"detail": "493/493",
"result": "PASS"
},
{
"check": "C9",
"item": "B9 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 curve length - L (bend fillets)",
"detail": "min -10.3 / max -10.3",
"result": "INFO"
},
{
"check": "C9",
"item": "B10 bar count vs schedule",
"expected": 9,
"actual": 9,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 pipes closed & paired",
"detail": "9/9",
"result": "PASS"
},
{
"check": "C9",
"item": "B10 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 curve length - L (bend fillets)",
"detail": "min -73.4 / max -73.4",
"result": "INFO"
},
{
"check": "C9",
"item": "B11 bar count vs schedule",
"expected": 28,
"actual": 28,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B11 pipes closed & paired",
"detail": "28/28",
"result": "PASS"
},
{
"check": "C9",
"item": "B11 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B11 curve length - L (bend fillets)",
"detail": "min -20.6 / max -20.6",
"result": "INFO"
},
{
"check": "C9",
"item": "B12 bar count vs schedule",
"expected": 34,
"actual": 28,
"diff": -6,
"tol": 0,
"result": "FAIL"
},
{
"check": "C9",
"item": "B12 pipes closed & paired",
"detail": "28/28",
"result": "PASS"
},
{
"check": "C9",
"item": "B12 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B12 curve length - L (bend fillets)",
"detail": "min -20.6 / max -20.6",
"result": "INFO"
},
{
"check": "C9",
"item": "B1 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B4 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B6 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B8 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "bottom Y-bars B2+B4 positions vs chain (worst, n=73/73)",
"expected": 0,
"actual": 5.0,
"diff": 5.0,
"tol": 1.0,
"result": "FAIL"
},
{
"check": "C9",
"item": "bottom X-bars B6+B8 positions vs chain (worst, n=61/61)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 positions vs chain (worst, n=38/38)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B1 positions vs chain (worst, n=38/38)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 positions vs chain (worst, n=32/32)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 positions vs chain (worst, n=32/32)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 at ends and alternate from -4375",
"detail": "",
"result": "PASS"
},
{
"check": "C9",
"item": "B6 at ends and alternate from -3625",
"detail": "",
"result": "PASS"
},
{
"check": "C9",
"item": "B11 mid levels 550/950/1350/1750 [derived]",
"detail": "[550, 950, 1350, 1750]",
"result": "PASS"
},
{
"check": "C9",
"item": "B12 mid levels 550/950/1350/1750 [derived]",
"detail": "[550, 950, 1350, 1750]",
"result": "PASS"
},
{
"check": "C9",
"item": "B10 levels vs chain (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 centreline size X",
"expected": 9198,
"actual": 9198.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 centreline size Y",
"expected": 7644,
"actual": 7644.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 positions = checkerboard of 34x29 grid",
"detail": "493 / 493",
"result": "PASS"
},
{
"check": "C9",
"item": "B9 bottom z (worst of all)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 vertical extent a (bottom leg z to top of straight)",
"expected": 1995,
"actual": 1995.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B1 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B4 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B6 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B8 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B11 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B12 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "min cover to concrete exterior per mark",
"detail": "{\"B1\": 87.5, \"B2\": 87.5, \"B3\": 90.5, \"B4\": 87.5, \"B5\": 58.5, \"B6\": 57.5, \"B7\": 90.5, \"B8\": 85.5, \"B9\": 69.5, \"B10\": 66.5, \"B11\": 92.0, \"B12\": 92.0}",
"result": "INFO"
},
{
"check": "C9",
"item": "rebar pipe colour by diameter mismatches (all rebar)",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
}
]
}
@@ -0,0 +1,707 @@
{
"summary": {
"total": 73,
"passed": 71,
"failed": 2,
"cover": {
"B1": 87.5,
"B2": 87.5,
"B3": 90.5,
"B4": 87.5,
"B5": 58.5,
"B6": 57.5,
"B7": 90.5,
"B8": 85.5,
"B9": 64.5,
"B10": 66.5,
"B11": 92.0,
"B12": 92.0
}
},
"results": [
{
"check": "C9",
"item": "B1 bar count vs schedule",
"expected": 38,
"actual": 38,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B1 pipes closed & paired",
"detail": "38/38",
"result": "PASS"
},
{
"check": "C9",
"item": "B1 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B1 curve length - L (bend fillets)",
"detail": "min -48.3 / max -48.3",
"result": "INFO"
},
{
"check": "C9",
"item": "B2 bar count vs schedule",
"expected": 38,
"actual": 38,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 pipes closed & paired",
"detail": "38/38",
"result": "PASS"
},
{
"check": "C9",
"item": "B2 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 curve length - L (bend fillets)",
"detail": "min -48.3 / max -48.3",
"result": "INFO"
},
{
"check": "C9",
"item": "B3 bar count vs schedule",
"expected": 38,
"actual": 38,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 pipes closed & paired",
"detail": "38/38",
"result": "PASS"
},
{
"check": "C9",
"item": "B3 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 curve length - L (bend fillets)",
"detail": "min -36.7 / max -36.7",
"result": "INFO"
},
{
"check": "C9",
"item": "B4 bar count vs schedule",
"expected": 35,
"actual": 35,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B4 pipes closed & paired",
"detail": "35/35",
"result": "PASS"
},
{
"check": "C9",
"item": "B4 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B4 curve length - L (bend fillets)",
"detail": "min 0.0 / max 0.0",
"result": "INFO"
},
{
"check": "C9",
"item": "B5 bar count vs schedule",
"expected": 32,
"actual": 32,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 pipes closed & paired",
"detail": "32/32",
"result": "PASS"
},
{
"check": "C9",
"item": "B5 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 curve length - L (bend fillets)",
"detail": "min -56.0 / max -56.0",
"result": "INFO"
},
{
"check": "C9",
"item": "B6 bar count vs schedule",
"expected": 32,
"actual": 32,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B6 pipes closed & paired",
"detail": "32/32",
"result": "PASS"
},
{
"check": "C9",
"item": "B6 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B6 curve length - L (bend fillets)",
"detail": "min -56.0 / max -56.0",
"result": "INFO"
},
{
"check": "C9",
"item": "B7 bar count vs schedule",
"expected": 32,
"actual": 32,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 pipes closed & paired",
"detail": "32/32",
"result": "PASS"
},
{
"check": "C9",
"item": "B7 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 curve length - L (bend fillets)",
"detail": "min -36.7 / max -36.7",
"result": "INFO"
},
{
"check": "C9",
"item": "B8 bar count vs schedule",
"expected": 29,
"actual": 29,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B8 pipes closed & paired",
"detail": "29/29",
"result": "PASS"
},
{
"check": "C9",
"item": "B8 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B8 curve length - L (bend fillets)",
"detail": "min 0.0 / max 0.0",
"result": "INFO"
},
{
"check": "C9",
"item": "B9 bar count vs schedule",
"expected": 493,
"actual": 493,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 pipes closed & paired",
"detail": "493/493",
"result": "PASS"
},
{
"check": "C9",
"item": "B9 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 curve length - L (bend fillets)",
"detail": "min -10.3 / max -10.3",
"result": "INFO"
},
{
"check": "C9",
"item": "B10 bar count vs schedule",
"expected": 9,
"actual": 9,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 pipes closed & paired",
"detail": "9/9",
"result": "PASS"
},
{
"check": "C9",
"item": "B10 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 curve length - L (bend fillets)",
"detail": "min -73.4 / max -73.4",
"result": "INFO"
},
{
"check": "C9",
"item": "B11 bar count vs schedule",
"expected": 28,
"actual": 28,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B11 pipes closed & paired",
"detail": "28/28",
"result": "PASS"
},
{
"check": "C9",
"item": "B11 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B11 curve length - L (bend fillets)",
"detail": "min -20.6 / max -20.6",
"result": "INFO"
},
{
"check": "C9",
"item": "B12 bar count vs schedule",
"expected": 34,
"actual": 28,
"diff": -6,
"tol": 0,
"result": "FAIL"
},
{
"check": "C9",
"item": "B12 pipes closed & paired",
"detail": "28/28",
"result": "PASS"
},
{
"check": "C9",
"item": "B12 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B12 curve length - L (bend fillets)",
"detail": "min -20.6 / max -20.6",
"result": "INFO"
},
{
"check": "C9",
"item": "B1 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B4 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B6 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B8 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "bottom Y-bars B2+B4 positions vs chain (worst, n=73/73)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "bottom X-bars B6+B8 positions vs chain (worst, n=61/61)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 positions vs chain (worst, n=38/38)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B1 positions vs chain (worst, n=38/38)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 positions vs chain (worst, n=32/32)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 positions vs chain (worst, n=32/32)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 at ends and alternate from -4375",
"detail": "",
"result": "PASS"
},
{
"check": "C9",
"item": "B6 at ends and alternate from -3625",
"detail": "",
"result": "PASS"
},
{
"check": "C9",
"item": "B11 mid levels 550/950/1350/1750 [derived]",
"detail": "[550, 950, 1350, 1750]",
"result": "PASS"
},
{
"check": "C9",
"item": "B12 mid levels 550/950/1350/1750 [derived]",
"detail": "[550, 950, 1350, 1750]",
"result": "PASS"
},
{
"check": "C9",
"item": "B10 levels vs chain (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 centreline size X",
"expected": 9198,
"actual": 9198.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 centreline size Y",
"expected": 7644,
"actual": 7644.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 positions = checkerboard of 34x29 grid",
"detail": "493 / 493",
"result": "PASS"
},
{
"check": "C9",
"item": "B9 bottom z (worst of all)",
"expected": 0,
"actual": 5.0,
"diff": 5.0,
"tol": 1.0,
"result": "FAIL"
},
{
"check": "C9",
"item": "B9 vertical extent a (bottom leg z to top of straight)",
"expected": 1995,
"actual": 1995.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B1 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B4 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B6 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B8 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B11 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B12 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "min cover to concrete exterior per mark",
"detail": "{\"B1\": 87.5, \"B2\": 87.5, \"B3\": 90.5, \"B4\": 87.5, \"B5\": 58.5, \"B6\": 57.5, \"B7\": 90.5, \"B8\": 85.5, \"B9\": 64.5, \"B10\": 66.5, \"B11\": 92.0, \"B12\": 92.0}",
"result": "INFO"
},
{
"check": "C9",
"item": "rebar pipe colour by diameter mismatches (all rebar)",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
}
]
}
File diff suppressed because it is too large. Load diff
@@ -0,0 +1 @@
{"model": "C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\운곡교P1\\runs\\current\\G4.3dm", "units": "Millimeters", "tolerance": 0.001, "count": 3170, "layers": {"P1::철근::코핑::S2": [120, 120, 160, true], "P1::철근::중심선": [60, 60, 60, true], "P1::철근::코핑::S1": [120, 120, 160, true], "P1::철근::코핑::C16": [120, 120, 160, true], "P1::철근::코핑::C15": [120, 120, 160, true], "P1::철근::코핑::C14": [120, 120, 160, true], "P1::철근::코핑::C13": [120, 120, 160, true], "P1::철근::코핑::C12": [120, 120, 160, true], "P1::철근::코핑::C9": [120, 120, 160, true], "P1::철근::코핑::C11": [120, 120, 160, true], "P1::철근::코핑::C10": [120, 120, 160, true], "P1::철근::코핑::C8": [120, 120, 160, true], "P1::철근::코핑::C7": [120, 120, 160, true], "P1::철근::코핑::C6": [120, 120, 160, true], "P1::철근::코핑::C3": [120, 120, 160, true], "P1::철근::코핑::C5": [120, 120, 160, true], "P1::철근::코핑::C2": [120, 120, 160, true], "P1::철근::코핑::C4": [120, 120, 160, true], "P1::철근::코핑::C1": [120, 120, 160, true], "P1::철근::기초::B9": [150, 110, 60, true], "P1::철근::기초::B10": [150, 110, 60, true], "P1::철근::기초::B12": [150, 110, 60, true], "P1::철근::기초::B11": [150, 110, 60, true], "P1::철근::기초::B5": [150, 110, 60, true], "P1::철근::기초::B1": [150, 110, 60, true], "P1::철근::기초::B7": [150, 110, 60, true], "P1::철근::기초::B3": [150, 110, 60, true], "P1::철근::기초::B6": [150, 110, 60, true], "P1::철근::기초::B8": [150, 110, 60, true], "P1::철근::기초::B2": [150, 110, 60, true], "P1::철근::기초::B4": [150, 110, 60, true], "P1::철근::기둥::P6": [140, 60, 160, true], "P1::철근::기둥::P3": [40, 120, 200, true], "P1::철근::기둥::P5": [90, 90, 220, true], "P1::철근::기둥::P4": [40, 170, 170, true], "P1::철근::기둥::P2": [230, 120, 40, true], "P1::철근::기둥::P1": [200, 40, 40, true], "P1::받침패드": [90, 160, 90, true], "P1::받침대좌": [190, 90, 90, true], "P1::말뚝": [110, 110, 110, true], "P1::코핑": [210, 180, 80, true], "P1::기둥": [200, 140, 90, true], "P1::기초": [120, 150, 200, true], "P1::버림콘크리트": [160, 160, 160, true]}, "objects": {"P1-R-S2-g5a+1200": {"layer": "P1::철근::코핑::S2", "type": "Brep", "hidden": false, "locked": false, "colour_source": 1, "colour": [44, 160, 44], "bbox": [4552.53, 1094.96, 42898.0, 5668.28, 1198.45, 43607.5], "user": {"coupler_length": "0.000", "design_length": "2500.000", "dia": "H19", "host": "P1-CP", "id": "P1-R-S2-g5a+1200", "mark": "S2", "occurrence": "g5a+1200", "shape": "III", "src": "girder 5 pedestal; lower layer"}, "faces": 7, "solid": true, "volume": "skipped"}, "P1-RC-S2-g5a+1200": {"layer": "P1::철근::중심선", "type": "PolyCurve", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [4562.03, 1104.46, 42898.0, 5658.78, 1188.95, 43598.0], "user": {"coupler_length": "0.000", "design_length": "2500.000", "dia": "H19", "host": "P1-CP", "id": "P1-RC-S2-g5a+1200", "mark": "S2", "occurrence": "g5a+1200", "shape": "III", "src": "girder 5 pedestal; lower layer"}, "length": 2463.303}, "P1-R-S2-g5a+1125": {"layer": "P1::철근::코핑::S2", "type": "Brep", "hidden": false, "locked": false, "colour_source": 1, "colour": [44, 160, 44], "bbox": [4546.77, 1020.18, 42898.0, 5662.52, 1123.67, 43607.5], "user": {"coupler_length": "0.000", "design_length": "2500.000", "dia": "H19", "host": "P1-CP", "id": "P1-R-S2-g5a+1125", "mark": "S2", "occurrence": "g5a+1125", "shape": "III", "src": "girder 5 pedestal; lower layer"}, "faces": 7, "solid": true, "volume": "skipped"}, "P1-RC-S2-g5a+1125": {"layer": "P1::철근::중심선", "type": "PolyCurve", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [4556.27, 1029.68, 42898.0, 5653.02, 1114.17, 43598.0], "user": {"coupler_length": "0.000", "design_length": "2500.000", "dia": "H19", "host": "P1-CP", "id": "P1-RC-S2-g5a+1125", "mark": "S2", "occurrence": "g5a+1125", "shape": "III", "src": "girder 5 pedestal; lower layer"}, "length": 2463.303}, "P1-R-S2-g5a+1000": {"layer": "P1::철근::코핑::S2", "type": "Brep", "hidden": false, "locked": false, "colour_source": 1, "colour": [44, 160, 44], "bbox": [4537.17, 895.55, 42898.0, 5652.92, 999.04, 43607.5], "user": {"coupler_length": "0.000", "design_length": "2500.000", "dia": "H19", "host": "P1-CP", "id": "P1-R-S2-g5a+1000", "mark": "S2", "occurrence": "g5a+1000", "shape": "III", "src": "girder 5 pedestal; lower layer"}, "faces": 7, "solid": true, "volume": "skipped"}, "P1-RC-S2-g5a+1000": {"layer": "P1::철근::중심선", "type": "PolyCurve", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [4546.67, 905.05, 42898.0, 5643.42, 989.54, 43598.0], "user": {"coupler_length": "0.000", "design_length": "2500.000", "dia": "H19", "host": "P1-CP", "id": "P1-RC-S2-g5a+1000", "mark"Line truncated
@@ -0,0 +1,127 @@
{
"gate": "G4",
"checker": "g4_coping_rebar.py",
"verdict": "PASS",
"summary": {
"total": 116,
"passed": 111,
"failed": 5,
"cover": {
"C1": 85.4,
"C2": 85.2,
"C3": 85.5,
"C4": 85.4,
"C5": 85.2,
"C6": 85.5,
"C7": 84.4,
"C8": 84.4,
"C9": 87.5,
"C10": 87.5,
"C11": 87.1,
"C12": 87.4,
"C13": 87.4,
"C14": 90.5,
"C15": 90.1,
"C16": 90.5,
"S1": 40.5,
"S2": 90.5
}
},
"unplanned_fails": [],
"planned_fails": [
{
"item": "C9 original length vs L (drawn widths ['1160.0', '1740.0'], K1 decision)",
"reason": "작도 폭 채택(K1)"
},
{
"item": "C10 original length vs L (drawn widths ['1160.0', '1740.0'], K1 decision)",
"reason": "작도 폭 채택(K1)"
},
{
"item": "C11 original length vs L (drawn widths ['1160.0', '1740.0'], K1 decision)",
"reason": "작도 폭 채택(K1)"
},
{
"item": "C12 original length vs L (drawn widths ['1106.0', '1686.0'], K1 decision)",
"reason": "작도 폭 채택(C12·C13 drawn width)"
},
{
"item": "C13 original length vs L (drawn widths ['1106.0', '1686.0'], K1 decision)",
"reason": "작도 폭 채택(C12·C13 drawn width)"
}
],
"negative": {
"negH": {
"move": {
"mark": "C11",
"d": [
5,
0,
0
]
},
"new_fails": [
"C11 stirrup X positions",
"C11 3 stirrups per position"
],
"detected": true
},
"negV": {
"move": {
"mark": "S1",
"d": [
0,
0,
5
]
},
"new_fails": [
"S1 EL = step top - 50 (worst)"
],
"detected": true
}
},
"reload": {
"built": 3170,
"reopened": 3170,
"fingerprint": 3170,
"ok": true
},
"unchanged": {
"compared": 2198,
"diffs": [],
"missing": [],
"ok": true,
"against": "G3_fp.json"
},
"model": "C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\운곡교P1\\runs\\current\\G4.3dm",
"secs": 78.2,
"build_steps": [
{
"name": "G1:concrete.py",
"secs": 0.25
},
{
"name": "G2:column_rebar.py",
"secs": 0.84
},
{
"name": "G3:footing_rebar.py",
"secs": 2.57
},
{
"name": "G4:coping_rebar.py",
"secs": 2.55
},
{
"name": "G4:rebar_colours.py",
"secs": 0.14
},
{
"name": "display.py",
"secs": 0.05
}
],
"inputs_sha": "a07fc78446227a14",
"job_id": "e324b662f55f"
}
@@ -0,0 +1,12 @@
{
"id": "e324b662f55f",
"pid": 14676,
"state": "완료",
"at": "2026-10-12 14:26:59",
"log": [
"Rhino 작업 시작",
"[G4] build G1..G4",
"[G4] re-open, check, negative tests, fingerprint",
"[G4] PASS checks 111/116 (planned FAIL 5, unplanned 0) negative H/V True/True reload True unchanged True (2198) 78.2s"
]
}
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -0,0 +1 @@
{"model": "C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\운곡교P1\\runs\\current\\G5.3dm", "units": "Millimeters", "tolerance": 0.001, "count": 3190, "layers": {"P1::솔플레이트": [150, 150, 150, true], "P1::교량받침": [0, 0, 0, true], "P1::철근::코핑::S2": [120, 120, 160, true], "P1::철근::중심선": [60, 60, 60, true], "P1::철근::코핑::S1": [120, 120, 160, true], "P1::철근::코핑::C16": [120, 120, 160, true], "P1::철근::코핑::C15": [120, 120, 160, true], "P1::철근::코핑::C14": [120, 120, 160, true], "P1::철근::코핑::C13": [120, 120, 160, true], "P1::철근::코핑::C12": [120, 120, 160, true], "P1::철근::코핑::C9": [120, 120, 160, true], "P1::철근::코핑::C11": [120, 120, 160, true], "P1::철근::코핑::C10": [120, 120, 160, true], "P1::철근::코핑::C8": [120, 120, 160, true], "P1::철근::코핑::C7": [120, 120, 160, true], "P1::철근::코핑::C6": [120, 120, 160, true], "P1::철근::코핑::C3": [120, 120, 160, true], "P1::철근::코핑::C5": [120, 120, 160, true], "P1::철근::코핑::C2": [120, 120, 160, true], "P1::철근::코핑::C4": [120, 120, 160, true], "P1::철근::코핑::C1": [120, 120, 160, true], "P1::철근::기초::B9": [150, 110, 60, true], "P1::철근::기초::B10": [150, 110, 60, true], "P1::철근::기초::B12": [150, 110, 60, true], "P1::철근::기초::B11": [150, 110, 60, true], "P1::철근::기초::B5": [150, 110, 60, true], "P1::철근::기초::B1": [150, 110, 60, true], "P1::철근::기초::B7": [150, 110, 60, true], "P1::철근::기초::B3": [150, 110, 60, true], "P1::철근::기초::B6": [150, 110, 60, true], "P1::철근::기초::B8": [150, 110, 60, true], "P1::철근::기초::B2": [150, 110, 60, true], "P1::철근::기초::B4": [150, 110, 60, true], "P1::철근::기둥::P6": [140, 60, 160, true], "P1::철근::기둥::P3": [40, 120, 200, true], "P1::철근::기둥::P5": [90, 90, 220, true], "P1::철근::기둥::P4": [40, 170, 170, true], "P1::철근::기둥::P2": [230, 120, 40, true], "P1::철근::기둥::P1": [200, 40, 40, true], "P1::받침패드": [90, 160, 90, true], "P1::받침대좌": [190, 90, 90, true], "P1::말뚝": [110, 110, 110, true], "P1::코핑": [210, 180, 80, true], "P1::기둥": [200, 140, 90, true], "P1::기초": [120, 150, 200, true], "P1::버림콘크리트": [160, 160, 160, true]}, "objects": {"P1-SP10": {"layer": "P1::솔플레이트", "type": "Brep", "hidden": false, "locked": false, "colour_source": 1, "colour": [150, 150, 150], "bbox": [4712.22, 183.07, 44068.0, 5394.58, 1016.53, 44105.6], "user": {"L": "800", "S": "-1.901", "T": "30", "W": "640", "end_thick": "37.60/22.40", "id": "P1-SP10", "no": "10", "role": "sole plate", "src": "D2 솔플레이트 상세 TABLE; slope along pad axis, thick end -Y [HITL]"}, "faces": 6, "solid": true, "volume": 15360000.0}, "P1-BB10": {"layer": "P1::교량받침", "type": "Brep", "hidden": false, "locked": false, "colour_source": 1, "colour": [0, 0, 0], "bbox": [4764.86, 235.7, 43887.0, 5341.94, 963.9, 44068.0], "user": {"el_x": "43887", "id": "P1-BB10", "no": "10", "role": "bridge bearing", "size": "700x540x181", "src": "D2 ELEVATION TABLE h3, (L-100)x(W-100) per user 2026-10-08"}, "faces": 6, "solid": true, "volume": 68418000.0}, "P1-SP09": {"layer": "P1::솔플레이트", "type": "Brep", "hidden": false, "locked": false, "colour_source": 1, "colour": [150, 150, 150], "bbox": [2206.92, 183.07, 43997.0, 2889.28, 1016.53, 44034.61], "user": {"L": "800", "S": "-1.903", "T": "30", "W": "640", "end_thick": "37.61/22.39", "id": "P1-SP09", "no": "9", "role": "sole plate", "src": "D2 솔플레이트 상세 TABLE; slope along pad axis, thick end -Y [HITL]"}, "faces": 6, "solid": true, "volume": 15360000.0}, "P1-BB09": {"layer": "P1::교량받침", "type": "Brep", "hidden": false, "locked": false, "colour_source": 1, "colour": [0, 0, 0], "bbox": [2259.56, 235.7, 43816.0, 2836.64, 963.9, 43997.0], "user": {"el_x": "43816", "id": "P1-BB09", "no": "9", "role": "bridge bearing", "size": "700x540x181", "src": "D2 ELEVATION TABLE h3, (L-100)x(W-100) per user 2026-10-08"}, "faces": 6, "solid": true, "volume": 68418000.0}, "P1-SP08": {"layer": "P1::솔플레이트", "type": "Brep", "hidden": false, "locked": false, "colour_source": 1, "colour": [150, 150, 150], "bbox": [-353.4, 180.09, 43925.0, 438.8, 1019.51, 43962.62], "user": {"L": "800", "S": "-1.905", "T": "30", "W": "750", "end_thick": "37.62/22.38", "id": "P1-SP08", "no": "8", "role": "sole plate", "src": "D2 솔플레이트 상세 TABLE; slope along pad axis, thick end -Y [HITL]"}, "faces": 6, "solid": true, "volume": 18000000.0}, "P1-BB08": {"layer": "P1::교량받침", "type": "Brep", "hidden": false, "locked": false, "colour_source": 1, "colour": [0, 0, 0], "bbox": [-300.76, 232.73, 43744.0, 386.16, 966.87, 43925.0], "user": {"el_x": "43744", "id": "P1-BB08", "no": "8", "role": "bridge bearing", "size": "700x650x181", "src": "D2 ELEVATION TABLE h3, (L-100)x(W-100) per user 2026-10-08"}Line truncated
@@ -0,0 +1,89 @@
{
"gate": "G5",
"checker": "g5_bearings.py",
"verdict": "PASS",
"summary": {
"total": 183,
"passed": 183,
"failed": 0
},
"unplanned_fails": [],
"planned_fails": [],
"negative": {
"negH": {
"move": {
"id": "BB05",
"d": [
5,
0,
0
]
},
"new_fails": [
"NO.5 bearing plan centre offset from pad (mm)"
],
"detected": true
},
"negV": {
"move": {
"id": "SP08",
"d": [
0,
0,
5
]
},
"new_fails": [
"NO.8 sole plate bottom = bearing top"
],
"detected": true
}
},
"reload": {
"built": 3190,
"reopened": 3190,
"fingerprint": 3190,
"ok": true
},
"unchanged": {
"compared": 3170,
"diffs": [],
"missing": [],
"ok": true,
"against": "G4_fp.json"
},
"model": "C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\운곡교P1\\runs\\current\\G5.3dm",
"secs": 43.6,
"build_steps": [
{
"name": "G1:concrete.py",
"secs": 0.24
},
{
"name": "G2:column_rebar.py",
"secs": 0.84
},
{
"name": "G3:footing_rebar.py",
"secs": 2.46
},
{
"name": "G4:coping_rebar.py",
"secs": 2.56
},
{
"name": "G4:rebar_colours.py",
"secs": 0.16
},
{
"name": "G5:bearings.py",
"secs": 0.03
},
{
"name": "display.py",
"secs": 0.05
}
],
"inputs_sha": "a07fc78446227a14",
"job_id": "3559d7e964a6"
}
@@ -0,0 +1,12 @@
{
"id": "3559d7e964a6",
"pid": 14676,
"state": "완료",
"at": "2026-10-12 14:27:44",
"log": [
"Rhino 작업 시작",
"[G5] build G1..G5",
"[G5] re-open, check, negative tests, fingerprint",
"[G5] PASS checks 183/183 (planned FAIL 0, unplanned 0) negative H/V True/True reload True unchanged True (3170) 43.6s"
]
}
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,37 @@
{
"G1": {
"decision": "승인",
"by": "예제실행(Agent)",
"note": "예제 실행",
"at": "2026-10-12 14:23:25",
"inputs_sha": "a07fc78446227a14"
},
"G2": {
"decision": "승인",
"by": "예제실행(Agent)",
"note": "예제 실행",
"at": "2026-10-12 14:24:35",
"inputs_sha": "a07fc78446227a14"
},
"G3": {
"decision": "승인",
"by": "예제실행(Agent)",
"note": "예제 실행",
"at": "2026-10-12 14:25:41",
"inputs_sha": "a07fc78446227a14"
},
"G4": {
"decision": "승인",
"by": "예제실행(Agent)",
"note": "예제 실행",
"at": "2026-10-12 14:27:01",
"inputs_sha": "a07fc78446227a14"
},
"G5": {
"decision": "승인",
"by": "예제실행(Agent)",
"note": "예제 실행",
"at": "2026-10-12 14:27:46",
"inputs_sha": "a07fc78446227a14"
}
}
@@ -0,0 +1,10 @@
{
"chapters_missing": [],
"vocab_bad": [],
"finding_rows": 6,
"finding_rows_without_source": 0,
"schedule_rows": 37,
"schedule_marks": 37,
"gate_rows": 5,
"ok": true
}
@@ -0,0 +1,177 @@
# 운곡교P1 교각 모델링 검토보고서 (초안)
> 앱이 게이트 결과·도면 표·승인 기록으로 자동 작성한 **초안**입니다. '오류'·'불일치' 판정과 3~5장의 서술은 담당자가 확인·확정해야 합니다. 작성일 2026-10-12 · 작성 예제실행(Agent).
## 1. 개요
- 교각: 운곡교P1 (T형) · 좌표: 로컬(교각 중심 원점, X 교축직각, Y 교축, Z = EL×1000, mm) · 산출: .3dm
- 게이트 진행: 5/5 실행, **전 게이트 PASS·승인**
### 1.1 입력 도면
| 구분 | DWG | SHA-256(앞 16자) |
| :--- | :--- | :--- |
| D1 | C0050205-025-운곡교 교각도(1)(완도방향 P1).dwg | d275fc3541eb2598 |
| D2 | C0050205-026-운곡교 교각도(2)(완도방향 P1).dwg | 0aa03f2145935b1a |
| D3 | C0050205-027-운곡교 교각도(3)(완도방향 P1).dwg | f77980c5f8592d50 |
### 1.2 게이트 결과
| 게이트 | 내용 | 판정 | 검사 PASS | 승인 | 의견 |
| :--- | :--- | :--- | :--- | :--- | :--- |
| G1 | 형상(콘크리트·말뚝·받침대좌·패드) | PASS | 171/171 | 승인 예제실행(Agent) 2026-10-12 14:23:25 | 예제 실행 |
| G2 | 기둥 철근 | PASS | 42/42 | 승인 예제실행(Agent) 2026-10-12 14:24:35 | 예제 실행 |
| G3 | 확대기초 철근 | PASS | 72/73 | 승인 예제실행(Agent) 2026-10-12 14:25:41 | 예제 실행 |
| G4 | 코핑 철근 | PASS | 111/116 | 승인 예제실행(Agent) 2026-10-12 14:27:01 | 예제 실행 |
| G5 | 교량받침·솔플레이트 | PASS | 183/183 | 승인 예제실행(Agent) 2026-10-12 14:27:46 | 예제 실행 |
## 2. 도면 오류·불일치
자동 등재 기준: 승인된 계획 FAIL → '불일치', 계획되지 않은 FAIL과 도면 표 값·입력값 차이 → '확인 필요'.
| 판정 | 게이트 | 항목 | 내용 | 근거 |
| :--- | :--- | :--- | :--- | :--- |
| 불일치 | G3 | B12 bar count vs schedule | 작도 28본 채택(F2) vs D3 34본 — OPEN #9 | 예외 승인: 사용자 2026-10-07 |
| 불일치 | G4 | C9 original length vs L (drawn widths ['1160.0', '1740.0'], K1 decision) | 작도 폭 채택(K1) | 예외 승인: 사용자 2026-10-07 |
| 불일치 | G4 | C10 original length vs L (drawn widths ['1160.0', '1740.0'], K1 decision) | 작도 폭 채택(K1) | 예외 승인: 사용자 2026-10-07 |
| 불일치 | G4 | C11 original length vs L (drawn widths ['1160.0', '1740.0'], K1 decision) | 작도 폭 채택(K1) | 예외 승인: 사용자 2026-10-07 |
| 불일치 | G4 | C12 original length vs L (drawn widths ['1106.0', '1686.0'], K1 decision) | 작도 폭 채택(C12·C13 drawn width) | 예외 승인: 사용자 2026-10-07 |
| 불일치 | G4 | C13 original length vs L (drawn widths ['1106.0', '1686.0'], K1 decision) | 작도 폭 채택(C12·C13 drawn width) | 예외 승인: 사용자 2026-10-07 |
## 3. 개선방안
[담당자 작성] 2장 항목별로 도면 수정·설계자 확인 방안을 적습니다.
## 4. 추가되어야 할 사항
[담당자 작성] 도면에 없어 추정·가정으로 모델링한 사항(입력 묶음의 `[추론]` 표기)을 정리합니다.
- 자동 확인: `[추론]` 표기가 있는 입력 묶음 — coping_rebar
## 5. 누락사항
[담당자 작성] 도면에서 빠진 치수·표·상세를 적습니다.
- 자동 확인: 재료표에 있으나 모델 대상이 아닌 마크 — UA1 (범위 결정 확인)
## 6. 철근재료표 (원본 vs 모델)
원본 = 도면 재료표 판독값(동일 기호 " 해석 포함), 모델 = 게이트 검사의 본수 실측값.
| 마크 | 형식 | 직경 | 재료표 수량 | 재료표 L(mm) | 모델 본수 | 대조 | 근거 |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| P1 | XIV | S32 | 46 | 17247 | 46 | 일치 | D3 철근재료표 (SD500) P1 |
| P2 | XVI | S32 | 46 | 16553 | 46 | 일치 | D3 철근재료표 (SD500) P2 |
| B5 | XII | S29 | 32 | 9550 | 32 | 일치 | D3 철근재료표 (SD500) B5 |
| B6 | XII | S29 | 32 | 13050 | 32 | 일치 | D3 철근재료표 (SD500) B6 |
| B8 | XVI | S29 | 29 | 9150 | 29 | 일치 | D3 철근재료표 (SD500) B8 |
| B1 | III | S25 | 38 | 8000 | 38 | 일치 | D3 철근재료표 (SD500) B1 |
| B2 | XII | S25 | 38 | 11500 | 38 | 일치 | D3 철근재료표 (SD500) B2 |
| B4 | I | S25 | 35 | 7600 | 35 | 일치 | D3 철근재료표 (SD500) B4 |
| B3 | III | S19 | 38 | 8000 | 38 | 일치 | D3 철근재료표 (SD500) B3 |
| B7 | XII | S19 | 32 | 9550 | 32 | 일치 | D3 철근재료표 (SD500) B7 |
| B10 | XIII | S19 | 9 | 33684 | 9 | 일치 | D3 철근재료표 (SD500) B10 |
| B11 | XII | S16 | 28 | 9350 | 28 | 일치 | D3 철근재료표 (SD500) B11 |
| B12 | III | S16 | 34 | 7800 | 28 | 불일치 | D3 철근재료표 (SD500) B12 |
| UA1 | - | S16 | - | - | 모델 외 | - | D3 철근재료표 (SD500) UA1 |
| C1 | VIII | H29 | 12 | 14490 | 12 | 일치 | D3 철근재료표 (SD400) C1 |
| C2 | VIII | H29 | 12 | 12081 | 12 | 일치 | D3 철근재료표 (SD400) C2 |
| C3 | VIII | H29 | 12 | 12106 | 12 | 일치 | D3 철근재료표 (SD400) C3 |
| C4 | VIII | H29 | 12 | 14490 | 12 | 일치 | D3 철근재료표 (SD400) C4 |
| C5 | VIII | H29 | 12 | 12081 | 12 | 일치 | D3 철근재료표 (SD400) C5 |
| C6 | VIII | H29 | 12 | 12106 | 12 | 일치 | D3 철근재료표 (SD400) C6 |
| C7 | VII | H29 | 12 | 13994 | 12 | 일치 | D3 철근재료표 (SD400) C7 |
| C8 | VII | H29 | 12 | 13994 | 12 | 일치 | D3 철근재료표 (SD400) C8 |
| C9 | IV | H25 | 60 | 8647 | 60 | 일치 | D3 철근재료표 (SD400) C9 |
| C10 | IV | H25 | 21 | 10310 | 21 | 일치 | D3 철근재료표 (SD400) C10 |
| C11 | IV | H25 | 60 | 8934 | 60 | 일치 | D3 철근재료표 (SD400) C11 |
| C12 | X | H25 | 18 | 20513 | 18 | 일치 | D3 철근재료표 (SD400) C12 |
| C13 | X | H25 | 9 | 29345 | 9 | 일치 | D3 철근재료표 (SD400) C13 |
| C14 | III | H19 | 41 | 3600 | 41 | 일치 | D3 철근재료표 (SD400) C14 |
| C15 | III | H19 | 13 | 2784 | 13 | 일치 | D3 철근재료표 (SD400) C15 |
| C16 | II | H19 | 13 | 5611 | 13 | 일치 | D3 철근재료표 (SD400) C16 |
| P3 | VI | H19 | 36 | 6436 | 36 | 일치 | D3 철근재료표 (SD400) P3 |
| P4 | V | H19 | 9 | 5636 | 9 | 일치 | D3 철근재료표 (SD400) P4 |
| P5 | IX | H19 | 22 | 5636 | 22 | 일치 | D3 철근재료표 (SD400) P5 |
| S1 | III | H19 | 50 | 3800 | 50 | 일치 | D3 철근재료표 (SD400) S1 |
| S2 | III | H19 | 105 | 2500 | 105 | 일치 | D3 철근재료표 (SD400) S2 |
| B9 | XI | H16 | 493 | 2155 | 493 | 일치 | D3 철근재료표 (SD400) B9 (개수 = 총길이/길이 [역산]) |
| P6 | III | H16 | 36 | 2136 | 36 | 일치 | D3 철근재료표 (SD400) P6 |
## 7. 철근상세 (기록)
원길이·곡선길이·피복은 판정이 아닌 기록 값입니다(요구사항 §6.2).
### 7.1 기둥 (G2)
| 항목 | 값 |
| :--- | :--- |
| P1 curve length - L (record, fillets shorten hooks) | min 0.1 / max 0.1 mm |
| P2 curve length - L (record, fillets shorten hooks) | min 0.0 / max 0.0 mm |
| P3 curve length - L (record, fillets shorten hooks) | min -493.1 / max -493.1 mm |
| P4 curve length - L (record, fillets shorten hooks) | min 0.0 / max 0.0 mm |
| P5 curve length - L (record, fillets shorten hooks) | min 0.0 / max 0.0 mm |
| P6 curve length - L (record, fillets shorten hooks) | min -20.6 / max -20.6 mm |
| concrete union for cover | 1 brep |
| min cover to concrete surface per mark (record) | {"P1": 113.5, "P2": 158.5, "P3": 93.5, "P4": 109.7, "P5": 93.5, "P6": 74.0} |
### 7.2 확대기초 (G3)
| 항목 | 값 |
| :--- | :--- |
| B1 curve length - L (bend fillets) | min -48.3 / max -48.3 |
| B2 curve length - L (bend fillets) | min -48.3 / max -48.3 |
| B3 curve length - L (bend fillets) | min -36.7 / max -36.7 |
| B4 curve length - L (bend fillets) | min 0.0 / max 0.0 |
| B5 curve length - L (bend fillets) | min -56.0 / max -56.0 |
| B6 curve length - L (bend fillets) | min -56.0 / max -56.0 |
| B7 curve length - L (bend fillets) | min -36.7 / max -36.7 |
| B8 curve length - L (bend fillets) | min 0.0 / max 0.0 |
| B9 curve length - L (bend fillets) | min -10.3 / max -10.3 |
| B10 curve length - L (bend fillets) | min -73.4 / max -73.4 |
| B11 curve length - L (bend fillets) | min -20.6 / max -20.6 |
| B12 curve length - L (bend fillets) | min -20.6 / max -20.6 |
| min cover to concrete exterior per mark | {"B1": 87.5, "B2": 87.5, "B3": 90.5, "B4": 87.5, "B5": 58.5, "B6": 57.5, "B7": 90.5, "B8": 85.5, "B9": 69.5, "B10": 66.5, "B11": 92.0, "B12": 92.0} |
### 7.3 코핑 (G4)
| 항목 | 값 |
| :--- | :--- |
| C1 curve - original length | -41.9 / -41.9 |
| C2 curve - original length | -41.9 / -41.9 |
| C3 curve - original length | -41.9 / -41.9 |
| C4 curve - original length | -41.9 / -41.9 |
| C5 curve - original length | -41.9 / -41.9 |
| C6 curve - original length | -41.9 / -41.9 |
| C7 curve - original length | -0.0 / -0.0 |
| C8 curve - original length | -0.0 / -0.0 |
| C9 curve - original length | -1705.2 / -1705.2 |
| C10 curve - original length | -1705.2 / -1705.2 |
| C11 curve - original length | -1705.2 / -1705.2 |
| C12 curve - original length | -2525.2 / -2525.2 |
| C13 curve - original length | -2525.2 / -2525.2 |
| C14 curve - original length | -36.7 / -36.7 |
| C15 curve - original length | -36.7 / -36.7 |
| C16 curve - original length | -18.3 / -18.3 |
| S1 curve - original length | -36.7 / -36.7 |
| S2 curve - original length | -36.7 / -36.7 |
| min cover to coping surface per mark (top face under pedestals counted) | {"C1": 85.4, "C2": 85.2, "C3": 85.5, "C4": 85.4, "C5": 85.2, "C6": 85.5, "C7": 84.4, "C8": 84.4, "C9": 87.5, "C10": 87.5, "C11": 87.1, "C12": 87.4, "C13": 87.4, "C14": 90.5, "C15": 90.1, "C16": 90.5, "S1": 40.5, "S2": 90.5} |
## 8. 검증 방법
- 검사기는 생성 입력(params)이 아니라 도면 문자·표에서 옮긴 독립 기대값(expected)만 읽습니다.
- 게이트마다 G1부터 새로 생성 → 저장 파일을 다시 열어 검사(재로드) → 객체를 수평·수직으로 옮겨 FAIL이 나는지 확인(음성 시험) → 앞 게이트 객체 지문 비교.
| 게이트 | 재로드 | 음성 시험 | 앞 게이트 객체 |
| :--- | :--- | :--- | :--- |
| G1 | 일치 | 수평 검출 / 수직 검출 | 불변 (0) |
| G2 | 일치 | 수평 검출 / 수직 검출 | 불변 (54) |
| G3 | 일치 | 수평 검출 / 수직 검출 | 불변 (534) |
| G4 | 일치 | 수평 검출 / 수직 검출 | 불변 (2198) |
| G5 | 일치 | 수평 검출 / 수직 검출 | 불변 (3170) |
## 변경 이력
| 버전 | 일자 | 내용 |
| :--- | :--- | :--- |
| v0.1.00 | 2026-10-12 | 앱 자동 생성 초안 |