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

@@ -0,0 +1,564 @@
[
{
"at": "2026-10-19 13:30:56",
"fields": [
{
"field": "expected:G1.seats.table.10.0",
"file": "expected",
"from": 42953,
"to": 42019,
"grade": "A",
"text": "42.019",
"x": 24938.3,
"y": 3894.5,
"pos": "D2 (24938, 3894)"
},
{
"field": "expected:G1.seats.table.9.0",
"file": "expected",
"from": 42880,
"to": 41945,
"grade": "A",
"text": "41.945",
"x": 24938.3,
"y": 4374.5,
"pos": "D2 (24938, 4374)"
},
{
"field": "expected:G1.seats.table.8.0",
"file": "expected",
"from": 42807,
"to": 41871,
"grade": "A",
"text": "41.871",
"x": 24938.3,
"y": 4854.5,
"pos": "D2 (24938, 4854)"
},
{
"field": "expected:G1.seats.table.7.0",
"file": "expected",
"from": 42734,
"to": 41797,
"grade": "A",
"text": "41.797",
"x": 24938.3,
"y": 5334.5,
"pos": "D2 (24938, 5334)"
},
{
"field": "expected:G1.seats.table.6.0",
"file": "expected",
"from": 42661,
"to": 41723,
"grade": "A",
"text": "41.723",
"x": 24938.3,
"y": 5814.5,
"pos": "D2 (24938, 5814)"
},
{
"field": "expected:G1.seats.table.5.0",
"file": "expected",
"from": 42978,
"to": 42043,
"grade": "A",
"text": "42.043",
"x": 24938.3,
"y": 6294.5,
"pos": "D2 (24938, 6294)"
},
{
"field": "expected:G1.seats.table.4.0",
"file": "expected",
"from": 42905,
"to": 41969,
"grade": "A",
"text": "41.969",
"x": 24938.3,
"y": 6774.5,
"pos": "D2 (24938, 6774)"
},
{
"field": "expected:G1.seats.table.3.0",
"file": "expected",
"from": 42832,
"to": 41895,
"grade": "A",
"text": "41.895",
"x": 24938.3,
"y": 7254.5,
"pos": "D2 (24938, 7254)"
},
{
"field": "expected:G1.seats.table.2.0",
"file": "expected",
"from": 42759,
"to": 41821,
"grade": "A",
"text": "41.821",
"x": 24938.3,
"y": 7734.5,
"pos": "D2 (24938, 7734)"
},
{
"field": "expected:G1.seats.table.1.0",
"file": "expected",
"from": 42686,
"to": 41747,
"grade": "A",
"text": "41.747",
"x": 24938.3,
"y": 8214.5,
"pos": "D2 (24938, 8214)"
},
{
"field": "expected:G1.column.height",
"file": "expected",
"from": 12133,
"to": 11127,
"grade": "A",
"text": "11.127",
"x": 3029.4,
"y": 14008.8,
"pos": "D1 (3029, 14009)"
},
{
"field": "expected:G1.footing.z0",
"file": "expected",
"from": 25123,
"to": 25175,
"grade": "A",
"text": "EL. 25.175",
"x": 24278.0,
"y": 8775.6,
"pos": "D1 (24278, 8776)"
},
{
"field": "expected:G2.schedule_L.P2",
"file": "expected",
"from": 16683,
"to": 15677,
"grade": "A",
"text": "15.677",
"x": 43188.4,
"y": 29539.8,
"pos": "D3 (43188, 29540)"
},
{
"field": "expected:G2.schedule_L.P1",
"file": "expected",
"from": 17377,
"to": 16371,
"grade": "A",
"text": "16.371",
"x": 43188.4,
"y": 29899.8,
"pos": "D3 (43188, 29900)"
},
{
"field": "expected:G3.schedule.B12.0",
"file": "expected",
"from": 7800,
"to": 8800,
"grade": "A",
"text": "8.800",
"x": 29878.0,
"y": 3741.9,
"pos": "D1 (29878, 3742)"
},
{
"field": "expected:G3.schedule.B4.0",
"file": "expected",
"from": 7600,
"to": 8600,
"grade": "A",
"text": "8.600",
"x": 43290.6,
"y": 26659.8,
"pos": "D3 (43291, 26660)"
},
{
"field": "expected:G3.schedule.B3.0",
"file": "expected",
"from": 8000,
"to": 9000,
"grade": "A",
"text": "9.000",
"x": 43290.6,
"y": 27379.8,
"pos": "D3 (43291, 27380)"
},
{
"field": "expected:G3.schedule.B2.0",
"file": "expected",
"from": 11500,
"to": 12500,
"grade": "A",
"text": "12.500",
"x": 43188.4,
"y": 27019.8,
"pos": "D3 (43188, 27020)"
},
{
"field": "expected:G3.schedule.B1.0",
"file": "expected",
"from": 8000,
"to": 9000,
"grade": "A",
"text": "9.000",
"x": 43290.6,
"y": 27379.8,
"pos": "D3 (43291, 27380)"
},
{
"field": "expected:G5.el_x.10",
"file": "expected",
"from": 42953,
"to": 42019,
"grade": "A",
"text": "42.019",
"x": 24938.3,
"y": 3894.5,
"pos": "D2 (24938, 3894)"
},
{
"field": "expected:G5.el_x.9",
"file": "expected",
"from": 42880,
"to": 41945,
"grade": "A",
"text": "41.945",
"x": 24938.3,
"y": 4374.5,
"pos": "D2 (24938, 4374)"
},
{
"field": "expected:G5.el_x.8",
"file": "expected",
"from": 42807,
"to": 41871,
"grade": "A",
"text": "41.871",
"x": 24938.3,
"y": 4854.5,
"pos": "D2 (24938, 4854)"
},
{
"field": "expected:G5.el_x.7",
"file": "expected",
"from": 42734,
"to": 41797,
"grade": "A",
"text": "41.797",
"x": 24938.3,
"y": 5334.5,
"pos": "D2 (24938, 5334)"
},
{
"field": "expected:G5.el_x.6",
"file": "expected",
"from": 42661,
"to": 41723,
"grade": "A",
"text": "41.723",
"x": 24938.3,
"y": 5814.5,
"pos": "D2 (24938, 5814)"
},
{
"field": "expected:G5.el_x.5",
"file": "expected",
"from": 42978,
"to": 42043,
"grade": "A",
"text": "42.043",
"x": 24938.3,
"y": 6294.5,
"pos": "D2 (24938, 6294)"
},
{
"field": "expected:G5.el_x.4",
"file": "expected",
"from": 42905,
"to": 41969,
"grade": "A",
"text": "41.969",
"x": 24938.3,
"y": 6774.5,
"pos": "D2 (24938, 6774)"
},
{
"field": "expected:G5.el_x.3",
"file": "expected",
"from": 42832,
"to": 41895,
"grade": "A",
"text": "41.895",
"x": 24938.3,
"y": 7254.5,
"pos": "D2 (24938, 7254)"
},
{
"field": "expected:G5.el_x.2",
"file": "expected",
"from": 42759,
"to": 41821,
"grade": "A",
"text": "41.821",
"x": 24938.3,
"y": 7734.5,
"pos": "D2 (24938, 7734)"
},
{
"field": "expected:G5.el_x.1",
"file": "expected",
"from": 42686,
"to": 41747,
"grade": "A",
"text": "41.747",
"x": 24938.3,
"y": 8214.5,
"pos": "D2 (24938, 8214)"
}
],
"why": ""
},
{
"at": "2026-10-19 16:13:51",
"fields": [
{
"field": "expected:G1.seats.rear_first_from_tip",
"file": "expected",
"from": 1223,
"to": 1212,
"grade": "B",
"text": "1.212",
"x": 6312.8,
"y": 29431.1,
"pos": "D1 (6313, 29431)"
},
{
"field": "expected:G1.seats.step_top.5",
"file": "expected",
"from": 42748,
"to": 41798,
"grade": "B",
"text": "EL. 41.798",
"x": 18443.1,
"y": 20270.5,
"pos": "D1 (18443, 20270)"
},
{
"field": "expected:G1.seats.step_top.3",
"file": "expected",
"from": 42602,
"to": 41650,
"grade": "B",
"text": "EL. 41.650",
"x": 26179.8,
"y": 20323.6,
"pos": "D1 (26180, 20324)"
},
{
"field": "expected:G1.seats.step_top.1",
"file": "expected",
"from": 42456,
"to": 41502,
"grade": "B",
"text": "EL. 41.502",
"x": 4867.8,
"y": 20175.6,
"pos": "D1 (4868, 20176)"
},
{
"field": "expected:G1.coping_outline.12.1",
"file": "expected",
"from": 42456,
"to": 41502,
"grade": "B",
"text": "EL. 41.502",
"x": 4867.8,
"y": 20175.6,
"pos": "D1 (4868, 20176)"
},
{
"field": "expected:G1.coping_outline.11.1",
"file": "expected",
"from": 42456,
"to": 41502,
"grade": "B",
"text": "EL. 41.502",
"x": 4867.8,
"y": 20175.6,
"pos": "D1 (4868, 20176)"
},
{
"field": "expected:G1.coping_outline.8.1",
"file": "expected",
"from": 42602,
"to": 41650,
"grade": "B",
"text": "EL. 41.650",
"x": 26179.8,
"y": 20323.6,
"pos": "D1 (26180, 20324)"
},
{
"field": "expected:G1.coping_outline.7.1",
"file": "expected",
"from": 42602,
"to": 41650,
"grade": "B",
"text": "EL. 41.650",
"x": 26179.8,
"y": 20323.6,
"pos": "D1 (26180, 20324)"
},
{
"field": "expected:G1.coping_outline.4.1",
"file": "expected",
"from": 42748,
"to": 41798,
"grade": "B",
"text": "EL. 41.798",
"x": 18443.1,
"y": 20270.5,
"pos": "D1 (18443, 20270)"
},
{
"field": "expected:G1.coping_outline.3.1",
"file": "expected",
"from": 42748,
"to": 41798,
"grade": "B",
"text": "EL. 41.798",
"x": 18443.1,
"y": 20270.5,
"pos": "D1 (18443, 20270)"
},
{
"field": "expected:G1.coping.z_top_center",
"file": "expected",
"from": 42602,
"to": 41650,
"grade": "B",
"text": "EL. 41.650",
"x": 26179.8,
"y": 20323.6,
"pos": "D1 (26180, 20324)"
},
{
"field": "expected:G1.coping.z_top_right",
"file": "expected",
"from": 42748,
"to": 41798,
"grade": "B",
"text": "EL. 41.798",
"x": 18443.1,
"y": 20270.5,
"pos": "D1 (18443, 20270)"
},
{
"field": "expected:G1.coping.z_top_left",
"file": "expected",
"from": 42456,
"to": 41502,
"grade": "B",
"text": "EL. 41.502",
"x": 4867.8,
"y": 20175.6,
"pos": "D1 (4868, 20176)"
},
{
"field": "expected:G1.footing.dy",
"file": "expected",
"from": 7800,
"to": 8800,
"grade": "B",
"text": "8.800",
"x": 29878.0,
"y": 3741.9,
"pos": "D1 (29878, 3742)"
},
{
"field": "expected:G2.p1_top_parts.2",
"file": "expected",
"from": 16343,
"to": 15337,
"grade": "B",
"text": "15.337",
"x": 29545.2,
"y": 29899.8,
"pos": "D3 (29545, 29900)"
},
{
"field": "expected:G3.b10_size.1",
"file": "expected",
"from": 7644,
"to": 8644,
"grade": "B",
"text": "8.644",
"x": 31096.3,
"y": 25219.8,
"pos": "D3 (31096, 25220)"
},
{
"field": "expected:G4.step_top.5",
"file": "expected",
"from": 42748,
"to": 41798,
"grade": "B",
"text": "EL. 41.798",
"x": 18443.1,
"y": 20270.5,
"pos": "D1 (18443, 20270)"
},
{
"field": "expected:G4.step_top.3",
"file": "expected",
"from": 42602,
"to": 41650,
"grade": "B",
"text": "EL. 41.650",
"x": 26179.8,
"y": 20323.6,
"pos": "D1 (26180, 20324)"
},
{
"field": "expected:G4.step_top.1",
"file": "expected",
"from": 42456,
"to": 41502,
"grade": "B",
"text": "EL. 41.502",
"x": 4867.8,
"y": 20175.6,
"pos": "D1 (4868, 20176)"
},
{
"field": "expected:G4.range.C10.2",
"file": "expected",
"from": 3000,
"to": 3002,
"grade": "B",
"text": "3.002",
"x": 7346.3,
"y": 25579.8,
"pos": "D3 (7346, 25580)"
},
{
"field": "expected:G4.range.C10.1",
"file": "expected",
"from": 3000,
"to": 3002,
"grade": "B",
"text": "3.002",
"x": 7346.3,
"y": 25579.8,
"pos": "D3 (7346, 25580)"
}
],
"why": ""
}
]
@@ -0,0 +1 @@
{"version": "1", "sources": ["d275fc3541eb2598c67563a366be893183f0a86063bf80fbad22bc4a41ad0694", "0aa03f2145935b1a2d91ac6f50ed8f37269ada03ec69c22fc8a94e6a3b0584e1", "f77980c5f8592d50be0b22c72b626154af1f492884ad2803e310771643e442b5"], "fields": {"params:lean_concrete.z_top": {"v": 26208, "hits": [{"text": "EL. 26.208", "x": 17398.3, "y": 7683.8, "layer": "CS-DIMT", "dwg": "D1", "kind": "EL"}, {"text": "EL. 26.208", "x": 24673.9, "y": 8775.6, "layer": "CS-DIMT", "dwg": "D1", "kind": "EL"}, {"text": "EL. 26.208", "x": 17398.3, "y": -27122.5, "layer": "CS-DIMT", "dwg": "D1", "kind": "EL"}], "shared": 2}, "params:lean_concrete.size_y": {"v": 8000, "hits": [{"text": "8.000", "x": 43290.6, "y": 25939.8, "layer": "CS-TABL-TEX2", "dwg": "D3", "kind": "m"}, {"text": "8.000", "x": 43290.6, "y": 27379.8, "layer": "CS-TABL-TEX2", "dwg": "D3", "kind": "m"}], "shared": 1}, "params:lean_concrete.size_x": {"v": 9550, "hits": [{"text": "9.550", "x": 43290.6, "y": 25579.8, "layer": "CS-TABL-TEX2", "dwg": "D3", "kind": "m"}, {"text": "9.550", "x": 43290.6, "y": 28819.8, "layer": "CS-TABL-TEX2", "dwg": "D3", "kind": "m"}], "shared": 1}, "params:footing.z_bottom": {"v": 26208, "hits": [{"text": "EL. 26.208", "x": 17398.3, "y": 7683.8, "layer": "CS-DIMT", "dwg": "D1", "kind": "EL"}, {"text": "EL. 26.208", "x": 24673.9, "y": 8775.6, "layer": "CS-DIMT", "dwg": "D1", "kind": "EL"}, {"text": "EL. 26.208", "x": 17398.3, "y": -27122.5, "layer": "CS-DIMT", "dwg": "D1", "kind": "EL"}], "shared": 2}, "params:footing.size_y": {"v": 7800, "hits": [{"text": "7.800", "x": 29878.0, "y": 3741.9, "layer": "CS-DIMT", "dwg": "D1", "kind": "m"}, {"text": "7.800", "x": 22191.2, "y": 16615.7, "layer": "CS-DIMT", "dwg": "D2", "kind": "m"}, {"text": "7.800", "x": 35236.8, "y": 16615.7, "layer": "CS-DIMT", "dwg": "D2", "kind": "m"}, {"text": "7.800", "x": 43290.6, "y": 24139.8, "layer": "CS-TABL-TEX2", "dwg": "D3", "kind": "m"}], "shared": 1}, "params:footing.size_x": {"v": 9350, "hits": [{"text": "9.350", "x": 11903.7, "y": 3741.9, "layer": "CS-DIMT", "dwg": "D1", "kind": "m"}, {"text": "9.350", "x": -22952.2, "y": -26049.0, "layer": "CS-DIMT", "dwg": "D1", "kind": "m"}, {"text": "9.350", "x": 28817.0, "y": 23201.3, "layer": "CS-DIMT", "dwg": "D2", "kind": "m"}, {"text": "9.350", "x": 43290.6, "y": 24499.8, "layer": "CS-TABL-TEX2", "dwg": "D3", "kind": "m"}], "shared": 1}, "params:column.height": {"v": 12003, "hits": [{"text": "12.003", "x": 23303.6, "y": 14008.8, "layer": "CS-DIMT", "dwg": "D1", "kind": "m"}, {"text": "12.003", "x": 3029.4, "y": 14008.8, "layer": "CS-DIMT", "dwg": "D1", "kind": "m"}, {"text": "12.003", "x": 20129.4, "y": 14008.8, "layer": "CS-DIMT", "dwg": "D1", "kind": "m"}, {"text": "12.003", "x": 79697.1, "y": -195286.1, "layer": "CC-TABL-TEX2", "dwg": "D1", "kind": "m"}, {"text": "12.003", "x": 23303.6, "y": -375231.7, "layer": "CS-DIMT", "dwg": "D1", "kind": "m"}, {"text": "12.003", "x": 3029.4, "y": -375231.7, "layer": "CS-DIMT", "dwg": "D1", "kind": "m"}], "shared": 1}, "params:coping.top_steps.4.z": {"v": 43698, "hits": [{"text": "EL. 43.698", "x": 18443.1, "y": 20261.8, "layer": "CS-DIMT", "dwg": "D1", "kind": "EL"}], "shared": 1}, "params:coping.top_steps.2.z": {"v": 43555, "hits": [{"text": "EL. 43.555", "x": 26179.8, "y": 20319.3, "layer": "CS-DIMT", "dwg": "D1", "kind": "EL"}], "shared": 1}, "params:coping.top_steps.0.z": {"v": 43411, "hits": [{"text": "EL. 43.411", "x": 4867.8, "y": 20175.6, "layer": "CS-DIMT", "dwg": "D1", "kind": "EL"}], "shared": 1}, "params:coping.flat_bottom_half_width": {"v": 1100, "hits": [{"text": "1.100", "x": 5846.3, "y": 21259.8, "layer": "CS-TABL-TEX2", "dwg": "D3", "kind": "m"}], "shared": 2}, "params:coping.length_bottom_tip_to_tip": {"v": 12400, "hits": [{"text": "12.400", "x": 11855.6, "y": 31231.1, "layer": "CS-DIMT", "dwg": "D1", "kind": "m"}, {"text": "12.400", "x": 11852.6, "y": 22820.8, "layer": "CS-DIMT", "dwg": "D1", "kind": "m"}, {"text": "12.400", "x": -14619.2, "y": 31231.1, "layer": "CS-DIMT", "dwg": "D1", "kind": "m"}, {"text": "12.400", "x": 11855.6, "y": -360258.3, "layer": "CS-DIMT", "dwg": "D1", "kind": "m"}, {"text": "12.400", "x": 11852.6, "y": -367938.0, "layer": "CS-DIMT", "dwg": "D1", "kind": "m"}], "shared": 1}, "params:bearing_seats.bearings.9.el_x": {"v": 43887, "hits": [{"text": "43.887", "x": 24938.3, "y": 3894.5, "layer": "CS-TABL-TEX2", "dwg": "D2", "kind": "m"}], "shared": 1}, "params:bearing_seats.bearings.8.el_x": {"v": 43816, "hits": [{"text": "43.816", "x": 24938.3, "y": 4374.5, "layer": "CS-TABL-TEX2", "dwg": "D2", "kind": "m"}], "shared": 1}, "params:bearing_seats.bearings.7.el_x": {"v": 43744, "hits": [{"text": "43.744", "x": 24938.3, "y": 4854.5, "layer": "CS-TABL-TEX2", "dwg": "D2", "kind": "m"}], "shared": 1}, "params:bearing_seats.bearings.6.el_x": {"v": 43672, "hits": [{"text": "43.672", "x": 24938.3, "y": 5334.5, "layer": "CS-TABL-TEX2", "dwg": "D2", "kind": "m"}], "shared": 1}, "params:bearing_seats.bearings.5.el_x": {"v": 43600, "hits": [{"textLine truncated
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,149 @@
{
"params:pier_id": {
"sha": "3cca16dda2aa6c0e",
"by": "심영표",
"at": "2026-10-19 17:02:23",
"why": "afdsaf",
"app_st": "n"
},
"params:rebar_marks": {
"sha": "6fed0c057ff785fd",
"by": "심영표",
"at": "2026-10-19 16:58:59",
"app_st": "g"
},
"params:display": {
"sha": "a6a77705597ca560",
"by": "심영표",
"at": "2026-10-12 17:05:53"
},
"expected:pier_id": {
"sha": "3cca16dda2aa6c0e",
"by": "심영표",
"at": "2026-10-19 17:01:24",
"why": "qweq",
"app_st": "n"
},
"expected:tol_mm": {
"sha": "d0ff5974b6aa52cf",
"by": "심영표",
"at": "2026-10-12 17:05:53"
},
"expected:rebar_palette": {
"sha": "c41013bf3e985022",
"by": "심영표",
"at": "2026-10-12 17:05:53"
},
"expected:planned_fail": {
"sha": "9521eb77ba9fee33",
"by": "심영표",
"at": "2026-10-19 17:44:20",
"why": "afda",
"app_st": "x"
},
"params:lean_concrete": {
"sha": "b4ba8859c10d63b2",
"by": "심영표",
"at": "2026-10-19 17:02:12",
"why": "afds",
"app_st": "n"
},
"params:footing": {
"sha": "8672c45ffd692902",
"by": "심영표",
"at": "2026-10-19 17:01:51",
"why": "afas",
"app_st": "n"
},
"params:column": {
"sha": "bc3ebcbf4344e2b9",
"by": "심영표",
"at": "2026-10-19 16:58:59",
"app_st": "g"
},
"params:coping": {
"sha": "2923d58df33f8701",
"by": "심영표",
"at": "2026-10-19 16:58:59",
"app_st": "g"
},
"params:piles": {
"sha": "37a78e374f656363",
"by": "심영표",
"at": "2026-10-19 17:02:33",
"why": "afsd",
"app_st": "n"
},
"params:bearing_seats": {
"sha": "4639dc0f2df3b49a",
"by": "심영표",
"at": "2026-10-19 16:58:59",
"app_st": "g"
},
"params:materials": {
"sha": "806da851d464e8d1",
"by": "심영표",
"at": "2026-10-12 17:05:53"
},
"expected:G1": {
"sha": "d8638a10c801ab79",
"by": "심영표",
"at": "2026-10-19 17:26:59",
"why": "asf",
"app_st": "g"
},
"params:column_rebar": {
"sha": "30ac9f79b7166d4f",
"by": "심영표",
"at": "2026-10-19 17:27:21",
"why": "asf",
"app_st": "g"
},
"expected:G2": {
"sha": "306311801be36301",
"by": "심영표",
"at": "2026-10-19 17:27:11",
"why": "afs",
"app_st": "g"
},
"params:footing_rebar": {
"sha": "f0cfc247d828c9da",
"by": "심영표",
"at": "2026-10-19 17:26:25",
"why": "sfas",
"app_st": "n"
},
"expected:G3": {
"sha": "5e4b474511671f98",
"by": "심영표",
"at": "2026-10-19 17:26:38",
"why": "asfd",
"app_st": "w"
},
"params:coping_rebar": {
"sha": "9a0301aacf33afd6",
"by": "심영표",
"at": "2026-10-19 17:44:10",
"why": "sdf",
"app_st": "n"
},
"expected:G4": {
"sha": "af8b4f7ad3d638fa",
"by": "심영표",
"at": "2026-10-19 17:26:47",
"why": "afsd",
"app_st": "w"
},
"params:sole_plates": {
"sha": "350f852c2040d9ed",
"by": "심영표",
"at": "2026-10-19 16:58:59",
"app_st": "g"
},
"expected:G5": {
"sha": "501ed2e3efde04dd",
"by": "심영표",
"at": "2026-10-19 16:58:59",
"app_st": "g"
}
}
@@ -0,0 +1,5 @@
{
"sha": "75d31d5a03e3d443",
"at": "2026-10-19 16:58:54",
"n": 10
}
@@ -0,0 +1,26 @@
[
{
"source": "C0050205-031-운곡교 교각도(1)(완도방향 P3).dwg",
"source_sha256": "0fdbafcd3e019da5c44faa53dd9ecf80772b35b26109cf4df86e327c826ebaf8",
"dxf": "C0050205-031-운곡교 교각도(1)(완도방향 P3).dxf",
"dxf_sha256": "61e97bb780b3a07e97c50983b547373df0ba4c7224e72f440fe15efe2a2de98b",
"engine": "ODA File Converter 27.1.0",
"label": "D1"
},
{
"source": "C0050205-032-운곡교 교각도(2)(완도방향 P3).dwg",
"source_sha256": "e00986b6b71efbfe2e460bb365481c600fdd930435c666c795fe3f4841d4e635",
"dxf": "C0050205-032-운곡교 교각도(2)(완도방향 P3).dxf",
"dxf_sha256": "0f5383133fcbab94c628c2da46a73055d8f45ba5809834c280e61728f3f7385f",
"engine": "ODA File Converter 27.1.0",
"label": "D2"
},
{
"source": "C0050205-033-운곡교 교각도(3)(완도방향 P3).dwg",
"source_sha256": "893ce984f03f6e6370c505d5dc9d0a5ce11447002b1f9eb1c002c3031f9a5a7c",
"dxf": "C0050205-033-운곡교 교각도(3)(완도방향 P3).dxf",
"dxf_sha256": "b42fc01ca165ad8910921f215d7563ca234df3af8762625dc934c66de05399e0",
"engine": "ODA File Converter 27.1.0",
"label": "D3"
}
]
@@ -0,0 +1 @@
[{"dwg": "D1", "layer": "CS-DIMT", "x": 43035.4, "y": 28287.3, "h": 150.0, "text": "137", "handle": "25B84"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 45797.9, "y": 28287.3, "h": 150.0, "text": "138", "handle": "25B85"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 46137.4, "y": 28238.7, "h": 150.0, "text": "(1~3단)", "handle": "25B86"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 45797.9, "y": 21291.0, "h": 150.0, "text": "138", "handle": "25B87"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43035.4, "y": 21291.0, "h": 150.0, "text": "137", "handle": "25B88"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 42641.9, "y": 21501.0, "h": 150.0, "text": "100", "handle": "25B89"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44314.7, "y": 20901.0, "h": 150.0, "text": "3.100", "handle": "25B8A"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43956.2, "y": 21501.0, "h": 150.0, "text": "21@125=2.625", "handle": "25B8B"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 46341.9, "y": 21501.0, "h": 150.0, "text": "100", "handle": "25B8C"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44314.7, "y": 29097.3, "h": 150.0, "text": "3.100", "handle": "25B8D"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 42641.9, "y": 28497.3, "h": 150.0, "text": "100", "handle": "25B8E"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 46341.9, "y": 28497.3, "h": 150.0, "text": "100", "handle": "25B8F"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43956.2, "y": 28497.3, "h": 150.0, "text": "21@125=2.625", "handle": "25B90"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43256.9, "y": 22101.0, "h": 150.0, "text": "580", "handle": "25B91"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 42641.9, "y": 22101.0, "h": 150.0, "text": "100", "handle": "25B92"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43836.9, "y": 22101.0, "h": 150.0, "text": "580", "handle": "25B93"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44416.9, "y": 22101.0, "h": 150.0, "text": "580", "handle": "25B94"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44996.9, "y": 22101.0, "h": 150.0, "text": "580", "handle": "25B95"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 45576.9, "y": 22101.0, "h": 150.0, "text": "580", "handle": "25B96"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 46266.9, "y": 22101.0, "h": 150.0, "text": "100", "handle": "25B97"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44314.7, "y": 7893.9, "h": 150.0, "text": "3.100", "handle": "25B98"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 42641.9, "y": 8493.9, "h": 150.0, "text": "100", "handle": "25B99"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43956.2, "y": 8493.9, "h": 150.0, "text": "21@125=2.625", "handle": "25B9A"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 46341.9, "y": 8493.9, "h": 150.0, "text": "100", "handle": "25B9B"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44314.7, "y": 18141.7, "h": 150.0, "text": "3.100", "handle": "25B9C"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43893.7, "y": 17541.7, "h": 150.0, "text": "10@250=2.500", "handle": "25B9D"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 46416.9, "y": 17541.7, "h": 150.0, "text": "100", "handle": "25B9E"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 42641.9, "y": 16941.7, "h": 150.0, "text": "100", "handle": "25B9F"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 42641.9, "y": 17541.7, "h": 150.0, "text": "100", "handle": "25BA0"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 46341.9, "y": 16941.7, "h": 150.0, "text": "100", "handle": "25BA1"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43956.2, "y": 16941.7, "h": 150.0, "text": "21@125=2.625", "handle": "25BA2"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43256.9, "y": 9093.9, "h": 150.0, "text": "580", "handle": "25BA3"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 42641.9, "y": 9093.9, "h": 150.0, "text": "100", "handle": "25BA4"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43836.9, "y": 9093.9, "h": 150.0, "text": "580", "handle": "25BA5"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44416.9, "y": 9093.9, "h": 150.0, "text": "580", "handle": "25BA6"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44996.9, "y": 9093.9, "h": 150.0, "text": "580", "handle": "25BA7"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 45576.9, "y": 9093.9, "h": 150.0, "text": "580", "handle": "25BA8"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 46266.9, "y": 9093.9, "h": 150.0, "text": "100", "handle": "25BA9"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 40095.3, "y": 10556.9, "h": 150.0, "text": "100", "handle": "25BAA"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 40095.3, "y": 13472.6, "h": 150.0, "text": "698", "handle": "25BAB"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 40095.3, "y": 11597.8, "h": 150.0, "text": "9@250=2.250", "handle": "25BAC"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 39495.3, "y": 12245.3, "h": 150.0, "text": "3.148", "handle": "25BAD"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 40095.3, "y": 14229.9, "h": 150.0, "text": "100", "handle": "25BAE"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43035.4, "y": 16731.7, "h": 150.0, "text": "137", "handle": "25BAF"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 45797.9, "y": 16731.7, "h": 150.0, "text": "138", "handle": "25BB0"}, {"dwg": "D1", "layer": "CS-DIMT", "xLine truncated
@@ -0,0 +1,864 @@
{
"_schema": "pier-T-expected/1",
"_note": "독립 기대값: 도면 치수 문자·표(D1~D3)에서 직접 옮긴 값. 생성용 params.json과 별도로 관리하며 검사기는 params를 읽지 않는다. 원출처: Code/교각모델링/verify_*.py (검증서 v0.1.05).",
"pier_id": "P3",
"tol_mm": 1.0,
"G1": {
"footing": {
"dx": 10350,
"dy": 8800,
"z0": 25175,
"thickness": 2200,
"src": "D1 '10.350' '7.800' 'EL. 25.123' '2.200'"
},
"lean": {
"margin": 100,
"thickness": 100,
"src": "D1 lean +100 each side, 100 thick"
},
"column": {
"d": 2000,
"height": 11127,
"src": "D1 단면 C-C '2.000', 정면도 '12.133'"
},
"coping": {
"dx": 12400,
"dy": 3100,
"z_top_left": 41502,
"rise_upper": 1500,
"rise_lower": 1500,
"z_top_right": 41798,
"z_top_center": 41650,
"flat_from_tip": 5100,
"end_inset": 200,
"radius": 12000,
"src": "D1 '12.400' '3.100' 'EL. 42.456' '1.500' x2 'EL. 42.748' 'EL. 42.602' '5.100' '200' 'R=12.000'"
},
"coping_outline": [
[
-1100,
38502
],
[
1100,
38502
],
[
6200,
40002
],
[
6000,
41798
],
[
3738,
41798
],
[
3738,
41724
],
[
1237,
41724
],
[
1237,
41650
],
[
-1263,
41650
],
[
-1263,
41576
],
[
-3764,
41576
],
[
-3764,
41502
],
[
-6000,
41502
],
[
-6200,
40002
]
],
"coping_outline_src": "D1 정면도 외형 from dims '200','2.219','3@2.502=7.507','2.274','200' and EL texts; intermediate step EL 42.529 / 42.675 from drawn risers 72.9 [derived]",
"dxf_arc_centres": {
"datum_x": 12159.4,
"datum_y": 16515.6,
"datum_el": 38502,
"left": [
5207.5,
6039.2
],
"right": [
19111.2,
6039.2
],
"src": "DXF ARC 20E8B / 20E89 centre; datum CS-CNTL 21539 / coping bottom line 20E87"
},
"piles": {
"nx": 6,
"ny": 5,
"pitch_x": 1750,
"pitch_y": 1800,
"edge": 800,
"d": 600,
"length": 25300,
"head_embedment": 100,
"src": "D1 '5@1.750=8.750' '4@1.550=6.200' '800' 'Φ600' 'L=25.9M'"
},
"seats": {
"table": {
"1": [
41747,
196,
50,
700,
640
],
"2": [
41821,
196,
50,
700,
640
],
"3": [
41895,
196,
50,
700,
790
],
"4": [
41969,
196,
50,
700,
640
],
"5": [
42043,
196,
50,
700,
640
],
"6": [
41723,
171,
50,
600,
510
],
"7": [
41797,
171,
50,
600,
510
],
"8": [
41871,
171,
50,
600,
650
],
"9": [
41945,
171,
50,
600,
510
],
"10": [
42019,
171,
50,
600,
510
]
},
"table_columns": [
"EL.'X'",
"h1",
"h2",
"A",
"B"
],
"girders": 5,
"step_top": {
"1": 41502,
"2": 41576,
"3": 41650,
"4": 41724,
"5": 41798
},
"step_x": {
"1": [
-6000,
-3764
],
"2": [
-3764,
-1263
],
"3": [
-1263,
1237
],
"4": [
1237,
3738
],
"5": [
3738,
6000
]
},
"row_y": {
"front": -700,
"rear": 600
},
"pitch_chain": [
3,
7502
],
"pedestal_plan": [
1250,
1200
],
"pad_margin": [
200,
100
],
"rear_first_from_tip": 1212,
"src": "D2 ELEVATION TABLE; D1 EL texts + drawn steps; S1 851/950; '3@2.502=7.507'; 대좌 2500x1200; '1.223'"
}
},
"G2": {
"schedule_L": {
"P1": 16371,
"P2": 15677,
"P3": 6436.0,
"P4": 5667.0,
"P5": 5667.0,
"P6": 2136
},
"schedule_n": {
"P1": 46,
"P2": 46,
"P3": 33,
"P4": 9,
"P5": 22,
"P6": 32
},
"dia": {
"P1": 32,
"P2": 32,
"P3": 19,
"P4": 29,
"P5": 29,
"P6": 16
},
"hoop_chain": {
"start": [
150,
1030
],
"groups": [
[
8,
120
],
[
22,
120
],
[
33,
300
]
]
},
"hoop_marks_by_zone": [
[
"P4",
9
],
[
"P5",
22
],
[
"P3",
33
]
],
"tie_chain": {
"start": [
150,
1030
],
"groups": [
[
7,
1800
]
]
},
"tie_offset": 22.5,
"r_outer": 870.5,
"r_inner": 825.5,
"r_hoop": 902,
"main_divisions": 46,
"bottom_above_footing": 300,
"p1_top_parts": [
300,
340,
15337
],
"no_fillet_marks": [
"P1",
"P2",
"P4",
"P5"
],
"src": "D3 L·수량·R·A (Ungok P2); D1 '150','1.030','8@120=960','22@120=2.640','37@300=11.100','8@1.800=14.400'; section radii (HITL H2 rule); tie offset = H29/2 + H16/2 (hoop P4 H29 label, P6 H16)"
},
"G3": {
"schedule": {
"B1": [
9000,
42
],
"B2": [
12500,
42
],
"B3": [
9000,
42
],
"B4": [
8600,
39
],
"B5": [
10550.0,
36
],
"B6": [
14050.0,
36
],
"B7": [
10550.0,
36
],
"B8": [
10150.0,
33
],
"B9": [
2155.0,
627
],
"B10": [
37684.0,
9
],
"B11": [
10350.0,
32
],
"B12": [
8800,
38
]
},
"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": [
-5075,
5075
],
"start": -4875,
"pitch": 125,
"n": 79
},
"Y_250": {
"ends": [
-5075,
5075
],
"start": -4875,
"pitch": 250,
"n": 40
},
"X_BOT": {
"ends": [
-4300,
4300
],
"start": -4125,
"pitch": 125,
"n": 67
},
"X_250": {
"ends": [
-4300,
4300
],
"start": -4125,
"pitch": 250,
"n": 34
}
},
"b10_levels": {
"start": 350,
"pitch": 200,
"n": 9
},
"b10_size": [
10198,
8644
],
"b9_grid": {
"x": {
"start": -4625,
"pitch": 250,
"n": 38
},
"y": {
"start": -4000,
"pitch": 250,
"n": 33
}
},
"b9_erec": [
150,
2100
],
"b9_a": 1995,
"b9_c": 64,
"mid_levels": [
550,
950,
1350,
1750
],
"src": "D3 L·수량 (P2); D1 '100','200','78@125=9.750' / '39@250=9.750' / '100','175','58@125=7.250' / '29@250'; F1 층 높이(작도점, P1과 같음); '150','9@200=1.800'; '450','37@250=9.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": 12082,
"C3": 12106,
"C4": 14490,
"C5": 12082,
"C6": 12106,
"C7": 13994,
"C8": 13994,
"C9": 8651.0,
"C10": 10319.0,
"C11": 8947.0,
"C12": 20513,
"C13": 28966.0,
"C14": 3600,
"C15": 2762.0,
"C16": 5601.0,
"S1": 3800,
"S2": 2500
},
"range": {
"C9": [
"b_sched",
2960,
1376
],
"C11": [
"b_sched",
2960,
1672
],
"C10": [
"b_sched",
3002,
3002
],
"C12": [
"a_sched",
12228,
3151
],
"C13": [
"a_sched",
12167,
12045
]
},
"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": 25,
"C4": 29,
"C5": 29,
"C6": 25,
"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": 41402,
"C4": 41402,
"C2": 41302,
"C5": 41302,
"C3": 41202,
"C6": 41202
},
"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": 38602,
"loop_z": {
"C12": {
"start": 38852,
"pitch": 250,
"n": 6
},
"C13": [
40352,
40602,
40852
]
},
"c15_top": 41698,
"c16_top": 41550,
"c14_levels": [
[
41179.5,
11
],
[
41279.5,
11
],
[
39102,
3
],
[
40102,
5
],
[
39602,
4
],
[
40602,
6
],
[
41533.4,
1
]
],
"s_per_girder": {
"S1": [
10,
50
],
"S2": [
21,
100
]
},
"step_top": {
"1": 41502,
"2": 41576,
"3": 41650,
"4": 41724,
"5": 41798
},
"src": "D3 (P2) 수량·L·a/b 범위; D1 A-A 사슬 '100','137','21@125','3000' / B-B '10@250'; 정면도 단 높이·스터럽 X·루프 EL; D2 '50','50'"
},
"G5": {
"el_x": {
"1": 41747,
"2": 41821,
"3": 41895,
"4": 41969,
"5": 42043,
"6": 41723,
"7": 41797,
"8": 41871,
"9": 41945,
"10": 42019
},
"S": {
"1": -1.91,
"2": -1.907,
"3": -1.905,
"4": -1.903,
"5": -1.901,
"6": -1.91,
"7": -1.907,
"8": -1.905,
"9": -1.903,
"10": -1.901
},
"W": {
"1": 740,
"2": 740,
"3": 890,
"4": 740,
"5": 740,
"6": 610,
"7": 610,
"8": 750,
"9": 610,
"10": 610
},
"L": {
"1": 800,
"2": 800,
"3": 800,
"4": 800,
"5": 800,
"6": 700,
"7": 700,
"8": 700,
"9": 700,
"10": 700
},
"T": 30,
"h3": 149,
"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)·색 = P1 사용자 지시 준용"
},
"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": "G4",
"item_prefix": "C9 original length vs L",
"reason": "작도 폭 채택(K1)",
"approved": "사용자 2026-10-07; P2 적용 사용자 확정 2026-10-12"
},
{
"gate": "G4",
"item_prefix": "C10 original length vs L",
"reason": "작도 폭 채택(K1)",
"approved": "사용자 2026-10-07; P2 적용 사용자 확정 2026-10-12"
},
{
"gate": "G4",
"item_prefix": "C11 original length vs L",
"reason": "작도 폭 채택(K1)",
"approved": "사용자 2026-10-07; P2 적용 사용자 확정 2026-10-12"
},
{
"gate": "G4",
"item_prefix": "C12 original length vs L",
"reason": "작도 폭 채택(C12·C13 drawn width)",
"approved": "사용자 2026-10-07; P2 적용 사용자 확정 2026-10-12"
},
{
"gate": "G4",
"item_prefix": "C13 original length vs L",
"reason": "작도 폭 채택(C12·C13 drawn width)",
"approved": "사용자 2026-10-07; P2 적용 사용자 확정 2026-10-12"
},
{
"gate": "G3",
"item": "B12 bar count vs schedule",
"reason": "작도 32본 채택 vs D3 38본 (P1 F2 규칙, P1도 28/34)",
"approved": "사용자 확정 2026-10-12 (P2, P1 F2 규칙 준용)"
},
{
"gate": "G3",
"item": "B9 bar count vs schedule",
"reason": "작도 551본(38×29 엇갈림) 채택 vs D3 493본(P1 값 그대로)",
"approved": "사용자 확정 2026-10-12 (P2, P1 F2 규칙 준용)"
},
{
"gate": "G4",
"item_prefix": "C13 schedule L reproduced by convention",
"reason": "재료표 P3 C13 L 28.966(총중량 260.694÷9본과 일치)이 규칙 (max+min)/2 = 29.346과 380 mm 다름 — 재료표 자체 불일치, 설계자 확인 대기",
"approved": "사용자 2026-10-19 (G4 승인 지시); 설계자 확인 전 임시 등록"
}
]
}
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,6 @@
{
"name": "운곡교P3",
"type": "T형",
"created": "2026-10-12 17:04:34",
"template": "운곡교p2"
}
@@ -0,0 +1,68 @@
{
"gate": "G1",
"checker": "g1_shape.py",
"verdict": "PASS",
"summary": {
"total": 171,
"passed": 171,
"failed": 0,
"volumes_m3": {
"lean": 8.647,
"footing": 200.376,
"column": 34.957,
"coping": 89.718
},
"pile_volume_each_m3": 7.153
},
"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": {
"ok": null,
"skipped": "일괄 실행(단일 세션) — 저장·재로드 안 함"
},
"unchanged": {
"ok": null,
"compared": 0,
"diffs": [],
"missing": [],
"against": null,
"skipped": "일괄 실행(단일 세션) — 앞 게이트 객체를 다시 만들지 않음"
},
"model": null,
"mode": "batch",
"secs": 8.3,
"session_secs": 156.9,
"inputs_sha": "3680b0bef089d780",
"job_id": "c08a0bd3aedb"
}
@@ -0,0 +1,15 @@
{
"id": "c08a0bd3aedb",
"pid": 11440,
"state": "완료",
"at": "2026-10-19 17:47:17",
"log": [
"[batch] one Rhino session: build G1..G5, check G1, G2, G3, G4, G5 (no per-gate save / reload)",
"[G1] PASS checks 171/171 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G2] PASS checks 42/42 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G3] PASS checks 72/73 (planned FAIL 1, unplanned 0) negative H/V True/True (batch)",
"[G4] PASS checks 110/116 (planned FAIL 6, unplanned 0) negative H/V True/True (batch)",
"[G5] PASS checks 183/183 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[batch] done in 157.1s, objects 3518, model C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\운곡교P3\\runs\\current\\G5.3dm"
]
}
@@ -0,0 +1,425 @@
{
"summary": {
"total": 42,
"passed": 42,
"failed": 0,
"min_cover": {
"P1": 113.5,
"P2": 158.5,
"P3": 93.5,
"P4": 100.4,
"P5": 83.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": 33,
"actual": 33,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 pipes closed & paired with centrelines",
"detail": "pipes 66 / centrelines 66",
"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": 32,
"actual": 32,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 pipes closed & paired with centrelines",
"detail": "pipes 32 / centrelines 32",
"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 33)",
"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": 1.0,
"diff": 1.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 curve length - L (record, fillets shorten hooks)",
"detail": "min 0.4 / max 0.4 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P4 curve length (+coupler b) vs L (no fillet)",
"expected": 0,
"actual": 0.433,
"diff": 0.433,
"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.4 / max 0.4 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P5 curve length (+coupler b) vs L (no fillet)",
"expected": 0,
"actual": 0.433,
"diff": 0.433,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 original length (+coupler b) vs schedule L (worst of 32)",
"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": 41152,
"actual": 41152.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": 41152,
"actual": 41152.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": 25475,
"actual": 25475.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 bottom EL",
"expected": 25475,
"actual": 25475.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 radius",
"expected": 902,
"actual": 902.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 radius",
"expected": 902,
"actual": 902.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "hoop level count 64",
"detail": "64",
"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 x33)",
"detail": "",
"result": "PASS"
},
{
"check": "C8",
"item": "tie levels vs chain + 22.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\": 100.4, \"P5\": 83.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,70 @@
{
"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": 100.4,
"P5": 83.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 64",
"hoop levels vs dim chain (worst)",
"hoop marks by zone (P4 x9, P5 x22, P3 x33)"
],
"detected": true
}
},
"reload": {
"ok": null,
"skipped": "일괄 실행(단일 세션) — 저장·재로드 안 함"
},
"unchanged": {
"ok": null,
"compared": 0,
"diffs": [],
"missing": [],
"against": null,
"skipped": "일괄 실행(단일 세션) — 앞 게이트 객체를 다시 만들지 않음"
},
"model": null,
"mode": "batch",
"secs": 39.9,
"session_secs": 156.9,
"inputs_sha": "3680b0bef089d780",
"job_id": "c08a0bd3aedb"
}
@@ -0,0 +1,15 @@
{
"id": "c08a0bd3aedb",
"pid": 11440,
"state": "완료",
"at": "2026-10-19 17:47:17",
"log": [
"[batch] one Rhino session: build G1..G5, check G1, G2, G3, G4, G5 (no per-gate save / reload)",
"[G1] PASS checks 171/171 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G2] PASS checks 42/42 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G3] PASS checks 72/73 (planned FAIL 1, unplanned 0) negative H/V True/True (batch)",
"[G4] PASS checks 110/116 (planned FAIL 6, unplanned 0) negative H/V True/True (batch)",
"[G5] PASS checks 183/183 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[batch] done in 157.1s, objects 3518, model C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\운곡교P3\\runs\\current\\G5.3dm"
]
}
@@ -0,0 +1,425 @@
{
"summary": {
"total": 42,
"passed": 41,
"failed": 1,
"min_cover": {
"P1": 113.5,
"P2": 153.5,
"P3": 93.5,
"P4": 100.4,
"P5": 83.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": 33,
"actual": 33,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 pipes closed & paired with centrelines",
"detail": "pipes 66 / centrelines 66",
"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": 32,
"actual": 32,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 pipes closed & paired with centrelines",
"detail": "pipes 32 / centrelines 32",
"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 33)",
"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": 1.0,
"diff": 1.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 curve length - L (record, fillets shorten hooks)",
"detail": "min 0.4 / max 0.4 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P4 curve length (+coupler b) vs L (no fillet)",
"expected": 0,
"actual": 0.433,
"diff": 0.433,
"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.4 / max 0.4 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P5 curve length (+coupler b) vs L (no fillet)",
"expected": 0,
"actual": 0.433,
"diff": 0.433,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 original length (+coupler b) vs schedule L (worst of 32)",
"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": 41152,
"actual": 41152.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": 41152,
"actual": 41152.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": 25475,
"actual": 25475.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 bottom EL",
"expected": 25475,
"actual": 25475.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 radius",
"expected": 902,
"actual": 902.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 radius",
"expected": 902,
"actual": 902.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "hoop level count 64",
"detail": "64",
"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 x33)",
"detail": "",
"result": "PASS"
},
{
"check": "C8",
"item": "tie levels vs chain + 22.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\": 100.4, \"P5\": 83.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": 100.4,
"P5": 83.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": 33,
"actual": 33,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 pipes closed & paired with centrelines",
"detail": "pipes 66 / centrelines 66",
"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": 32,
"actual": 32,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 pipes closed & paired with centrelines",
"detail": "pipes 32 / centrelines 32",
"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 33)",
"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": 1.0,
"diff": 1.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 curve length - L (record, fillets shorten hooks)",
"detail": "min 0.4 / max 0.4 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P4 curve length (+coupler b) vs L (no fillet)",
"expected": 0,
"actual": 0.433,
"diff": 0.433,
"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.4 / max 0.4 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P5 curve length (+coupler b) vs L (no fillet)",
"expected": 0,
"actual": 0.433,
"diff": 0.433,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 original length (+coupler b) vs schedule L (worst of 32)",
"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": 41152,
"actual": 41152.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": 41152,
"actual": 41152.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": 25475,
"actual": 25475.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 bottom EL",
"expected": 25475,
"actual": 25475.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 radius",
"expected": 902,
"actual": 902.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 radius",
"expected": 902,
"actual": 902.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "hoop level count 64",
"detail": "65",
"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 x33)",
"detail": "",
"result": "FAIL"
},
{
"check": "C8",
"item": "tie levels vs chain + 22.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\": 100.4, \"P5\": 83.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": 42,
"actual": 42,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B1 pipes closed & paired",
"detail": "42/42",
"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": 42,
"actual": 42,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 pipes closed & paired",
"detail": "42/42",
"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": 42,
"actual": 42,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 pipes closed & paired",
"detail": "42/42",
"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": 39,
"actual": 39,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B4 pipes closed & paired",
"detail": "39/39",
"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": 36,
"actual": 36,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 pipes closed & paired",
"detail": "36/36",
"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": 36,
"actual": 36,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B6 pipes closed & paired",
"detail": "36/36",
"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": 36,
"actual": 36,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 pipes closed & paired",
"detail": "36/36",
"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": 33,
"actual": 33,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B8 pipes closed & paired",
"detail": "33/33",
"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": 627,
"actual": 627,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 pipes closed & paired",
"detail": "627/627",
"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": 32,
"actual": 32,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B11 pipes closed & paired",
"detail": "32/32",
"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": 38,
"actual": 32,
"diff": -6,
"tol": 0,
"result": "FAIL"
},
{
"check": "C9",
"item": "B12 pipes closed & paired",
"detail": "32/32",
"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=81/81)",
"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=69/69)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 positions vs chain (worst, n=42/42)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B1 positions vs chain (worst, n=42/42)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 positions vs chain (worst, n=36/36)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 positions vs chain (worst, n=36/36)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 at ends and alternate from -4875",
"detail": "",
"result": "PASS"
},
{
"check": "C9",
"item": "B6 at ends and alternate from -4125",
"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": 10198,
"actual": 10198.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 centreline size Y",
"expected": 8644,
"actual": 8644.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 positions = checkerboard of 38x33 grid",
"detail": "627 / 627",
"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,79 @@
{
"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": "작도 32본 채택 vs D3 38본 (P1 F2 규칙, P1도 28/34)"
}
],
"negative": {
"negH": {
"move": {
"mark": "B4",
"d": [
5,
0,
0
]
},
"new_fails": [
"bottom Y-bars B2+B4 positions vs chain (worst, n=81/81)"
],
"detected": true
},
"negV": {
"move": {
"mark": "B9",
"d": [
0,
0,
5
]
},
"new_fails": [
"B9 bottom z (worst of all)"
],
"detected": true
}
},
"reload": {
"ok": null,
"skipped": "일괄 실행(단일 세션) — 저장·재로드 안 함"
},
"unchanged": {
"ok": null,
"compared": 0,
"diffs": [],
"missing": [],
"against": null,
"skipped": "일괄 실행(단일 세션) — 앞 게이트 객체를 다시 만들지 않음"
},
"model": null,
"mode": "batch",
"secs": 47.8,
"session_secs": 156.9,
"inputs_sha": "3680b0bef089d780",
"job_id": "c08a0bd3aedb"
}
@@ -0,0 +1,15 @@
{
"id": "c08a0bd3aedb",
"pid": 11440,
"state": "완료",
"at": "2026-10-19 17:47:17",
"log": [
"[batch] one Rhino session: build G1..G5, check G1, G2, G3, G4, G5 (no per-gate save / reload)",
"[G1] PASS checks 171/171 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G2] PASS checks 42/42 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G3] PASS checks 72/73 (planned FAIL 1, unplanned 0) negative H/V True/True (batch)",
"[G4] PASS checks 110/116 (planned FAIL 6, unplanned 0) negative H/V True/True (batch)",
"[G5] PASS checks 183/183 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[batch] done in 157.1s, objects 3518, model C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\운곡교P3\\runs\\current\\G5.3dm"
]
}
@@ -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": 42,
"actual": 42,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B1 pipes closed & paired",
"detail": "42/42",
"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": 42,
"actual": 42,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 pipes closed & paired",
"detail": "42/42",
"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": 42,
"actual": 42,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 pipes closed & paired",
"detail": "42/42",
"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": 39,
"actual": 39,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B4 pipes closed & paired",
"detail": "39/39",
"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": 36,
"actual": 36,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 pipes closed & paired",
"detail": "36/36",
"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": 36,
"actual": 36,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B6 pipes closed & paired",
"detail": "36/36",
"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": 36,
"actual": 36,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 pipes closed & paired",
"detail": "36/36",
"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": 33,
"actual": 33,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B8 pipes closed & paired",
"detail": "33/33",
"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": 627,
"actual": 627,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 pipes closed & paired",
"detail": "627/627",
"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": 32,
"actual": 32,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B11 pipes closed & paired",
"detail": "32/32",
"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": 38,
"actual": 32,
"diff": -6,
"tol": 0,
"result": "FAIL"
},
{
"check": "C9",
"item": "B12 pipes closed & paired",
"detail": "32/32",
"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=81/81)",
"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=69/69)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 positions vs chain (worst, n=42/42)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B1 positions vs chain (worst, n=42/42)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 positions vs chain (worst, n=36/36)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 positions vs chain (worst, n=36/36)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 at ends and alternate from -4875",
"detail": "",
"result": "PASS"
},
{
"check": "C9",
"item": "B6 at ends and alternate from -4125",
"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": 10198,
"actual": 10198.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 centreline size Y",
"expected": 8644,
"actual": 8644.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 positions = checkerboard of 38x33 grid",
"detail": "627 / 627",
"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": 42,
"actual": 42,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B1 pipes closed & paired",
"detail": "42/42",
"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": 42,
"actual": 42,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 pipes closed & paired",
"detail": "42/42",
"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": 42,
"actual": 42,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 pipes closed & paired",
"detail": "42/42",
"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": 39,
"actual": 39,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B4 pipes closed & paired",
"detail": "39/39",
"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": 36,
"actual": 36,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 pipes closed & paired",
"detail": "36/36",
"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": 36,
"actual": 36,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B6 pipes closed & paired",
"detail": "36/36",
"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": 36,
"actual": 36,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 pipes closed & paired",
"detail": "36/36",
"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": 33,
"actual": 33,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B8 pipes closed & paired",
"detail": "33/33",
"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": 627,
"actual": 627,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 pipes closed & paired",
"detail": "627/627",
"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": 32,
"actual": 32,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B11 pipes closed & paired",
"detail": "32/32",
"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": 38,
"actual": 32,
"diff": -6,
"tol": 0,
"result": "FAIL"
},
{
"check": "C9",
"item": "B12 pipes closed & paired",
"detail": "32/32",
"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=81/81)",
"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=69/69)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 positions vs chain (worst, n=42/42)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B1 positions vs chain (worst, n=42/42)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 positions vs chain (worst, n=36/36)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 positions vs chain (worst, n=36/36)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 at ends and alternate from -4875",
"detail": "",
"result": "PASS"
},
{
"check": "C9",
"item": "B6 at ends and alternate from -4125",
"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": 10198,
"actual": 10198.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 centreline size Y",
"expected": 8644,
"actual": 8644.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 positions = checkerboard of 38x33 grid",
"detail": "627 / 627",
"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"
}
]
}
@@ -0,0 +1,106 @@
{
"gate": "G4",
"checker": "g4_coping_rebar.py",
"verdict": "PASS",
"summary": {
"total": 116,
"passed": 110,
"failed": 6,
"cover": {
"C1": 85.3,
"C2": 85.5,
"C3": 87.3,
"C4": 85.3,
"C5": 85.5,
"C6": 87.3,
"C7": 84.4,
"C8": 84.4,
"C9": 87.5,
"C10": 87.5,
"C11": 87.5,
"C12": 87.4,
"C13": 87.4,
"C14": 90.5,
"C15": 90.5,
"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 schedule L reproduced by convention (max+min)/2",
"reason": "재료표 P3 C13 L 28.966(총중량 260.694÷9본과 일치)이 규칙 (max+min)/2 = 29.346과 380 mm 다름 — 재료표 자체 불일치, 설계자 확인 대기"
},
{
"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": {
"ok": null,
"skipped": "일괄 실행(단일 세션) — 저장·재로드 안 함"
},
"unchanged": {
"ok": null,
"compared": 0,
"diffs": [],
"missing": [],
"against": null,
"skipped": "일괄 실행(단일 세션) — 앞 게이트 객체를 다시 만들지 않음"
},
"model": null,
"mode": "batch",
"secs": 48.4,
"session_secs": 156.9,
"inputs_sha": "3680b0bef089d780",
"job_id": "c08a0bd3aedb"
}
@@ -0,0 +1,15 @@
{
"id": "c08a0bd3aedb",
"pid": 11440,
"state": "완료",
"at": "2026-10-19 17:47:17",
"log": [
"[batch] one Rhino session: build G1..G5, check G1, G2, G3, G4, G5 (no per-gate save / reload)",
"[G1] PASS checks 171/171 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G2] PASS checks 42/42 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G3] PASS checks 72/73 (planned FAIL 1, unplanned 0) negative H/V True/True (batch)",
"[G4] PASS checks 110/116 (planned FAIL 6, unplanned 0) negative H/V True/True (batch)",
"[G5] PASS checks 183/183 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[batch] done in 157.1s, objects 3518, model C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\운곡교P3\\runs\\current\\G5.3dm"
]
}
@@ -0,0 +1,60 @@
{
"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": {
"ok": null,
"skipped": "일괄 실행(단일 세션) — 저장·재로드 안 함"
},
"unchanged": {
"ok": null,
"compared": 0,
"diffs": [],
"missing": [],
"against": null,
"skipped": "일괄 실행(단일 세션) — 앞 게이트 객체를 다시 만들지 않음"
},
"model": "C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\운곡교P3\\runs\\current\\G5.3dm",
"mode": "batch",
"secs": 0.7,
"session_secs": 156.9,
"inputs_sha": "3680b0bef089d780",
"job_id": "c08a0bd3aedb"
}
@@ -0,0 +1,15 @@
{
"id": "c08a0bd3aedb",
"pid": 11440,
"state": "완료",
"at": "2026-10-19 17:47:17",
"log": [
"[batch] one Rhino session: build G1..G5, check G1, G2, G3, G4, G5 (no per-gate save / reload)",
"[G1] PASS checks 171/171 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G2] PASS checks 42/42 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G3] PASS checks 72/73 (planned FAIL 1, unplanned 0) negative H/V True/True (batch)",
"[G4] PASS checks 110/116 (planned FAIL 6, unplanned 0) negative H/V True/True (batch)",
"[G5] PASS checks 183/183 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[batch] done in 157.1s, objects 3518, model C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\운곡교P3\\runs\\current\\G5.3dm"
]
}
@@ -0,0 +1,37 @@
{
"G1": {
"decision": "승인",
"by": "심영표",
"note": "일괄 실행 자동 승인",
"at": "2026-10-19 17:47:17",
"inputs_sha": "3680b0bef089d780"
},
"G2": {
"decision": "승인",
"by": "심영표",
"note": "일괄 실행 자동 승인",
"at": "2026-10-19 17:47:17",
"inputs_sha": "3680b0bef089d780"
},
"G3": {
"decision": "승인",
"by": "심영표",
"note": "일괄 실행 자동 승인",
"at": "2026-10-19 17:47:17",
"inputs_sha": "3680b0bef089d780"
},
"G4": {
"decision": "승인",
"by": "심영표",
"note": "일괄 실행 자동 승인",
"at": "2026-10-19 17:47:17",
"inputs_sha": "3680b0bef089d780"
},
"G5": {
"decision": "승인",
"by": "심영표",
"note": "일괄 실행 자동 승인",
"at": "2026-10-19 17:47:17",
"inputs_sha": "3680b0bef089d780"
}
}
@@ -0,0 +1,21 @@
{
"state": "완료",
"by": "심영표",
"pid": 11440,
"at": "2026-10-19 17:47:17",
"log": [
"G1~G5 단일 세션 실행 (게이트 검사·음성 시험만, 중간 저장·재로드 없음)",
"[batch] one Rhino session: build G1..G5, check G1, G2, G3, G4, G5 (no per-gate save / reload)",
"[G1] PASS checks 171/171 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G2] PASS checks 42/42 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G3] PASS checks 72/73 (planned FAIL 1, unplanned 0) negative H/V True/True (batch)",
"[G4] PASS checks 110/116 (planned FAIL 6, unplanned 0) negative H/V True/True (batch)",
"[G5] PASS checks 183/183 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[batch] done in 157.1s, objects 3518, model C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\운곡교P3\\runs\\current\\G5.3dm",
"G1 PASS 171/171 (계획 FAIL 0) → 승인",
"G2 PASS 42/42 (계획 FAIL 0) → 승인",
"G3 PASS 72/73 (계획 FAIL 1) → 승인",
"G4 PASS 110/116 (계획 FAIL 6) → 승인",
"G5 PASS 183/183 (계획 FAIL 0) → 승인"
]
}
@@ -0,0 +1,11 @@
{
"chapters_missing": [],
"vocab_bad": [],
"finding_rows": 7,
"finding_rows_without_source": 0,
"schedule_rows": 37,
"schedule_marks": 37,
"gate_rows": 5,
"schedule_unread": false,
"ok": true
}
@@ -0,0 +1,251 @@
# 운곡교P3 교각 모델링 검토보고서 (초안)
> 앱이 게이트 결과·도면 표·승인 기록으로 자동 작성한 **초안**입니다. '오류'·'불일치' 판정과 3~5장의 서술은 담당자가 확인·확정해야 합니다. 작성일 2026-10-12 · 작성 심영표.
## 1. 개요
- 교각: 운곡교P3 (T형) · 좌표: 로컬(교각 중심 원점, X 교축직각, Y 교축, Z = EL×1000, mm) · 산출: .3dm
- 게이트 진행: 5/5 실행, **전 게이트 PASS·승인**
### 1.1 입력 도면
| 구분 | DWG | SHA-256(앞 16자) |
| :--- | :--- | :--- |
| D1 | C0050205-031-운곡교 교각도(1)(완도방향 P3).dwg | 0fdbafcd3e019da5 |
| D2 | C0050205-032-운곡교 교각도(2)(완도방향 P3).dwg | e00986b6b71efbfe |
| D3 | C0050205-033-운곡교 교각도(3)(완도방향 P3).dwg | 893ce984f03f6e63 |
### 1.2 게이트 결과
| 게이트 | 내용 | 판정 | 검사 PASS | 승인 | 의견 |
| :--- | :--- | :--- | :--- | :--- | :--- |
| G1 | 형상(콘크리트·말뚝·받침대좌·패드) | PASS | 171/171 | 승인 심영표 2026-10-12 17:17:38 | 일괄 실행 자동 승인 |
| G2 | 기둥 철근 | PASS | 42/42 | 승인 심영표 2026-10-12 17:18:48 | 일괄 실행 자동 승인 |
| G3 | 확대기초 철근 | PASS | 71/73 | 승인 심영표 2026-10-12 17:20:01 | 일괄 실행 자동 승인 |
| G4 | 코핑 철근 | PASS | 111/116 | 승인 심영표 2026-10-12 17:21:23 | 일괄 실행 자동 승인 |
| G5 | 교량받침·솔플레이트 | PASS | 183/183 | 승인 심영표 2026-10-12 17:22:01 | 일괄 실행 자동 승인 |
## 2. 도면 오류·불일치
자동 등재 기준: 승인된 계획 FAIL → '불일치', 계획되지 않은 FAIL과 도면 표 값·입력값 차이 → '확인 필요'.
| 판정 | 게이트 | 항목 | 내용 | 근거 |
| :--- | :--- | :--- | :--- | :--- |
| 불일치 | G3 | B9 bar count vs schedule | 작도 551본(38×29 엇갈림) 채택 vs D3 493본(P1 값 그대로) | 예외 승인: 사용자 확정 2026-10-12 (P2, P1 F2 규칙 준용) |
| 불일치 | G3 | B12 bar count vs schedule | 작도 32본 채택 vs D3 38본 (P1 F2 규칙, P1도 28/34) | 예외 승인: 사용자 확정 2026-10-12 (P2, P1 F2 규칙 준용) |
| 불일치 | G4 | C9 original length vs L (drawn widths ['1160.0', '1740.0'], K1 decision) | 작도 폭 채택(K1) | 예외 승인: 사용자 2026-10-07; P2 적용 사용자 확정 2026-10-12 |
| 불일치 | G4 | C10 original length vs L (drawn widths ['1160.0', '1740.0'], K1 decision) | 작도 폭 채택(K1) | 예외 승인: 사용자 2026-10-07; P2 적용 사용자 확정 2026-10-12 |
| 불일치 | G4 | C11 original length vs L (drawn widths ['1160.0', '1740.0'], K1 decision) | 작도 폭 채택(K1) | 예외 승인: 사용자 2026-10-07; P2 적용 사용자 확정 2026-10-12 |
| 불일치 | G4 | C12 original length vs L (drawn widths ['1106.0', '1686.0'], K1 decision) | 작도 폭 채택(C12·C13 drawn width) | 예외 승인: 사용자 2026-10-07; P2 적용 사용자 확정 2026-10-12 |
| 불일치 | G4 | C13 original length vs L (drawn widths ['1106.0', '1686.0'], K1 decision) | 작도 폭 채택(C12·C13 drawn width) | 예외 승인: 사용자 2026-10-07; P2 적용 사용자 확정 2026-10-12 |
| 확인 필요 | - | expected.G5.el_x.1 | 도면 표 값 41747 ≠ 입력값 42686 | D2 ELEVATION TABLE NO.1 EL.'X' 41.747 |
| 확인 필요 | - | expected.G1.seats.table.1 | 도면 표 값 [41747, 196, 50, 700, 640] ≠ 입력값 [42686, 180, 50, 700, 540] | D2 ELEVATION TABLE NO.1 EL.'X', h1, h2, A, B |
| 확인 필요 | - | expected.G5.h3 | 도면 표 값 149 ≠ 입력값 165 | D2 ELEVATION TABLE NO.1 h3 |
| 확인 필요 | - | expected.G5.el_x.2 | 도면 표 값 41821 ≠ 입력값 42759 | D2 ELEVATION TABLE NO.2 EL.'X' 41.821 |
| 확인 필요 | - | expected.G1.seats.table.2 | 도면 표 값 [41821, 196, 50, 700, 640] ≠ 입력값 [42759, 180, 50, 700, 540] | D2 ELEVATION TABLE NO.2 EL.'X', h1, h2, A, B |
| 확인 필요 | - | expected.G5.h3 | 도면 표 값 149 ≠ 입력값 165 | D2 ELEVATION TABLE NO.2 h3 |
| 확인 필요 | - | expected.G5.el_x.3 | 도면 표 값 41895 ≠ 입력값 42832 | D2 ELEVATION TABLE NO.3 EL.'X' 41.895 |
| 확인 필요 | - | expected.G1.seats.table.3 | 도면 표 값 [41895, 196, 50, 700, 790] ≠ 입력값 [42832, 180, 50, 700, 650] | D2 ELEVATION TABLE NO.3 EL.'X', h1, h2, A, B |
| 확인 필요 | - | expected.G5.h3 | 도면 표 값 149 ≠ 입력값 165 | D2 ELEVATION TABLE NO.3 h3 |
| 확인 필요 | - | expected.G5.el_x.4 | 도면 표 값 41969 ≠ 입력값 42905 | D2 ELEVATION TABLE NO.4 EL.'X' 41.969 |
| 확인 필요 | - | expected.G1.seats.table.4 | 도면 표 값 [41969, 196, 50, 700, 640] ≠ 입력값 [42905, 180, 50, 700, 540] | D2 ELEVATION TABLE NO.4 EL.'X', h1, h2, A, B |
| 확인 필요 | - | expected.G5.h3 | 도면 표 값 149 ≠ 입력값 165 | D2 ELEVATION TABLE NO.4 h3 |
| 확인 필요 | - | expected.G5.el_x.5 | 도면 표 값 42043 ≠ 입력값 42978 | D2 ELEVATION TABLE NO.5 EL.'X' 42.043 |
| 확인 필요 | - | expected.G1.seats.table.5 | 도면 표 값 [42043, 196, 50, 700, 640] ≠ 입력값 [42978, 180, 50, 700, 540] | D2 ELEVATION TABLE NO.5 EL.'X', h1, h2, A, B |
| 확인 필요 | - | expected.G5.h3 | 도면 표 값 149 ≠ 입력값 165 | D2 ELEVATION TABLE NO.5 h3 |
| 확인 필요 | - | expected.G5.el_x.6 | 도면 표 값 41723 ≠ 입력값 42661 | D2 ELEVATION TABLE NO.6 EL.'X' 41.723 |
| 확인 필요 | - | expected.G1.seats.table.6 | 도면 표 값 [41723, 171, 50, 600, 510] ≠ 입력값 [42661, 155, 50, 700, 540] | D2 ELEVATION TABLE NO.6 EL.'X', h1, h2, A, B |
| 확인 필요 | - | expected.G5.h3 | 도면 표 값 149 ≠ 입력값 165 | D2 ELEVATION TABLE NO.6 h3 |
| 확인 필요 | - | expected.G5.el_x.7 | 도면 표 값 41797 ≠ 입력값 42734 | D2 ELEVATION TABLE NO.7 EL.'X' 41.797 |
| 확인 필요 | - | expected.G1.seats.table.7 | 도면 표 값 [41797, 171, 50, 600, 510] ≠ 입력값 [42734, 155, 50, 700, 540] | D2 ELEVATION TABLE NO.7 EL.'X', h1, h2, A, B |
| 확인 필요 | - | expected.G5.h3 | 도면 표 값 149 ≠ 입력값 165 | D2 ELEVATION TABLE NO.7 h3 |
| 확인 필요 | - | expected.G5.el_x.8 | 도면 표 값 41871 ≠ 입력값 42807 | D2 ELEVATION TABLE NO.8 EL.'X' 41.871 |
| 확인 필요 | - | expected.G1.seats.table.8 | 도면 표 값 [41871, 171, 50, 600, 650] ≠ 입력값 [42807, 155, 50, 700, 650] | D2 ELEVATION TABLE NO.8 EL.'X', h1, h2, A, B |
| 확인 필요 | - | expected.G5.h3 | 도면 표 값 149 ≠ 입력값 165 | D2 ELEVATION TABLE NO.8 h3 |
| 확인 필요 | - | expected.G5.el_x.9 | 도면 표 값 41945 ≠ 입력값 42880 | D2 ELEVATION TABLE NO.9 EL.'X' 41.945 |
| 확인 필요 | - | expected.G1.seats.table.9 | 도면 표 값 [41945, 171, 50, 600, 510] ≠ 입력값 [42880, 155, 50, 700, 540] | D2 ELEVATION TABLE NO.9 EL.'X', h1, h2, A, B |
| 확인 필요 | - | expected.G5.h3 | 도면 표 값 149 ≠ 입력값 165 | D2 ELEVATION TABLE NO.9 h3 |
| 확인 필요 | - | expected.G5.el_x.10 | 도면 표 값 42019 ≠ 입력값 42953 | D2 ELEVATION TABLE NO.10 EL.'X' 42.019 |
| 확인 필요 | - | expected.G1.seats.table.10 | 도면 표 값 [42019, 171, 50, 600, 510] ≠ 입력값 [42953, 155, 50, 700, 540] | D2 ELEVATION TABLE NO.10 EL.'X', h1, h2, A, B |
| 확인 필요 | - | expected.G5.h3 | 도면 표 값 149 ≠ 입력값 165 | D2 ELEVATION TABLE NO.10 h3 |
| 확인 필요 | - | expected.G5.W.1 | 도면 표 값 740 ≠ 입력값 640 | D2 솔플레이트 상세 TABLE NO.1 W |
| 확인 필요 | - | expected.G5.W.2 | 도면 표 값 740 ≠ 입력값 640 | D2 솔플레이트 상세 TABLE NO.2 W |
| 확인 필요 | - | expected.G5.W.3 | 도면 표 값 890 ≠ 입력값 750 | D2 솔플레이트 상세 TABLE NO.3 W |
| 확인 필요 | - | expected.G5.W.4 | 도면 표 값 740 ≠ 입력값 640 | D2 솔플레이트 상세 TABLE NO.4 W |
| 확인 필요 | - | expected.G5.W.5 | 도면 표 값 740 ≠ 입력값 640 | D2 솔플레이트 상세 TABLE NO.5 W |
| 확인 필요 | - | expected.G5.W.6 | 도면 표 값 610 ≠ 입력값 640 | D2 솔플레이트 상세 TABLE NO.6 W |
| 확인 필요 | - | expected.G5.L | 도면 표 값 700 ≠ 입력값 800 | D2 솔플레이트 상세 TABLE NO.6 L |
| 확인 필요 | - | expected.G5.W.7 | 도면 표 값 610 ≠ 입력값 640 | D2 솔플레이트 상세 TABLE NO.7 W |
| 확인 필요 | - | expected.G5.L | 도면 표 값 700 ≠ 입력값 800 | D2 솔플레이트 상세 TABLE NO.7 L |
| 확인 필요 | - | expected.G5.L | 도면 표 값 700 ≠ 입력값 800 | D2 솔플레이트 상세 TABLE NO.8 L |
| 확인 필요 | - | expected.G5.W.9 | 도면 표 값 610 ≠ 입력값 640 | D2 솔플레이트 상세 TABLE NO.9 W |
| 확인 필요 | - | expected.G5.L | 도면 표 값 700 ≠ 입력값 800 | D2 솔플레이트 상세 TABLE NO.9 L |
| 확인 필요 | - | expected.G5.W.10 | 도면 표 값 610 ≠ 입력값 640 | D2 솔플레이트 상세 TABLE NO.10 W |
| 확인 필요 | - | expected.G5.L | 도면 표 값 700 ≠ 입력값 800 | D2 솔플레이트 상세 TABLE NO.10 L |
| 확인 필요 | - | expected.G2.schedule_L.P1 | 도면 표 값 16371.0 ≠ 입력값 17377 | D3 철근재료표 (SD500) P1 |
| 확인 필요 | - | expected.G2.schedule_L.P2 | 도면 표 값 15677.0 ≠ 입력값 16683 | D3 철근재료표 (SD500) P2 |
| 확인 필요 | - | expected.G3.schedule.B5 | 도면 표 값 [10550.0, 36] ≠ 입력값 [10550, 32] | D3 철근재료표 (SD500) B5 |
| 확인 필요 | - | expected.G3.schedule.B6 | 도면 표 값 [14050.0, 36] ≠ 입력값 [14050, 32] | D3 철근재료표 (SD500) B6 |
| 확인 필요 | - | expected.G3.schedule.B8 | 도면 표 값 [10150.0, 33] ≠ 입력값 [10150, 29] | D3 철근재료표 (SD500) B8 |
| 확인 필요 | - | expected.G3.schedule.B1 | 도면 표 값 [9000.0, 42] ≠ 입력값 [8000, 42] | D3 철근재료표 (SD500) B1 |
| 확인 필요 | - | params.rebar_marks.B1 | 도면 표 값 {"dia": "S25", "shape": "XII"} ≠ 입력값 {"dia": "S25", "shape": "III"} | D3 철근재료표 (SD500) B1 |
| 확인 필요 | - | expected.G3.schedule.B2 | 도면 표 값 [12500.0, 42] ≠ 입력값 [11500, 42] | D3 철근재료표 (SD500) B2 |
| 확인 필요 | - | expected.G3.schedule.B4 | 도면 표 값 [8600.0, 39] ≠ 입력값 [7600, 39] | D3 철근재료표 (SD500) B4 |
| 확인 필요 | - | params.rebar_marks.B4 | 도면 표 값 {"dia": "S25", "shape": "XVI"} ≠ 입력값 {"dia": "S25", "shape": "I"} | D3 철근재료표 (SD500) B4 |
| 확인 필요 | - | expected.G3.schedule.B3 | 도면 표 값 [9000.0, 42] ≠ 입력값 [8000, 42] | D3 철근재료표 (SD500) B3 |
| 확인 필요 | - | params.rebar_marks.B3 | 도면 표 값 {"dia": "S19", "shape": "XII"} ≠ 입력값 {"dia": "S19", "shape": "III"} | D3 철근재료표 (SD500) B3 |
| 확인 필요 | - | expected.G3.schedule.B7 | 도면 표 값 [10550.0, 36] ≠ 입력값 [10550, 32] | D3 철근재료표 (SD500) B7 |
| 확인 필요 | - | expected.G3.schedule.B10 | 도면 표 값 [37684.0, 9] ≠ 입력값 [35684, 9] | D3 철근재료표 (SD500) B10 |
| 확인 필요 | - | expected.G3.schedule.B11 | 도면 표 값 [10350.0, 32] ≠ 입력값 [10350, 28] | D3 철근재료표 (SD500) B11 |
| 확인 필요 | - | expected.G3.schedule.B12 | 도면 표 값 [8800.0, 38] ≠ 입력값 [7800, 38] | D3 철근재료표 (SD500) B12 |
| 확인 필요 | - | params.rebar_marks.B12 | 도면 표 값 {"dia": "S16", "shape": "XII"} ≠ 입력값 {"dia": "S16", "shape": "III"} | D3 철근재료표 (SD500) B12 |
| 확인 필요 | - | expected.G2.schedule_L.P4 | 도면 표 값 5667.0 ≠ 입력값 5680 | D3 철근재료표 (SD400) P4 |
| 확인 필요 | - | expected.G2.schedule_L.P5 | 도면 표 값 5667.0 ≠ 입력값 5680 | D3 철근재료표 (SD400) P5 |
| 확인 필요 | - | expected.G4.L.C9 | 도면 표 값 8651.0 ≠ 입력값 8649 | D3 철근재료표 (SD400) C9 |
| 확인 필요 | - | expected.G4.L.C10 | 도면 표 값 10319.0 ≠ 입력값 10314 | D3 철근재료표 (SD400) C10 |
| 확인 필요 | - | expected.G4.L.C11 | 도면 표 값 8947.0 ≠ 입력값 8941 | D3 철근재료표 (SD400) C11 |
| 확인 필요 | - | expected.G4.L.C13 | 도면 표 값 28966.0 ≠ 입력값 29345 | D3 철근재료표 (SD400) C13 |
| 확인 필요 | - | expected.G4.L.C15 | 도면 표 값 2762.0 ≠ 입력값 2774 | D3 철근재료표 (SD400) C15 |
| 확인 필요 | - | expected.G4.L.C16 | 도면 표 값 5601.0 ≠ 입력값 5605 | D3 철근재료표 (SD400) C16 |
| 확인 필요 | - | expected.G2.schedule_L.P3 | 도면 표 값 6436.0 ≠ 입력값 6449 | D3 철근재료표 (SD400) P3 |
| 확인 필요 | - | expected.G2.schedule_n.P3 | 도면 표 값 33 ≠ 입력값 37 | D3 철근재료표 (SD400) P3 |
| 확인 필요 | - | expected.G3.schedule.B9 | 도면 표 값 [2155.0, 627] ≠ 입력값 [2155, 493] | D3 철근재료표 (SD400) B9 |
| 확인 필요 | - | expected.G2.schedule_n.P6 | 도면 표 값 32 ≠ 입력값 36 | D3 철근재료표 (SD400) P6 |
## 3. 개선방안
[담당자 작성] 2장 항목별로 도면 수정·설계자 확인 방안을 적습니다.
## 4. 추가되어야 할 사항
[담당자 작성] 도면에 없어 추정·가정으로 모델링한 사항(입력 묶음의 `[추론]` 표기)을 정리합니다.
- 자동 확인: `[추론]` 표기가 있는 입력 묶음 — coping_rebar
## 5. 누락사항
[담당자 작성] 도면에서 빠진 치수·표·상세를 적습니다.
- 자동 확인: 재료표에 있으나 모델 대상이 아닌 마크 — UA1 (범위 결정 확인)
## 6. 철근재료표 (원본 vs 모델)
원본 = 도면 재료표 판독값(동일 기호 " 해석 포함), 모델 = 게이트 검사의 본수 실측값.
| 마크 | 형식 | 직경 | 재료표 수량 | 재료표 L(mm) | 모델 본수 | 대조 | 근거 |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| P1 | XIV | S32 | 46 | 16371 | 46 | 일치 | D3 철근재료표 (SD500) P1 |
| P2 | XVI | S32 | 46 | 15677 | 46 | 일치 | D3 철근재료표 (SD500) P2 |
| B5 | XII | S29 | 36 | 10550 | 32 | 불일치 | D3 철근재료표 (SD500) B5 |
| B6 | XII | S29 | 36 | 14050 | 32 | 불일치 | D3 철근재료표 (SD500) B6 |
| B8 | XVI | S29 | 33 | 10150 | 29 | 불일치 | D3 철근재료표 (SD500) B8 |
| B1 | XII | S25 | 42 | 9000 | 42 | 일치 | D3 철근재료표 (SD500) B1 |
| B2 | XII | S25 | 42 | 12500 | 42 | 일치 | D3 철근재료표 (SD500) B2 |
| B4 | XVI | S25 | 39 | 8600 | 39 | 일치 | D3 철근재료표 (SD500) B4 |
| B3 | XII | S19 | 42 | 9000 | 42 | 일치 | D3 철근재료표 (SD500) B3 |
| B7 | XII | S19 | 36 | 10550 | 32 | 불일치 | D3 철근재료표 (SD500) B7 |
| B10 | XIII | S19 | 9 | 37684 | 9 | 일치 | D3 철근재료표 (SD500) B10 |
| B11 | XII | S16 | 32 | 10350 | 28 | 불일치 | D3 철근재료표 (SD500) B11 |
| B12 | XII | S16 | 38 | 8800 | 32 | 불일치 | D3 철근재료표 (SD500) B12 |
| UA1 | - | S16 | - | - | 모델 외 | - | D3 철근재료표 (SD500) UA1 |
| C1 | VIII | H29 | 12 | 14490 | 12 | 일치 | D3 철근재료표 (SD400) C1 |
| C2 | VIII | H29 | 12 | 12082 | 12 | 일치 | D3 철근재료표 (SD400) C2 |
| C4 | VIII | H29 | 12 | 14490 | 12 | 일치 | D3 철근재료표 (SD400) C4 |
| C5 | VIII | H29 | 12 | 12082 | 12 | 일치 | D3 철근재료표 (SD400) C5 |
| C7 | VII | H29 | 12 | 13994 | 12 | 일치 | D3 철근재료표 (SD400) C7 |
| C8 | VII | H29 | 12 | 13994 | 12 | 일치 | D3 철근재료표 (SD400) C8 |
| P4 | V | H29 | 9 | 5667 | 9 | 일치 | D3 철근재료표 (SD400) P4 |
| P5 | IX | H29 | 22 | 5667 | 22 | 일치 | D3 철근재료표 (SD400) P5 |
| C3 | VIII | H25 | 12 | 12106 | 12 | 일치 | D3 철근재료표 (SD400) C3 |
| C6 | VIII | H25 | 12 | 12106 | 12 | 일치 | D3 철근재료표 (SD400) C6 |
| C9 | IV | H25 | 60 | 8651 | 60 | 일치 | D3 철근재료표 (SD400) C9 |
| C10 | IV | H25 | 21 | 10319 | 21 | 일치 | D3 철근재료표 (SD400) C10 |
| C11 | IV | H25 | 60 | 8947 | 60 | 일치 | D3 철근재료표 (SD400) C11 |
| C12 | X | H25 | 18 | 20513 | 18 | 일치 | D3 철근재료표 (SD400) C12 |
| C13 | X | H25 | 9 | 28966 | 9 | 일치 | D3 철근재료표 (SD400) C13 |
| C14 | III | H19 | 41 | 3600 | 41 | 일치 | D3 철근재료표 (SD400) C14 |
| C15 | III | H19 | 13 | 2762 | 13 | 일치 | D3 철근재료표 (SD400) C15 |
| C16 | II | H19 | 13 | 5601 | 13 | 일치 | D3 철근재료표 (SD400) C16 |
| P3 | VI | H19 | 33 | 6436 | 37 | 불일치 | D3 철근재료표 (SD400) P3 |
| S1 | III | H19 | 50 | 3800 | 50 | 일치 | D3 철근재료표 (SD400) S1 |
| S2 | III | H19 | 105 | 2500 | 105 | 일치 | D3 철근재료표 (SD400) S2 |
| B9 | XI | H16 | 627 | 2155 | 551 | 불일치 | D3 철근재료표 (SD400) B9 |
| P6 | III | H16 | 32 | 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.4 / max -493.4 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": 91.5, "P4": 98.7, "P5": 81.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 | -36.1 / -36.1 |
| C4 curve - original length | -41.9 / -41.9 |
| C5 curve - original length | -41.9 / -41.9 |
| C6 curve - original length | -36.1 / -36.1 |
| 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.2, "C2": 85.4, "C3": 87.1, "C4": 85.2, "C5": 85.4, "C6": 87.1, "C7": 84.4, "C8": 84.4, "C9": 87.4, "C10": 87.4, "C11": 87.5, "C12": 87.4, "C13": 87.4, "C14": 90.5, "C15": 90.5, "C16": 90.5, "S1": 40.5, "S2": 90.5} |
## 8. 검증 방법
- 검사기는 생성 입력(params)이 아니라 도면 문자·표에서 옮긴 독립 기대값(expected)만 읽습니다.
- 게이트마다 G1부터 새로 생성 → 저장 파일을 다시 열어 검사(재로드) → 객체를 수평·수직으로 옮겨 FAIL이 나는지 확인(음성 시험) → 앞 게이트 객체 지문 비교.
| 게이트 | 재로드 | 음성 시험 | 앞 게이트 객체 |
| :--- | :--- | :--- | :--- |
| G1 | 일치 | 수평 검출 / 수직 검출 | 불변 (0) |
| G2 | 일치 | 수평 검출 / 수직 검출 | 불변 (54) |
| G3 | 일치 | 수평 검출 / 수직 검출 | 불변 (538) |
| G4 | 일치 | 수평 검출 / 수직 검출 | 불변 (2358) |
| G5 | 일치 | 수평 검출 / 수직 검출 | 불변 (3330) |
## 변경 이력
| 버전 | 일자 | 내용 |
| :--- | :--- | :--- |
| v0.1.00 | 2026-10-12 | 앱 자동 생성 초안 |
@@ -0,0 +1,213 @@
# 운곡교P3 교각 모델링 검토보고서 (초안)
> 앱이 게이트 결과·도면 표·승인 기록으로 자동 작성한 **초안**입니다. '오류'·'불일치' 판정과 3~5장의 서술은 담당자가 확인·확정해야 합니다. 작성일 2026-10-19.
## 1. 개요
- 교각: 운곡교P3 (T형) · 좌표: 로컬(교각 중심 원점, X 교축직각, Y 교축, Z = EL×1000, mm) · 산출: .3dm
- 게이트 진행: 5/5 실행, **전 게이트 PASS·승인**
### 1.1 입력 도면
| 구분 | DWG | SHA-256(앞 16자) |
| :--- | :--- | :--- |
| D1 | C0050205-031-운곡교 교각도(1)(완도방향 P3).dwg | 0fdbafcd3e019da5 |
| D2 | C0050205-032-운곡교 교각도(2)(완도방향 P3).dwg | e00986b6b71efbfe |
| D3 | C0050205-033-운곡교 교각도(3)(완도방향 P3).dwg | 893ce984f03f6e63 |
### 1.2 게이트 결과
| 게이트 | 내용 | 판정 | 검사 PASS | 승인 | 의견 |
| :--- | :--- | :--- | :--- | :--- | :--- |
| G1 | 형상(콘크리트·말뚝·받침대좌·패드) | PASS | 171/171 | 승인 심영표 2026-10-19 17:47:17 | 일괄 실행 자동 승인 |
| G2 | 기둥 철근 | PASS | 42/42 | 승인 심영표 2026-10-19 17:47:17 | 일괄 실행 자동 승인 |
| G3 | 확대기초 철근 | PASS | 72/73 | 승인 심영표 2026-10-19 17:47:17 | 일괄 실행 자동 승인 |
| G4 | 코핑 철근 | PASS | 110/116 | 승인 심영표 2026-10-19 17:47:17 | 일괄 실행 자동 승인 |
| G5 | 교량받침·솔플레이트 | PASS | 183/183 | 승인 심영표 2026-10-19 17:47:17 | 일괄 실행 자동 승인 |
## 2. 도면 오류·불일치
자동 등재 기준: 승인된 계획 FAIL → '불일치', 계획되지 않은 FAIL과 도면 표 값·입력값 차이 → '확인 필요'.
| 판정 | 게이트 | 항목 | 내용 | 근거 |
| :--- | :--- | :--- | :--- | :--- |
| 불일치 | G3 | B12 bar count vs schedule | 작도 32본 채택 vs D3 38본 (P1 F2 규칙, P1도 28/34) | 예외 승인: 사용자 확정 2026-10-12 (P2, P1 F2 규칙 준용) |
| 불일치 | G4 | C9 original length vs L (drawn widths ['1160.0', '1740.0'], K1 decision) | 작도 폭 채택(K1) | 예외 승인: 사용자 2026-10-07; P2 적용 사용자 확정 2026-10-12 |
| 불일치 | G4 | C10 original length vs L (drawn widths ['1160.0', '1740.0'], K1 decision) | 작도 폭 채택(K1) | 예외 승인: 사용자 2026-10-07; P2 적용 사용자 확정 2026-10-12 |
| 불일치 | G4 | C11 original length vs L (drawn widths ['1160.0', '1740.0'], K1 decision) | 작도 폭 채택(K1) | 예외 승인: 사용자 2026-10-07; P2 적용 사용자 확정 2026-10-12 |
| 불일치 | G4 | C12 original length vs L (drawn widths ['1106.0', '1686.0'], K1 decision) | 작도 폭 채택(C12·C13 drawn width) | 예외 승인: 사용자 2026-10-07; P2 적용 사용자 확정 2026-10-12 |
| 불일치 | G4 | C13 schedule L reproduced by convention (max+min)/2 | 재료표 P3 C13 L 28.966(총중량 260.694÷9본과 일치)이 규칙 (max+min)/2 = 29.346과 380 mm 다름 — 재료표 자체 불일치, 설계자 확인 대기 | 예외 승인: 사용자 2026-10-19 (G4 승인 지시); 설계자 확인 전 임시 등록 |
| 불일치 | G4 | C13 original length vs L (drawn widths ['1106.0', '1686.0'], K1 decision) | 작도 폭 채택(C12·C13 drawn width) | 예외 승인: 사용자 2026-10-07; P2 적용 사용자 확정 2026-10-12 |
## 3. 개선방안
[담당자 작성] 2장 항목별로 도면 수정·설계자 확인 방안을 적습니다.
## 4. 추가되어야 할 사항
[담당자 작성] 도면에 없어 추정·가정으로 모델링한 사항(입력 묶음의 `[추론]` 표기)을 정리합니다.
- 자동 확인: `[추론]` 표기가 있는 입력 묶음 — coping_rebar
## 5. 누락사항
[담당자 작성] 도면에서 빠진 치수·표·상세를 적습니다.
- 자동 확인: 재료표에 있으나 모델 대상이 아닌 마크 — UA1 (범위 결정 확인)
## 6. 철근재료표 (원본 vs 모델)
원본 = 도면 재료표 판독값(동일 기호 " 해석 포함), 모델 = 게이트 검사의 본수 실측값.
| 마크 | 형식 | 직경 | 재료표 수량 | 재료표 L(mm) | 모델 본수 | 대조 | 근거 |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| P1 | XIV | S32 | 46 | 16371 | 46 | 일치 | D3 철근재료표 (SD500) P1 |
| P2 | XVI | S32 | 46 | 15677 | 46 | 일치 | D3 철근재료표 (SD500) P2 |
| B5 | XII | S29 | 36 | 10550 | 36 | 일치 | D3 철근재료표 (SD500) B5 |
| B6 | XII | S29 | 36 | 14050 | 36 | 일치 | D3 철근재료표 (SD500) B6 |
| B8 | XVI | S29 | 33 | 10150 | 33 | 일치 | D3 철근재료표 (SD500) B8 |
| B1 | XII | S25 | 42 | 9000 | 42 | 일치 | D3 철근재료표 (SD500) B1 |
| B2 | XII | S25 | 42 | 12500 | 42 | 일치 | D3 철근재료표 (SD500) B2 |
| B4 | XVI | S25 | 39 | 8600 | 39 | 일치 | D3 철근재료표 (SD500) B4 |
| B3 | XII | S19 | 42 | 9000 | 42 | 일치 | D3 철근재료표 (SD500) B3 |
| B7 | XII | S19 | 36 | 10550 | 36 | 일치 | D3 철근재료표 (SD500) B7 |
| B10 | XIII | S19 | 9 | 37684 | 9 | 일치 | D3 철근재료표 (SD500) B10 |
| B11 | XII | S16 | 32 | 10350 | 32 | 일치 | D3 철근재료표 (SD500) B11 |
| B12 | XII | S16 | 38 | 8800 | 32 | 불일치 | D3 철근재료표 (SD500) B12 |
| UA1 | - | S16 | - | - | 모델 외 | - | D3 철근재료표 (SD500) UA1 |
| C1 | VIII | H29 | 12 | 14490 | 12 | 일치 | D3 철근재료표 (SD400) C1 |
| C2 | VIII | H29 | 12 | 12082 | 12 | 일치 | D3 철근재료표 (SD400) C2 |
| C4 | VIII | H29 | 12 | 14490 | 12 | 일치 | D3 철근재료표 (SD400) C4 |
| C5 | VIII | H29 | 12 | 12082 | 12 | 일치 | D3 철근재료표 (SD400) C5 |
| C7 | VII | H29 | 12 | 13994 | 12 | 일치 | D3 철근재료표 (SD400) C7 |
| C8 | VII | H29 | 12 | 13994 | 12 | 일치 | D3 철근재료표 (SD400) C8 |
| P4 | V | H29 | 9 | 5667 | 9 | 일치 | D3 철근재료표 (SD400) P4 |
| P5 | IX | H29 | 22 | 5667 | 22 | 일치 | D3 철근재료표 (SD400) P5 |
| C3 | VIII | H25 | 12 | 12106 | 12 | 일치 | D3 철근재료표 (SD400) C3 |
| C6 | VIII | H25 | 12 | 12106 | 12 | 일치 | D3 철근재료표 (SD400) C6 |
| C9 | IV | H25 | 60 | 8651 | 60 | 일치 | D3 철근재료표 (SD400) C9 |
| C10 | IV | H25 | 21 | 10319 | 21 | 일치 | D3 철근재료표 (SD400) C10 |
| C11 | IV | H25 | 60 | 8947 | 60 | 일치 | D3 철근재료표 (SD400) C11 |
| C12 | X | H25 | 18 | 20513 | 18 | 일치 | D3 철근재료표 (SD400) C12 |
| C13 | X | H25 | 9 | 28966 | 9 | 일치 | D3 철근재료표 (SD400) C13 |
| C14 | III | H19 | 41 | 3600 | 41 | 일치 | D3 철근재료표 (SD400) C14 |
| C15 | III | H19 | 13 | 2762 | 13 | 일치 | D3 철근재료표 (SD400) C15 |
| C16 | II | H19 | 13 | 5601 | 13 | 일치 | D3 철근재료표 (SD400) C16 |
| P3 | VI | H19 | 33 | 6436 | 33 | 일치 | D3 철근재료표 (SD400) P3 |
| S1 | III | H19 | 50 | 3800 | 50 | 일치 | D3 철근재료표 (SD400) S1 |
| S2 | III | H19 | 105 | 2500 | 105 | 일치 | D3 철근재료표 (SD400) S2 |
| B9 | XI | H16 | 627 | 2155 | 627 | 일치 | D3 철근재료표 (SD400) B9 |
| P6 | III | H16 | 32 | 2136 | 32 | 일치 | 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.4 / max 0.4 mm |
| P5 curve length - L (record, fillets shorten hooks) | min 0.4 / max 0.4 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": 100.4, "P5": 83.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 | -36.1 / -36.1 |
| C4 curve - original length | -41.9 / -41.9 |
| C5 curve - original length | -41.9 / -41.9 |
| C6 curve - original length | -36.1 / -36.1 |
| 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.3, "C2": 85.5, "C3": 87.3, "C4": 85.3, "C5": 85.5, "C6": 87.3, "C7": 84.4, "C8": 84.4, "C9": 87.5, "C10": 87.5, "C11": 87.5, "C12": 87.4, "C13": 87.4, "C14": 90.5, "C15": 90.5, "C16": 90.5, "S1": 40.5, "S2": 90.5} |
## 8. 검증 방법
- 검사기는 생성 입력(params)이 아니라 도면 문자·표에서 옮긴 독립 기대값(expected)만 읽습니다.
- 게이트마다 G1부터 새로 생성 → 저장 파일을 다시 열어 검사(재로드) → 객체를 수평·수직으로 옮겨 FAIL이 나는지 확인(음성 시험) → 앞 게이트 객체 지문 비교.
- 일괄 실행(단일 Rhino 세션)으로 검사한 게이트는 중간 저장·재로드와 앞 게이트 비교를 하지 않으며, 표에 '생략(일괄 실행)'으로 적습니다. 모델은 마지막 G5만 저장합니다.
| 게이트 | 재로드 | 음성 시험 | 앞 게이트 객체 |
| :--- | :--- | :--- | :--- |
| G1 | 생략(일괄 실행) | 수평 검출 / 수직 검출 | 생략(일괄 실행) |
| G2 | 생략(일괄 실행) | 수평 검출 / 수직 검출 | 생략(일괄 실행) |
| G3 | 생략(일괄 실행) | 수평 검출 / 수직 검출 | 생략(일괄 실행) |
| G4 | 생략(일괄 실행) | 수평 검출 / 수직 검출 | 생략(일괄 실행) |
| G5 | 생략(일괄 실행) | 수평 검출 / 수직 검출 | 생략(일괄 실행) |
### 8.1 입력 묶음 앱 확인 결과 요약
- 앱 확인(검사 버전 B2, 2026-10-19 17:41:06): 일치 9 · 주의 3 · 불일치 0 · 근거 없음 8 · 해당 없음 10 (전체 묶음 30개).
- 앱 확인은 도면 표·재료표 수량·고정 항목을 앱이 대조한 결과입니다. '일치'는 독립 근거와 값이 같다는 뜻이며 도면이 맞다는 보증이 아닙니다. 확정은 사람이 했고, 앱 확인이 일치가 아닌 묶음은 사유가 기록되어 있습니다.
| 묶음 | 앱 확인 | 근거 | 사람 확정 |
| :--- | :--- | :--- | :--- |
| expected:G1 | 일치 | C2 표 후보 10건이 현재 값과 모두 같다 | 심영표 2026-10-19 17:26:59 (앱 확인 일치, 사유: asf) |
| expected:G2 | 일치 | C2 표 후보 12건이 현재 값과 모두 같다 | 심영표 2026-10-19 17:27:11 (앱 확인 일치, 사유: afs) |
| expected:G5 | 일치 | C2 표 후보 60건이 현재 값과 모두 같다 | 심영표 2026-10-19 16:58:59 |
| params:bearing_seats | 일치 | C2 표 후보 50건이 현재 값과 모두 같다 | 심영표 2026-10-19 16:58:59 |
| params:column | 일치 | C2b A등급 1건·B등급 0건이 현재 값과 같다 (앵커가 있는 1개 필드의 100%) | 심영표 2026-10-19 16:58:59 |
| params:column_rebar | 일치 | C2b A등급 1건·B등급 2건이 현재 값과 같다 (앵커가 있는 3개 필드의 100%) | 심영표 2026-10-19 17:27:21 (앱 확인 일치, 사유: asf) |
| params:coping | 일치 | C2b A등급 1건·B등급 4건이 현재 값과 같다 (앵커가 있는 5개 필드의 100%) | 심영표 2026-10-19 16:58:59 |
| params:rebar_marks | 일치 | C2 표 후보 36건이 현재 값과 모두 같다 | 심영표 2026-10-19 16:58:59 |
| params:sole_plates | 일치 | C2 표 후보 41건이 현재 값과 모두 같다 | 심영표 2026-10-19 16:58:59 |
| expected:G3 | 주의 | C2b B등급 후보 4건이 현재 값과 다르다(후보가 틀렸을 수도 있다) — G3.rows.X_250.ends.1: 현재 4300 ≠ 도면 3800; G3.rows | 심영표 2026-10-19 17:26:38 (앱 확인 주의, 사유: asfd) |
| expected:G4 | 주의 | C2b 앵커 필드 26개 중 10개만 같다 (A 3 · B 7) — 대조 범위 38% | 심영표 2026-10-19 17:26:47 (앱 확인 주의, 사유: afsd) |
| params:display | 주의 | C7 템플릿 복사 기록이 없고 어느 보호 템플릿과도 같지 않다 — 새 형식인지 확인 | 심영표 2026-10-12 17:05:53 |
| expected:pier_id | 근거 없음 | 앱이 독립적으로 대조할 근거가 없다 — 도면과 직접 대조한 뒤 사유와 함께 확정 | 심영표 2026-10-19 17:01:24 (앱 확인 근거 없음, 사유: qweq) |
| params:coping_rebar | 근거 없음 | 앱이 독립적으로 대조할 근거가 없다 — 도면과 직접 대조한 뒤 사유와 함께 확정 | 심영표 2026-10-19 17:44:10 (앱 확인 근거 없음, 사유: sdf) |
| params:footing | 근거 없음 | 앱이 독립적으로 대조할 근거가 없다 — 도면과 직접 대조한 뒤 사유와 함께 확정 | 심영표 2026-10-19 17:01:51 (앱 확인 근거 없음, 사유: afas) |
| params:footing_rebar | 근거 없음 | 앱이 독립적으로 대조할 근거가 없다 — 도면과 직접 대조한 뒤 사유와 함께 확정 | 심영표 2026-10-19 17:26:25 (앱 확인 근거 없음, 사유: sfas) |
| params:lean_concrete | 근거 없음 | 앱이 독립적으로 대조할 근거가 없다 — 도면과 직접 대조한 뒤 사유와 함께 확정 | 심영표 2026-10-19 17:02:12 (앱 확인 근거 없음, 사유: afds) |
| params:materials | 근거 없음 | 앱이 독립적으로 대조할 근거가 없다 — 도면과 직접 대조한 뒤 사유와 함께 확정 | 심영표 2026-10-12 17:05:53 |
| params:pier_id | 근거 없음 | 앱이 독립적으로 대조할 근거가 없다 — 도면과 직접 대조한 뒤 사유와 함께 확정 | 심영표 2026-10-19 17:02:23 (앱 확인 근거 없음, 사유: afdsaf) |
| params:piles | 근거 없음 | 앱이 독립적으로 대조할 근거가 없다 — 도면과 직접 대조한 뒤 사유와 함께 확정 | 심영표 2026-10-19 17:02:33 (앱 확인 근거 없음, 사유: afsd) |
| expected:planned_fail | 해당 없음 | 사람 결정 기록 또는 참고 정보 — 앱이 도면과 대조하지 않는다 | 심영표 2026-10-19 17:44:20 (앱 확인 해당 없음, 사유: afda) |
| expected:rebar_palette | 해당 없음 | 사람 결정 기록 또는 참고 정보 — 앱이 도면과 대조하지 않는다 | 심영표 2026-10-12 17:05:53 |
| expected:rebar_palette_src | 해당 없음 | 참고 정보 | 미확정 |
| expected:tol_mm | 해당 없음 | 사람 결정 기록 또는 참고 정보 — 앱이 도면과 대조하지 않는다 | 심영표 2026-10-12 17:05:53 |
| params:hitl_decisions_2026_10_07 | 해당 없음 | 참고 정보 | 미확정 |
| params:rebar_marks_src | 해당 없음 | 참고 정보 | 미확정 |
## 변경 이력
| 버전 | 일자 | 내용 |
| :--- | :--- | :--- |
| v0.1.00 | 2026-10-19 | 앱 자동 생성 초안 |