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,382 @@
[
{
"at": "2026-10-19 13:30:57",
"fields": [
{
"field": "expected:G1.seats.table.10.0",
"file": "expected",
"from": 43887,
"to": 41052,
"grade": "A",
"text": "41.052",
"x": 24938.3,
"y": 3894.5,
"pos": "D2 (24938, 3894)"
},
{
"field": "expected:G1.seats.table.9.0",
"file": "expected",
"from": 43816,
"to": 40977,
"grade": "A",
"text": "40.977",
"x": 24938.3,
"y": 4374.5,
"pos": "D2 (24938, 4374)"
},
{
"field": "expected:G1.seats.table.8.0",
"file": "expected",
"from": 43744,
"to": 40902,
"grade": "A",
"text": "40.902",
"x": 24938.3,
"y": 4854.5,
"pos": "D2 (24938, 4854)"
},
{
"field": "expected:G1.seats.table.7.0",
"file": "expected",
"from": 43672,
"to": 40827,
"grade": "A",
"text": "40.827",
"x": 24938.3,
"y": 5334.5,
"pos": "D2 (24938, 5334)"
},
{
"field": "expected:G1.seats.table.6.0",
"file": "expected",
"from": 43600,
"to": 40752,
"grade": "A",
"text": "40.752",
"x": 24938.3,
"y": 5814.5,
"pos": "D2 (24938, 5814)"
},
{
"field": "expected:G1.seats.table.5.0",
"file": "expected",
"from": 43912,
"to": 41077,
"grade": "A",
"text": "41.077",
"x": 24938.3,
"y": 6294.5,
"pos": "D2 (24938, 6294)"
},
{
"field": "expected:G1.seats.table.4.0",
"file": "expected",
"from": 43840,
"to": 41002,
"grade": "A",
"text": "41.002",
"x": 24938.3,
"y": 6774.5,
"pos": "D2 (24938, 6774)"
},
{
"field": "expected:G1.seats.table.3.0",
"file": "expected",
"from": 43768,
"to": 40927,
"grade": "A",
"text": "40.927",
"x": 24938.3,
"y": 7254.5,
"pos": "D2 (24938, 7254)"
},
{
"field": "expected:G1.seats.table.2.0",
"file": "expected",
"from": 43697,
"to": 40852,
"grade": "A",
"text": "40.852",
"x": 24938.3,
"y": 7734.5,
"pos": "D2 (24938, 7734)"
},
{
"field": "expected:G1.seats.table.1.0",
"file": "expected",
"from": 43625,
"to": 40777,
"grade": "A",
"text": "40.777",
"x": 24938.3,
"y": 8214.5,
"pos": "D2 (24938, 8214)"
},
{
"field": "expected:G1.column.height",
"file": "expected",
"from": 12003,
"to": 10029,
"grade": "A",
"text": "10.029",
"x": 3029.4,
"y": 14008.8,
"pos": "D1 (3029, 14009)"
},
{
"field": "expected:G1.footing.z0",
"file": "expected",
"from": 26208,
"to": 25318,
"grade": "A",
"text": "EL. 25.318",
"x": 24673.9,
"y": 8775.6,
"pos": "D1 (24674, 8776)"
},
{
"field": "expected:G2.schedule_L.P2",
"file": "expected",
"from": 16553,
"to": 14579,
"grade": "A",
"text": "14.579",
"x": 43188.4,
"y": 29539.8,
"pos": "D3 (43188, 29540)"
},
{
"field": "expected:G2.schedule_L.P1",
"file": "expected",
"from": 17247,
"to": 15273,
"grade": "A",
"text": "15.273",
"x": 43188.4,
"y": 29899.8,
"pos": "D3 (43188, 29900)"
},
{
"field": "expected:G3.schedule.B12.0",
"file": "expected",
"from": 7800,
"to": 8300,
"grade": "A",
"text": "8.300",
"x": 29878.0,
"y": 3741.9,
"pos": "D1 (29878, 3742)"
},
{
"field": "expected:G3.schedule.B11.0",
"file": "expected",
"from": 9350,
"to": 10350,
"grade": "A",
"text": "10.350",
"x": 11852.6,
"y": 3741.9,
"pos": "D1 (11853, 3742)"
},
{
"field": "expected:G3.schedule.B8.0",
"file": "expected",
"from": 9150,
"to": 10150,
"grade": "A",
"text": "10.150",
"x": 29545.2,
"y": 24499.8,
"pos": "D3 (29545, 24500)"
},
{
"field": "expected:G3.schedule.B7.0",
"file": "expected",
"from": 9550,
"to": 10550,
"grade": "A",
"text": "10.550",
"x": 43188.4,
"y": 28819.8,
"pos": "D3 (43188, 28820)"
},
{
"field": "expected:G3.schedule.B6.0",
"file": "expected",
"from": 13050,
"to": 14050,
"grade": "A",
"text": "14.050",
"x": 43188.4,
"y": 28459.8,
"pos": "D3 (43188, 28460)"
},
{
"field": "expected:G3.schedule.B5.0",
"file": "expected",
"from": 9550,
"to": 10550,
"grade": "A",
"text": "10.550",
"x": 43188.4,
"y": 28819.8,
"pos": "D3 (43188, 28820)"
},
{
"field": "expected:G3.schedule.B4.0",
"file": "expected",
"from": 7600,
"to": 8100,
"grade": "A",
"text": "8.100",
"x": 43290.6,
"y": 26659.8,
"pos": "D3 (43291, 26660)"
},
{
"field": "expected:G3.schedule.B3.0",
"file": "expected",
"from": 8000,
"to": 8500,
"grade": "A",
"text": "8.500",
"x": 43290.6,
"y": 27379.8,
"pos": "D3 (43291, 27380)"
},
{
"field": "expected:G3.schedule.B2.0",
"file": "expected",
"from": 11500,
"to": 12000,
"grade": "A",
"text": "12.000",
"x": 43188.4,
"y": 27019.8,
"pos": "D3 (43188, 27020)"
},
{
"field": "expected:G3.schedule.B1.0",
"file": "expected",
"from": 8000,
"to": 8500,
"grade": "A",
"text": "8.500",
"x": 43290.6,
"y": 27379.8,
"pos": "D3 (43291, 27380)"
},
{
"field": "expected:G5.el_x.10",
"file": "expected",
"from": 43887,
"to": 41052,
"grade": "A",
"text": "41.052",
"x": 24938.3,
"y": 3894.5,
"pos": "D2 (24938, 3894)"
},
{
"field": "expected:G5.el_x.9",
"file": "expected",
"from": 43816,
"to": 40977,
"grade": "A",
"text": "40.977",
"x": 24938.3,
"y": 4374.5,
"pos": "D2 (24938, 4374)"
},
{
"field": "expected:G5.el_x.8",
"file": "expected",
"from": 43744,
"to": 40902,
"grade": "A",
"text": "40.902",
"x": 24938.3,
"y": 4854.5,
"pos": "D2 (24938, 4854)"
},
{
"field": "expected:G5.el_x.7",
"file": "expected",
"from": 43672,
"to": 40827,
"grade": "A",
"text": "40.827",
"x": 24938.3,
"y": 5334.5,
"pos": "D2 (24938, 5334)"
},
{
"field": "expected:G5.el_x.6",
"file": "expected",
"from": 43600,
"to": 40752,
"grade": "A",
"text": "40.752",
"x": 24938.3,
"y": 5814.5,
"pos": "D2 (24938, 5814)"
},
{
"field": "expected:G5.el_x.5",
"file": "expected",
"from": 43912,
"to": 41077,
"grade": "A",
"text": "41.077",
"x": 24938.3,
"y": 6294.5,
"pos": "D2 (24938, 6294)"
},
{
"field": "expected:G5.el_x.4",
"file": "expected",
"from": 43840,
"to": 41002,
"grade": "A",
"text": "41.002",
"x": 24938.3,
"y": 6774.5,
"pos": "D2 (24938, 6774)"
},
{
"field": "expected:G5.el_x.3",
"file": "expected",
"from": 43768,
"to": 40927,
"grade": "A",
"text": "40.927",
"x": 24938.3,
"y": 7254.5,
"pos": "D2 (24938, 7254)"
},
{
"field": "expected:G5.el_x.2",
"file": "expected",
"from": 43697,
"to": 40852,
"grade": "A",
"text": "40.852",
"x": 24938.3,
"y": 7734.5,
"pos": "D2 (24938, 7734)"
},
{
"field": "expected:G5.el_x.1",
"file": "expected",
"from": 43625,
"to": 40777,
"grade": "A",
"text": "40.777",
"x": 24938.3,
"y": 8214.5,
"pos": "D2 (24938, 8214)"
}
],
"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,157 @@
{
"params:pier_id": {
"sha": "2d88755373001ece",
"by": "심영표",
"at": "2026-10-20 08:35:43",
"why": "12",
"app_st": "n"
},
"params:rebar_marks": {
"sha": "e4ad42a5f585d89a",
"by": "심영표",
"at": "2026-10-20 08:37:45",
"why": "12",
"app_st": "g"
},
"params:display": {
"sha": "bdeca68de52b7a20",
"by": "심영표",
"at": "2026-10-20 08:48:21",
"why": "12",
"app_st": "w"
},
"expected:pier_id": {
"sha": "2d88755373001ece",
"by": "심영표",
"at": "2026-10-20 08:31:54",
"why": "12",
"app_st": "n"
},
"expected:tol_mm": {
"sha": "d0ff5974b6aa52cf",
"by": "심영표",
"at": "2026-10-12 17:43:09"
},
"expected:rebar_palette": {
"sha": "c41013bf3e985022",
"by": "심영표",
"at": "2026-10-12 17:43:09"
},
"expected:planned_fail": {
"sha": "35c0aae03716f8ef",
"by": "심영표",
"at": "2026-10-20 09:06:07",
"why": "12",
"app_st": "x"
},
"params:lean_concrete": {
"sha": "ca8b08a04034f361",
"by": "심영표",
"at": "2026-10-20 08:35:24",
"why": "12",
"app_st": "n"
},
"params:footing": {
"sha": "52f670b4162e65e2",
"by": "심영표",
"at": "2026-10-20 08:33:34",
"why": "12",
"app_st": "n"
},
"params:column": {
"sha": "5eab80c855c7fefc",
"by": "심영표",
"at": "2026-10-20 08:37:14",
"why": "12",
"app_st": "g"
},
"params:coping": {
"sha": "dd7ed979eb55b37d",
"by": "심영표",
"at": "2026-10-20 08:37:35",
"why": "12",
"app_st": "g"
},
"params:piles": {
"sha": "8c0b59c8f4fcc2db",
"by": "심영표",
"at": "2026-10-20 08:35:53",
"why": "12",
"app_st": "n"
},
"params:bearing_seats": {
"sha": "8e964984e226bbea",
"by": "심영표",
"at": "2026-10-20 08:37:05",
"why": "12",
"app_st": "g"
},
"params:materials": {
"sha": "84f210201086bd7c",
"by": "심영표",
"at": "2026-10-12 17:43:09"
},
"expected:G1": {
"sha": "5f5fa222917824b6",
"by": "심영표",
"at": "2026-10-20 08:36:27",
"why": "12",
"app_st": "g"
},
"params:column_rebar": {
"sha": "f6f4e2173c11dd92",
"by": "심영표",
"at": "2026-10-20 08:37:26",
"why": "12",
"app_st": "g"
},
"expected:G2": {
"sha": "34ee0a2555d86c46",
"by": "심영표",
"at": "2026-10-20 08:48:30",
"why": "12",
"app_st": "g"
},
"params:footing_rebar": {
"sha": "81c6ada724b8c15d",
"by": "심영표",
"at": "2026-10-20 08:35:11",
"why": "12",
"app_st": "n"
},
"expected:G3": {
"sha": "c9f4bb140a943b51",
"by": "심영표",
"at": "2026-10-20 08:36:06",
"why": "12",
"app_st": "w"
},
"params:coping_rebar": {
"sha": "5bc562cd39dc913b",
"by": "심영표",
"at": "2026-10-20 09:05:57",
"why": "12",
"app_st": "n"
},
"expected:G4": {
"sha": "7448df79a8da9764",
"by": "심영표",
"at": "2026-10-20 08:36:16",
"why": "12",
"app_st": "w"
},
"params:sole_plates": {
"sha": "87e3fa796cd78fff",
"by": "심영표",
"at": "2026-10-20 08:37:55",
"why": "12",
"app_st": "g"
},
"expected:G5": {
"sha": "b240c3c9d9873f65",
"by": "심영표",
"at": "2026-10-20 08:36:57",
"why": "12",
"app_st": "g"
}
}
@@ -0,0 +1,26 @@
[
{
"source": "C0050205-034-운곡교 교각도(1)(완도방향 P4).dwg",
"source_sha256": "fff0eebf1728b23d2657263ccd145cd71718fb6062c02fe87e5376ba4ab08323",
"dxf": "C0050205-034-운곡교 교각도(1)(완도방향 P4).dxf",
"dxf_sha256": "c1961a073c181a1363ab8ccffa0ab37e3df7cc7e17c6ed4c8d680babe25ef438",
"engine": "ODA File Converter 27.1.0",
"label": "D1"
},
{
"source": "C0050205-035-운곡교 교각도(2)(완도방향 P4).dwg",
"source_sha256": "2ea47f8d81b1f4bba068fa167477562c312ef4a9c14bbcee042037fe87031a33",
"dxf": "C0050205-035-운곡교 교각도(2)(완도방향 P4).dxf",
"dxf_sha256": "c61ac58608941c3c232c35b617c70f980fdfc2e24f5d507ded2e152c67c0e842",
"engine": "ODA File Converter 27.1.0",
"label": "D2"
},
{
"source": "C0050205-036-운곡교 교각도(3)(완도방향 P4).dwg",
"source_sha256": "fd1ee8d7f57579f8b094cad2f1e64037dba1daa187280fdfe547339d1c492d47",
"dxf": "C0050205-036-운곡교 교각도(3)(완도방향 P4).dxf",
"dxf_sha256": "98c475080b97ef0331fa11ff3070504063946299d364a44c1c79daacc323cec7",
"engine": "ODA File Converter 27.1.0",
"label": "D3"
}
]
@@ -0,0 +1 @@
[{"dwg": "D1", "layer": "CS-DIMT", "x": 43035.4, "y": 28049.9, "h": 150.0, "text": "137", "handle": "2ABB1"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 45797.9, "y": 28049.9, "h": 150.0, "text": "138", "handle": "2ABB2"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43035.4, "y": 21053.6, "h": 150.0, "text": "137", "handle": "2ABB3"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44314.7, "y": 20663.6, "h": 150.0, "text": "3.100", "handle": "2ABB4"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 46137.4, "y": 28001.3, "h": 150.0, "text": "(1~3단)", "handle": "2ABB5"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 45797.9, "y": 21053.6, "h": 150.0, "text": "138", "handle": "2ABB6"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43956.2, "y": 21263.6, "h": 150.0, "text": "21@125=2.625", "handle": "2ABB7"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 42641.9, "y": 21263.6, "h": 150.0, "text": "100", "handle": "2ABB8"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44314.7, "y": 28859.9, "h": 150.0, "text": "3.100", "handle": "2ABB9"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 42641.9, "y": 28259.9, "h": 150.0, "text": "100", "handle": "2ABBA"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 46341.9, "y": 21263.6, "h": 150.0, "text": "100", "handle": "2ABBB"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43956.2, "y": 28259.9, "h": 150.0, "text": "21@125=2.625", "handle": "2ABBC"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 42641.9, "y": 21863.6, "h": 150.0, "text": "100", "handle": "2ABBD"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43256.9, "y": 21863.6, "h": 150.0, "text": "580", "handle": "2ABBE"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 46341.9, "y": 28259.9, "h": 150.0, "text": "100", "handle": "2ABBF"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44996.9, "y": 21863.6, "h": 150.0, "text": "580", "handle": "2ABC0"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43836.9, "y": 21863.6, "h": 150.0, "text": "580", "handle": "2ABC1"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44416.9, "y": 21863.6, "h": 150.0, "text": "580", "handle": "2ABC2"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 46266.9, "y": 21863.6, "h": 150.0, "text": "100", "handle": "2ABC3"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 42641.9, "y": 8459.9, "h": 150.0, "text": "100", "handle": "2ABC4"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 45576.9, "y": 21863.6, "h": 150.0, "text": "580", "handle": "2ABC5"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43956.2, "y": 8459.9, "h": 150.0, "text": "21@125=2.625", "handle": "2ABC6"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44314.7, "y": 7859.9, "h": 150.0, "text": "3.100", "handle": "2ABC7"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 46416.9, "y": 17509.7, "h": 150.0, "text": "100", "handle": "2ABC8"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 46341.9, "y": 8459.9, "h": 150.0, "text": "100", "handle": "2ABC9"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 42641.9, "y": 17509.7, "h": 150.0, "text": "100", "handle": "2ABCA"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44314.7, "y": 18109.7, "h": 150.0, "text": "3.100", "handle": "2ABCB"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43893.7, "y": 17509.7, "h": 150.0, "text": "10@250=2.500", "handle": "2ABCC"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 42641.9, "y": 16909.7, "h": 150.0, "text": "100", "handle": "2ABCD"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 46341.9, "y": 16909.7, "h": 150.0, "text": "100", "handle": "2ABCE"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43956.2, "y": 16909.7, "h": 150.0, "text": "21@125=2.625", "handle": "2ABCF"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 42641.9, "y": 9059.9, "h": 150.0, "text": "100", "handle": "2ABD0"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43256.9, "y": 9059.9, "h": 150.0, "text": "580", "handle": "2ABD1"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44996.9, "y": 9059.9, "h": 150.0, "text": "580", "handle": "2ABD2"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43836.9, "y": 9059.9, "h": 150.0, "text": "580", "handle": "2ABD3"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44416.9, "y": 9059.9, "h": 150.0, "text": "580", "handle": "2ABD4"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 45576.9, "y": 9059.9, "h": 150.0, "text": "580", "handle": "2ABD5"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 40095.3, "y": 10522.9, "h": 150.0, "text": "100", "handle": "2ABD6"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 46266.9, "y": 9059.9, "h": 150.0, "text": "100", "handle": "2ABD7"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 40095.3, "y": 14197.9, "h": 150.0, "text": "100", "handle": "2ABD8"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 40095.3, "y": 11563.8, "h": 150.0, "text": "9@250=2.250", "handle": "2ABD9"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43035.4, "y": 16699.7, "h": 150.0, "text": "137", "handle": "2ABDA"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 40095.3, "y": 13438.6, "h": 150.0, "text": "700", "handle": "2ABDB"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 39495.3, "y": 12211.3, "h": 150.0, "text": "3.150", "handle": "2ABDC"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 45797.9, "y": 16699.7, "h": 150.0, "text": "138", "handle": "2ABDD"}, {"dwg": "D1", "layer": "CS-DIMT", "xLine truncated
@@ -0,0 +1,865 @@
{
"_schema": "pier-T-expected/1",
"_note": "독립 기대값: 도면 치수 문자·표(D1~D3)에서 직접 옮긴 값. 생성용 params.json과 별도로 관리하며 검사기는 params를 읽지 않는다. 원출처: Code/교각모델링/verify_*.py (검증서 v0.1.05).",
"pier_id": "P4",
"tol_mm": 1.0,
"G1": {
"footing": {
"dx": 10350,
"dy": 8300,
"z0": 25318,
"thickness": 2200,
"src": "D1 '9.350' '7.800' 'EL. 26.208' '2.200'"
},
"lean": {
"margin": 100,
"thickness": 100,
"src": "D1 footing +100 each side, 100 thick"
},
"column": {
"d": 2000,
"height": 10029,
"src": "D1 '2.000' '12.003'"
},
"coping": {
"dx": 12400,
"dy": 3100,
"z_top_left": 40547,
"rise_upper": 1500,
"rise_lower": 1500,
"z_top_right": 40847,
"z_top_center": 40697,
"flat_from_tip": 5100,
"end_inset": 200,
"radius": 12000,
"src": "D1 '12.400' '3.100' 'EL. 43.411' '1.500' x2 'EL. 43.698' 'EL. 43.555' '5.100' '200' 'R=12.000'"
},
"coping_outline": [
[
-1100,
37547
],
[
1100,
37547
],
[
6200,
39047
],
[
6000,
40847
],
[
3752,
40847
],
[
3752,
40772
],
[
1252,
40772
],
[
1252,
40697
],
[
-1248,
40697
],
[
-1248,
40622
],
[
-3748,
40622
],
[
-3748,
40547
],
[
-6000,
40547
],
[
-6200,
39047
]
],
"coping_outline_src": "D1 정면도 외형 (원호는 현으로 대체 후 활꼴 2개 차감)",
"dxf_arc_centres": {
"datum_x": 12159.4,
"datum_y": 16515.6,
"datum_el": 37547,
"left": [
5207.5,
6039.2
],
"right": [
19111.2,
6039.2
],
"src": "DXF ARC 1C4BF centre; datum CS-CNTL 1C546 / coping bottom line 1C4BD"
},
"piles": {
"nx": 6,
"ny": 5,
"pitch": 1550,
"edge": 800,
"d": 600,
"length": 26200,
"head_embedment": 100,
"src": "D1 '5@1.550' '4@1.550' '800' 'Ø600' 'L=24.4M'; 매입 100 (CS-CNTL)",
"pitch_x": 1750,
"pitch_y": 1675
},
"seats": {
"table": {
"1": [
40777,
180,
50,
600,
510
],
"2": [
40852,
180,
50,
600,
510
],
"3": [
40927,
180,
50,
600,
650
],
"4": [
41002,
180,
50,
600,
510
],
"5": [
41077,
180,
50,
600,
510
],
"6": [
40752,
155,
50,
700,
640
],
"7": [
40827,
155,
50,
700,
640
],
"8": [
40902,
155,
50,
700,
790
],
"9": [
40977,
155,
50,
700,
640
],
"10": [
41052,
155,
50,
700,
640
]
},
"table_columns": [
"EL.'X'",
"h1",
"h2",
"A",
"B"
],
"girders": 5,
"step_top": {
"1": 40547,
"2": 40622,
"3": 40697,
"4": 40772,
"5": 40847
},
"step_x": {
"1": [
-6000,
-3748
],
"2": [
-3748,
-1248
],
"3": [
-1248,
1252
],
"4": [
1252,
3752
],
"5": [
3752,
6000
]
},
"row_y": {
"front": -701,
"rear": 599
},
"pitch_chain": [
3,
7500
],
"pedestal_plan": [
1250,
1200
],
"pad_margin": [
200,
100
],
"rear_first_from_tip": 1198,
"src": "D2 ELEVATION TABLE; D1 EL texts + drawn steps; D1 평면도 S1/S2 + D2 TABLE S1 (1550-852 / 1550-950); '3@2.505=7.516'; 대좌 2500x1200 반쪽; '1.232'"
}
},
"G2": {
"schedule_L": {
"P1": 15273,
"P2": 14579,
"P3": 6436,
"P4": 5667.0,
"P5": 5667.0,
"P6": 2136
},
"schedule_n": {
"P1": 46,
"P2": 46,
"P3": 30,
"P4": 9,
"P5": 22,
"P6": 28
},
"dia": {
"P1": 32,
"P2": 32,
"P3": 19,
"P4": 19,
"P5": 19,
"P6": 16
},
"hoop_chain": {
"start": [
150,
1030
],
"groups": [
[
8,
120
],
[
22,
120
],
[
30,
300
]
]
},
"hoop_marks_by_zone": [
[
"P4",
9
],
[
"P5",
22
],
[
"P3",
30
]
],
"tie_chain": {
"start": [
150,
1030
],
"groups": [
[
6,
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,
14239
],
"no_fillet_marks": [
"P1",
"P2",
"P4",
"P5"
],
"src": "D3 L·수량; D1 '150','1.030','8@120=960','22@120=2.640','36@300=10.800','8@1.800=14.400'; HITL H2 반지름(단면 CAD)·D3 R"
},
"G3": {
"schedule": {
"B1": [
8500.0,
42
],
"B2": [
12000.0,
42
],
"B3": [
8500.0,
42
],
"B4": [
8100.0,
39
],
"B5": [
10550.0,
34
],
"B6": [
14050.0,
34
],
"B7": [
10550.0,
34
],
"B8": [
10150.0,
31
],
"B9": [
2155.0,
589
],
"B10": [
36684.0,
9
],
"B11": [
10350.0,
30
],
"B12": [
8300.0,
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": [
-4050,
4050
],
"start": -3875,
"pitch": 125,
"n": 63
},
"X_250": {
"ends": [
-4050,
4050
],
"start": -3875,
"pitch": 250,
"n": 32
}
},
"b10_levels": {
"start": 350,
"pitch": 200,
"n": 9
},
"b10_size": [
10198,
8144
],
"b9_grid": {
"x": {
"start": -4625,
"pitch": 250,
"n": 38
},
"y": {
"start": -3750,
"pitch": 250,
"n": 31
}
},
"b9_erec": [
150,
2100
],
"b9_a": 1995,
"b9_c": 64,
"mid_levels": [
550,
950,
1350,
1750
],
"src": "D3 L·수량; D1/D2 '100','200','70@125=8.750' / '35@250' / '100','175','58@125=7.250' / '29@250'; F1 층 높이(작도점); '150','9@200=1.800'; '450','33@250=8.250' / '300','28@250=7.000'; EREC 150~2100; 중간층 작도점 [derived]"
},
"G4": {
"count": {
"C1": 12,
"C2": 12,
"C3": 12,
"C4": 12,
"C5": 12,
"C6": 12,
"C7": 12,
"C8": 12,
"C9": 60,
"C10": 21,
"C11": 60,
"C12": 18,
"C13": 9,
"C14": 41,
"C15": 13,
"C16": 13,
"S1": 50,
"S2": 105
},
"L": {
"C1": 14491.0,
"C2": 12082.0,
"C3": 12107.0,
"C4": 14491.0,
"C5": 12082.0,
"C6": 12107.0,
"C7": 13994,
"C8": 13994,
"C9": 8503.0,
"C10": 10323.0,
"C11": 8954.0,
"C12": 20513,
"C13": 28966.0,
"C14": 3600,
"C15": 2748.0,
"C16": 5600.0,
"S1": 3800,
"S2": 2500
},
"range": {
"C9": [
"b_sched",
2812,
1376
],
"C11": [
"b_sched",
2962,
1677
],
"C10": [
"b_sched",
3004,
3004
],
"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": 29,
"C4": 29,
"C5": 29,
"C6": 29,
"C7": 29,
"C8": 29,
"C9": 25,
"C10": 25,
"C11": 25,
"C12": 25,
"C13": 25,
"C14": 19,
"C15": 19,
"C16": 19,
"S1": 19,
"S2": 19
},
"half_width": 1550,
"y24_chain": {
"start": [
100,
237
],
"pitch": 125,
"n": 21,
"end": 3000
},
"y13_chain": {
"start": [
100,
237
],
"pitch": 250,
"n": 10,
"end": 3000
},
"pairs": [
[
"C1",
"C4"
],
[
"C2",
"C5"
],
[
"C3",
"C6"
],
[
"C7",
"C8"
]
],
"tier_z": {
"C1": 40447,
"C4": 40447,
"C2": 40347,
"C5": 40347,
"C3": 40247,
"C6": 40247
},
"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": 37647,
"loop_z": {
"C12": {
"start": 37897,
"pitch": 250,
"n": 6
},
"C13": [
39397,
39647,
39897
]
},
"c15_top": 40747,
"c16_top": 40597,
"c14_levels": [
[
40596.8,
1
],
[
40324.5,
11
],
[
40224.5,
11
],
[
39647,
6
],
[
39147,
5
],
[
38647,
4
],
[
38147,
3
]
],
"s_per_girder": {
"S1": [
10,
50
],
"S2": [
21,
100
]
},
"step_top": {
"1": 40547,
"2": 40622,
"3": 40697,
"4": 40772,
"5": 40847
},
"src": "D3 수량·L·a/b 범위; D1 A-A 사슬 '100','137','21@125','3000' / B-B '10@250'; 정면도 단 높이·스터럽 X·루프 EL; D2 '50','50'"
},
"G5": {
"el_x": {
"1": 40777,
"2": 40852,
"3": 40927,
"4": 41002,
"5": 41077,
"6": 40752,
"7": 40827,
"8": 40902,
"9": 40977,
"10": 41052
},
"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": 610,
"2": 610,
"3": 750,
"4": 610,
"5": 610,
"6": 740,
"7": 740,
"8": 890,
"9": 740,
"10": 740
},
"L": {
"1": 700,
"2": 700,
"3": 700,
"4": 700,
"5": 700,
"6": 800,
"7": 800,
"8": 800,
"9": 800,
"10": 800
},
"T": 30,
"h3": 165,
"bearing_shrink": 100,
"colours": {
"bearing": [
0,
0,
0
],
"sole_plate": [
150,
150,
150
]
},
"src": "D2 ELEVATION TABLE (EL.'X', h3), 솔플레이트 상세 TABLE (S, L, W, T); (L-100)x(W-100)·색 = 사용자 지시 2026-10-08"
},
"rebar_palette": {
"32": [
214,
39,
40
],
"29": [
255,
127,
14
],
"25": [
188,
60,
160
],
"19": [
44,
160,
44
],
"16": [
31,
119,
180
]
},
"rebar_palette_src": "디자인지침_경로.md R8 (2026-10-07)",
"planned_fail": [
{
"gate": "G3",
"item": "B12 bar count vs schedule",
"reason": "작도 32본 채택(F2) vs D3 38본 (P1 28/34, P3 32/38) — OPEN #9",
"approved": "사용자 2026-10-07"
},
{
"gate": "G4",
"item_prefix": "C9 original length vs L",
"reason": "작도 폭 채택(K1)",
"approved": "사용자 2026-10-07"
},
{
"gate": "G4",
"item_prefix": "C10 original length vs L",
"reason": "작도 폭 채택(K1)",
"approved": "사용자 2026-10-07"
},
{
"gate": "G4",
"item_prefix": "C11 original length vs L",
"reason": "작도 폭 채택(K1)",
"approved": "사용자 2026-10-07"
},
{
"gate": "G4",
"item_prefix": "C12 original length vs L",
"reason": "작도 폭 채택(C12·C13 drawn width)",
"approved": "사용자 2026-10-07"
},
{
"gate": "G4",
"item_prefix": "C13 original length vs L",
"reason": "작도 폭 채택(C12·C13 drawn width)",
"approved": "사용자 2026-10-07"
},
{
"gate": "G3",
"item": "B11 bar count vs schedule",
"reason": "작도 32본(우측 반 작도, 좌우 대칭) 채택 vs D3 30본 — P4 신규 불일치, 설계자 확인 대기",
"approved": "사용자 2026-10-20 (P4 B11 작도 채택 결정)"
},
{
"gate": "G4",
"item_prefix": "C13 schedule L reproduced by convention",
"reason": "재료표 C13 L 28.966(총중량 260.694÷9본과 일치)이 규칙 (max+min)/2 = 29.346과 380 mm 다름 — 재료표 자체 불일치(P3와 동일), 설계자 확인 대기",
"approved": "사용자 2026-10-20 (P3와 동일하게 임시 등록); 설계자 확인 전"
}
]
}
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,6 @@
{
"name": "운곡교P4",
"type": "T형",
"created": "2026-10-12 17:42:45",
"template": "1234"
}
@@ -0,0 +1,68 @@
{
"gate": "G1",
"checker": "g1_shape.py",
"verdict": "PASS",
"summary": {
"total": 171,
"passed": 171,
"failed": 0,
"volumes_m3": {
"lean": 8.119,
"footing": 188.991,
"column": 31.507,
"coping": 89.78
},
"pile_volume_each_m3": 7.408
},
"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.1,
"session_secs": 147.2,
"inputs_sha": "253e67f7d32a72dd",
"job_id": "1f066af04dbb"
}
@@ -0,0 +1,15 @@
{
"id": "1f066af04dbb",
"pid": 5976,
"state": "완료",
"at": "2026-10-20 09:08:45",
"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 71/73 (planned FAIL 2, 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 147.4s, objects 3406, model C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\운곡교P4\\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": 105.4,
"P5": 88.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": 30,
"actual": 30,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 pipes closed & paired with centrelines",
"detail": "pipes 60 / centrelines 60",
"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": 28,
"actual": 28,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 pipes closed & paired with centrelines",
"detail": "pipes 28 / centrelines 28",
"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 30)",
"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 28)",
"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": 40197,
"actual": 40197.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": 40197,
"actual": 40197.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": 25618,
"actual": 25618.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 bottom EL",
"expected": 25618,
"actual": 25618.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 61",
"detail": "61",
"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 x30)",
"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\": 105.4, \"P5\": 88.5, \"P6\": 74.0}",
"result": "INFO"
},
{
"check": "C8",
"item": "clearance P1 outer surface vs hoop inner surface (record)",
"detail": "6.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": 105.4,
"P5": 88.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 61",
"hoop levels vs dim chain (worst)",
"hoop marks by zone (P4 x9, P5 x22, P3 x30)"
],
"detected": true
}
},
"reload": {
"ok": null,
"skipped": "일괄 실행(단일 세션) — 저장·재로드 안 함"
},
"unchanged": {
"ok": null,
"compared": 0,
"diffs": [],
"missing": [],
"against": null,
"skipped": "일괄 실행(단일 세션) — 앞 게이트 객체를 다시 만들지 않음"
},
"model": null,
"mode": "batch",
"secs": 36.7,
"session_secs": 147.2,
"inputs_sha": "253e67f7d32a72dd",
"job_id": "1f066af04dbb"
}
@@ -0,0 +1,15 @@
{
"id": "1f066af04dbb",
"pid": 5976,
"state": "완료",
"at": "2026-10-20 09:08:45",
"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 71/73 (planned FAIL 2, 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 147.4s, objects 3406, model C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\운곡교P4\\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": 105.4,
"P5": 88.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": 30,
"actual": 30,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 pipes closed & paired with centrelines",
"detail": "pipes 60 / centrelines 60",
"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": 28,
"actual": 28,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 pipes closed & paired with centrelines",
"detail": "pipes 28 / centrelines 28",
"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 30)",
"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 28)",
"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": 40197,
"actual": 40197.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": 40197,
"actual": 40197.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": 25618,
"actual": 25618.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 bottom EL",
"expected": 25618,
"actual": 25618.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 61",
"detail": "61",
"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 x30)",
"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\": 105.4, \"P5\": 88.5, \"P6\": 74.0}",
"result": "INFO"
},
{
"check": "C8",
"item": "clearance P1 outer surface vs hoop inner surface (record)",
"detail": "6.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": 105.4,
"P5": 88.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": 30,
"actual": 30,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 pipes closed & paired with centrelines",
"detail": "pipes 60 / centrelines 60",
"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": 28,
"actual": 28,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 pipes closed & paired with centrelines",
"detail": "pipes 28 / centrelines 28",
"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 30)",
"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 28)",
"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": 40197,
"actual": 40197.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": 40197,
"actual": 40197.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": 25618,
"actual": 25618.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 bottom EL",
"expected": 25618,
"actual": 25618.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 61",
"detail": "62",
"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 x30)",
"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\": 105.4, \"P5\": 88.5, \"P6\": 74.0}",
"result": "INFO"
},
{
"check": "C8",
"item": "clearance P1 outer surface vs hoop inner surface (record)",
"detail": "6.0 mm",
"result": "INFO"
}
]
}
@@ -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": 34,
"actual": 34,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 pipes closed & paired",
"detail": "34/34",
"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": 34,
"actual": 34,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B6 pipes closed & paired",
"detail": "34/34",
"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": 34,
"actual": 34,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 pipes closed & paired",
"detail": "34/34",
"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": 31,
"actual": 31,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B8 pipes closed & paired",
"detail": "31/31",
"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": 589,
"actual": 589,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 pipes closed & paired",
"detail": "589/589",
"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": 30,
"actual": 32,
"diff": 2,
"tol": 0,
"result": "FAIL"
},
{
"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=65/65)",
"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=34/34)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 positions vs chain (worst, n=34/34)",
"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 -3875",
"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": 8144,
"actual": 8144.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 positions = checkerboard of 38x31 grid",
"detail": "589 / 589",
"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,83 @@
{
"gate": "G3",
"checker": "g3_footing_rebar.py",
"verdict": "PASS",
"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
}
},
"unplanned_fails": [],
"planned_fails": [
{
"item": "B11 bar count vs schedule",
"reason": "작도 32본(우측 반 작도, 좌우 대칭) 채택 vs D3 30본 — P4 신규 불일치, 설계자 확인 대기"
},
{
"item": "B12 bar count vs schedule",
"reason": "작도 32본 채택(F2) vs D3 38본 (P1 28/34, P3 32/38) — OPEN #9"
}
],
"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": 44.1,
"session_secs": 147.2,
"inputs_sha": "253e67f7d32a72dd",
"job_id": "1f066af04dbb"
}
@@ -0,0 +1,15 @@
{
"id": "1f066af04dbb",
"pid": 5976,
"state": "완료",
"at": "2026-10-20 09:08:45",
"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 71/73 (planned FAIL 2, 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 147.4s, objects 3406, model C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\운곡교P4\\runs\\current\\G5.3dm"
]
}
@@ -0,0 +1,707 @@
{
"summary": {
"total": 73,
"passed": 70,
"failed": 3,
"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": 34,
"actual": 34,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 pipes closed & paired",
"detail": "34/34",
"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": 34,
"actual": 34,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B6 pipes closed & paired",
"detail": "34/34",
"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": 34,
"actual": 34,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 pipes closed & paired",
"detail": "34/34",
"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": 31,
"actual": 31,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B8 pipes closed & paired",
"detail": "31/31",
"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": 589,
"actual": 589,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 pipes closed & paired",
"detail": "589/589",
"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": 30,
"actual": 32,
"diff": 2,
"tol": 0,
"result": "FAIL"
},
{
"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=65/65)",
"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=34/34)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 positions vs chain (worst, n=34/34)",
"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 -3875",
"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": 8144,
"actual": 8144.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 positions = checkerboard of 38x31 grid",
"detail": "589 / 589",
"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": 70,
"failed": 3,
"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": 34,
"actual": 34,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 pipes closed & paired",
"detail": "34/34",
"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": 34,
"actual": 34,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B6 pipes closed & paired",
"detail": "34/34",
"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": 34,
"actual": 34,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 pipes closed & paired",
"detail": "34/34",
"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": 31,
"actual": 31,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B8 pipes closed & paired",
"detail": "31/31",
"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": 589,
"actual": 589,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 pipes closed & paired",
"detail": "589/589",
"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": 30,
"actual": 32,
"diff": 2,
"tol": 0,
"result": "FAIL"
},
{
"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=65/65)",
"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=34/34)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 positions vs chain (worst, n=34/34)",
"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 -3875",
"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": 8144,
"actual": 8144.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 positions = checkerboard of 38x31 grid",
"detail": "589 / 589",
"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.5,
"C2": 85.2,
"C3": 85.4,
"C4": 85.5,
"C5": 85.2,
"C6": 85.4,
"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": "재료표 C13 L 28.966(총중량 260.694÷9본과 일치)이 규칙 (max+min)/2 = 29.346과 380 mm 다름 — 재료표 자체 불일치(P3와 동일), 설계자 확인 대기"
},
{
"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": 46.3,
"session_secs": 147.2,
"inputs_sha": "253e67f7d32a72dd",
"job_id": "1f066af04dbb"
}
@@ -0,0 +1,15 @@
{
"id": "1f066af04dbb",
"pid": 5976,
"state": "완료",
"at": "2026-10-20 09:08:45",
"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 71/73 (planned FAIL 2, 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 147.4s, objects 3406, model C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\운곡교P4\\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\\운곡교P4\\runs\\current\\G5.3dm",
"mode": "batch",
"secs": 0.7,
"session_secs": 147.2,
"inputs_sha": "253e67f7d32a72dd",
"job_id": "1f066af04dbb"
}
@@ -0,0 +1,15 @@
{
"id": "1f066af04dbb",
"pid": 5976,
"state": "완료",
"at": "2026-10-20 09:08:45",
"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 71/73 (planned FAIL 2, 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 147.4s, objects 3406, model C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\운곡교P4\\runs\\current\\G5.3dm"
]
}
@@ -0,0 +1,37 @@
{
"G1": {
"decision": "승인",
"by": "심영표",
"note": "일괄 실행 자동 승인",
"at": "2026-10-20 09:08:45",
"inputs_sha": "253e67f7d32a72dd"
},
"G2": {
"decision": "승인",
"by": "심영표",
"note": "일괄 실행 자동 승인",
"at": "2026-10-20 09:08:45",
"inputs_sha": "253e67f7d32a72dd"
},
"G3": {
"decision": "승인",
"by": "심영표",
"note": "일괄 실행 자동 승인",
"at": "2026-10-20 09:08:45",
"inputs_sha": "253e67f7d32a72dd"
},
"G4": {
"decision": "승인",
"by": "심영표",
"note": "일괄 실행 자동 승인",
"at": "2026-10-20 09:08:45",
"inputs_sha": "253e67f7d32a72dd"
},
"G5": {
"decision": "승인",
"by": "심영표",
"note": "일괄 실행 자동 승인",
"at": "2026-10-20 09:08:45",
"inputs_sha": "253e67f7d32a72dd"
}
}
@@ -0,0 +1,21 @@
{
"state": "완료",
"by": "심영표",
"pid": 5976,
"at": "2026-10-20 09:08:45",
"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 71/73 (planned FAIL 2, 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 147.4s, objects 3406, model C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\운곡교P4\\runs\\current\\G5.3dm",
"G1 PASS 171/171 (계획 FAIL 0) → 승인",
"G2 PASS 42/42 (계획 FAIL 0) → 승인",
"G3 PASS 71/73 (계획 FAIL 2) → 승인",
"G4 PASS 110/116 (계획 FAIL 6) → 승인",
"G5 PASS 183/183 (계획 FAIL 0) → 승인"
]
}
@@ -0,0 +1,10 @@
{
"chapters_missing": [],
"vocab_bad": [],
"finding_rows": 85,
"finding_rows_without_source": 0,
"schedule_rows": 37,
"schedule_marks": 37,
"gate_rows": 5,
"ok": true
}
@@ -0,0 +1,257 @@
# 운곡교P4 교각 모델링 검토보고서 (초안)
> 앱이 게이트 결과·도면 표·승인 기록으로 자동 작성한 **초안**입니다. '오류'·'불일치' 판정과 3~5장의 서술은 담당자가 확인·확정해야 합니다. 작성일 2026-10-12 · 작성 심영표.
## 1. 개요
- 교각: 운곡교P4 (T형) · 좌표: 로컬(교각 중심 원점, X 교축직각, Y 교축, Z = EL×1000, mm) · 산출: .3dm
- 게이트 진행: 5/5 실행, **전 게이트 PASS·승인**
### 1.1 입력 도면
| 구분 | DWG | SHA-256(앞 16자) |
| :--- | :--- | :--- |
| D1 | C0050205-034-운곡교 교각도(1)(완도방향 P4).dwg | fff0eebf1728b23d |
| D2 | C0050205-035-운곡교 교각도(2)(완도방향 P4).dwg | 2ea47f8d81b1f4bb |
| D3 | C0050205-036-운곡교 교각도(3)(완도방향 P4).dwg | fd1ee8d7f57579f8 |
### 1.2 게이트 결과
| 게이트 | 내용 | 판정 | 검사 PASS | 승인 | 의견 |
| :--- | :--- | :--- | :--- | :--- | :--- |
| G1 | 형상(콘크리트·말뚝·받침대좌·패드) | PASS | 171/171 | 승인 심영표 2026-10-12 17:45:43 | 일괄 실행 자동 승인 |
| G2 | 기둥 철근 | PASS | 42/42 | 승인 심영표 2026-10-12 17:45:43 | 일괄 실행 자동 승인 |
| G3 | 확대기초 철근 | PASS | 72/73 | 승인 심영표 2026-10-12 17:45:43 | 일괄 실행 자동 승인 |
| G4 | 코핑 철근 | PASS | 111/116 | 승인 심영표 2026-10-12 17:45:43 | 일괄 실행 자동 승인 |
| G5 | 교량받침·솔플레이트 | PASS | 183/183 | 승인 심영표 2026-10-12 17:45:43 | 일괄 실행 자동 승인 |
## 2. 도면 오류·불일치
자동 등재 기준: 승인된 계획 FAIL → '불일치', 계획되지 않은 FAIL과 도면 표 값·입력값 차이 → '확인 필요'.
| 판정 | 게이트 | 항목 | 내용 | 근거 |
| :--- | :--- | :--- | :--- | :--- |
| 불일치 | G3 | B12 bar count vs schedule | 작도 28본 채택(F2) vs D3 34본 — OPEN #9 | 예외 승인: 사용자 2026-10-07 |
| 불일치 | G4 | C9 original length vs L (drawn widths ['1160.0', '1740.0'], K1 decision) | 작도 폭 채택(K1) | 예외 승인: 사용자 2026-10-07 |
| 불일치 | G4 | C10 original length vs L (drawn widths ['1160.0', '1740.0'], K1 decision) | 작도 폭 채택(K1) | 예외 승인: 사용자 2026-10-07 |
| 불일치 | G4 | C11 original length vs L (drawn widths ['1160.0', '1740.0'], K1 decision) | 작도 폭 채택(K1) | 예외 승인: 사용자 2026-10-07 |
| 불일치 | G4 | C12 original length vs L (drawn widths ['1106.0', '1686.0'], K1 decision) | 작도 폭 채택(C12·C13 drawn width) | 예외 승인: 사용자 2026-10-07 |
| 불일치 | G4 | C13 original length vs L (drawn widths ['1106.0', '1686.0'], K1 decision) | 작도 폭 채택(C12·C13 drawn width) | 예외 승인: 사용자 2026-10-07 |
| 확인 필요 | - | expected.G5.el_x.1 | 도면 표 값 40777 ≠ 입력값 43625 | D2 ELEVATION TABLE NO.1 EL.'X' 40.777 |
| 확인 필요 | - | expected.G1.seats.table.1 | 도면 표 값 [40777, 180, 50, 600, 510] ≠ 입력값 [43625, 164, 50, 700, 640] | D2 ELEVATION TABLE NO.1 EL.'X', h1, h2, A, B |
| 확인 필요 | - | expected.G5.h3 | 도면 표 값 165 ≠ 입력값 181 | D2 ELEVATION TABLE NO.1 h3 |
| 확인 필요 | - | expected.G5.el_x.2 | 도면 표 값 40852 ≠ 입력값 43697 | D2 ELEVATION TABLE NO.2 EL.'X' 40.852 |
| 확인 필요 | - | expected.G1.seats.table.2 | 도면 표 값 [40852, 180, 50, 600, 510] ≠ 입력값 [43697, 164, 50, 700, 640] | D2 ELEVATION TABLE NO.2 EL.'X', h1, h2, A, B |
| 확인 필요 | - | expected.G5.h3 | 도면 표 값 165 ≠ 입력값 181 | D2 ELEVATION TABLE NO.2 h3 |
| 확인 필요 | - | expected.G5.el_x.3 | 도면 표 값 40927 ≠ 입력값 43768 | D2 ELEVATION TABLE NO.3 EL.'X' 40.927 |
| 확인 필요 | - | expected.G1.seats.table.3 | 도면 표 값 [40927, 180, 50, 600, 650] ≠ 입력값 [43768, 164, 50, 700, 790] | D2 ELEVATION TABLE NO.3 EL.'X', h1, h2, A, B |
| 확인 필요 | - | expected.G5.h3 | 도면 표 값 165 ≠ 입력값 181 | D2 ELEVATION TABLE NO.3 h3 |
| 확인 필요 | - | expected.G5.el_x.4 | 도면 표 값 41002 ≠ 입력값 43840 | D2 ELEVATION TABLE NO.4 EL.'X' 41.002 |
| 확인 필요 | - | expected.G1.seats.table.4 | 도면 표 값 [41002, 180, 50, 600, 510] ≠ 입력값 [43840, 164, 50, 700, 640] | D2 ELEVATION TABLE NO.4 EL.'X', h1, h2, A, B |
| 확인 필요 | - | expected.G5.h3 | 도면 표 값 165 ≠ 입력값 181 | D2 ELEVATION TABLE NO.4 h3 |
| 확인 필요 | - | expected.G5.el_x.5 | 도면 표 값 41077 ≠ 입력값 43912 | D2 ELEVATION TABLE NO.5 EL.'X' 41.077 |
| 확인 필요 | - | expected.G1.seats.table.5 | 도면 표 값 [41077, 180, 50, 600, 510] ≠ 입력값 [43912, 164, 50, 700, 640] | D2 ELEVATION TABLE NO.5 EL.'X', h1, h2, A, B |
| 확인 필요 | - | expected.G5.h3 | 도면 표 값 165 ≠ 입력값 181 | D2 ELEVATION TABLE NO.5 h3 |
| 확인 필요 | - | expected.G5.el_x.6 | 도면 표 값 40752 ≠ 입력값 43600 | D2 ELEVATION TABLE NO.6 EL.'X' 40.752 |
| 확인 필요 | - | expected.G1.seats.table.6 | 도면 표 값 [40752, 155, 50, 700, 640] ≠ 입력값 [43600, 139, 50, 700, 540] | D2 ELEVATION TABLE NO.6 EL.'X', h1, h2, A, B |
| 확인 필요 | - | expected.G5.h3 | 도면 표 값 165 ≠ 입력값 181 | D2 ELEVATION TABLE NO.6 h3 |
| 확인 필요 | - | expected.G5.el_x.7 | 도면 표 값 40827 ≠ 입력값 43672 | D2 ELEVATION TABLE NO.7 EL.'X' 40.827 |
| 확인 필요 | - | expected.G1.seats.table.7 | 도면 표 값 [40827, 155, 50, 700, 640] ≠ 입력값 [43672, 139, 50, 700, 540] | D2 ELEVATION TABLE NO.7 EL.'X', h1, h2, A, B |
| 확인 필요 | - | expected.G5.h3 | 도면 표 값 165 ≠ 입력값 181 | D2 ELEVATION TABLE NO.7 h3 |
| 확인 필요 | - | expected.G5.el_x.8 | 도면 표 값 40902 ≠ 입력값 43744 | D2 ELEVATION TABLE NO.8 EL.'X' 40.902 |
| 확인 필요 | - | expected.G1.seats.table.8 | 도면 표 값 [40902, 155, 50, 700, 790] ≠ 입력값 [43744, 139, 50, 700, 650] | D2 ELEVATION TABLE NO.8 EL.'X', h1, h2, A, B |
| 확인 필요 | - | expected.G5.h3 | 도면 표 값 165 ≠ 입력값 181 | D2 ELEVATION TABLE NO.8 h3 |
| 확인 필요 | - | expected.G5.el_x.9 | 도면 표 값 40977 ≠ 입력값 43816 | D2 ELEVATION TABLE NO.9 EL.'X' 40.977 |
| 확인 필요 | - | expected.G1.seats.table.9 | 도면 표 값 [40977, 155, 50, 700, 640] ≠ 입력값 [43816, 139, 50, 700, 540] | D2 ELEVATION TABLE NO.9 EL.'X', h1, h2, A, B |
| 확인 필요 | - | expected.G5.h3 | 도면 표 값 165 ≠ 입력값 181 | D2 ELEVATION TABLE NO.9 h3 |
| 확인 필요 | - | expected.G5.el_x.10 | 도면 표 값 41052 ≠ 입력값 43887 | D2 ELEVATION TABLE NO.10 EL.'X' 41.052 |
| 확인 필요 | - | expected.G1.seats.table.10 | 도면 표 값 [41052, 155, 50, 700, 640] ≠ 입력값 [43887, 139, 50, 700, 540] | D2 ELEVATION TABLE NO.10 EL.'X', h1, h2, A, B |
| 확인 필요 | - | expected.G5.h3 | 도면 표 값 165 ≠ 입력값 181 | D2 ELEVATION TABLE NO.10 h3 |
| 확인 필요 | - | expected.G5.W.1 | 도면 표 값 610 ≠ 입력값 740 | D2 솔플레이트 상세 TABLE NO.1 W |
| 확인 필요 | - | expected.G5.L | 도면 표 값 700 ≠ 입력값 800 | D2 솔플레이트 상세 TABLE NO.1 L |
| 확인 필요 | - | expected.G5.W.2 | 도면 표 값 610 ≠ 입력값 740 | D2 솔플레이트 상세 TABLE NO.2 W |
| 확인 필요 | - | expected.G5.L | 도면 표 값 700 ≠ 입력값 800 | D2 솔플레이트 상세 TABLE NO.2 L |
| 확인 필요 | - | expected.G5.W.3 | 도면 표 값 750 ≠ 입력값 890 | D2 솔플레이트 상세 TABLE NO.3 W |
| 확인 필요 | - | expected.G5.L | 도면 표 값 700 ≠ 입력값 800 | D2 솔플레이트 상세 TABLE NO.3 L |
| 확인 필요 | - | expected.G5.W.4 | 도면 표 값 610 ≠ 입력값 740 | D2 솔플레이트 상세 TABLE NO.4 W |
| 확인 필요 | - | expected.G5.L | 도면 표 값 700 ≠ 입력값 800 | D2 솔플레이트 상세 TABLE NO.4 L |
| 확인 필요 | - | expected.G5.W.5 | 도면 표 값 610 ≠ 입력값 740 | D2 솔플레이트 상세 TABLE NO.5 W |
| 확인 필요 | - | expected.G5.L | 도면 표 값 700 ≠ 입력값 800 | D2 솔플레이트 상세 TABLE NO.5 L |
| 확인 필요 | - | expected.G5.W.6 | 도면 표 값 740 ≠ 입력값 640 | D2 솔플레이트 상세 TABLE NO.6 W |
| 확인 필요 | - | expected.G5.W.7 | 도면 표 값 740 ≠ 입력값 640 | D2 솔플레이트 상세 TABLE NO.7 W |
| 확인 필요 | - | expected.G5.W.8 | 도면 표 값 890 ≠ 입력값 750 | D2 솔플레이트 상세 TABLE NO.8 W |
| 확인 필요 | - | expected.G5.W.9 | 도면 표 값 740 ≠ 입력값 640 | D2 솔플레이트 상세 TABLE NO.9 W |
| 확인 필요 | - | expected.G5.W.10 | 도면 표 값 740 ≠ 입력값 640 | D2 솔플레이트 상세 TABLE NO.10 W |
| 확인 필요 | - | expected.G2.schedule_L.P1 | 도면 표 값 15273.0 ≠ 입력값 17247 | D3 철근재료표 (SD500) P1 |
| 확인 필요 | - | expected.G2.schedule_L.P2 | 도면 표 값 14579.0 ≠ 입력값 16553 | D3 철근재료표 (SD500) P2 |
| 확인 필요 | - | expected.G3.schedule.B5 | 도면 표 값 [10550.0, 34] ≠ 입력값 [9550, 32] | D3 철근재료표 (SD500) B5 |
| 확인 필요 | - | expected.G3.schedule.B6 | 도면 표 값 [14050.0, 34] ≠ 입력값 [13050, 32] | D3 철근재료표 (SD500) B6 |
| 확인 필요 | - | expected.G3.schedule.B8 | 도면 표 값 [10150.0, 31] ≠ 입력값 [9150, 29] | D3 철근재료표 (SD500) B8 |
| 확인 필요 | - | expected.G3.schedule.B1 | 도면 표 값 [8500.0, 42] ≠ 입력값 [8000, 38] | D3 철근재료표 (SD500) B1 |
| 확인 필요 | - | expected.G3.schedule.B2 | 도면 표 값 [12000.0, 42] ≠ 입력값 [11500, 38] | D3 철근재료표 (SD500) B2 |
| 확인 필요 | - | expected.G3.schedule.B4 | 도면 표 값 [8100.0, 39] ≠ 입력값 [7600, 35] | D3 철근재료표 (SD500) B4 |
| 확인 필요 | - | expected.G3.schedule.B3 | 도면 표 값 [8500.0, 42] ≠ 입력값 [8000, 38] | D3 철근재료표 (SD500) B3 |
| 확인 필요 | - | expected.G3.schedule.B7 | 도면 표 값 [10550.0, 34] ≠ 입력값 [9550, 32] | D3 철근재료표 (SD500) B7 |
| 확인 필요 | - | expected.G3.schedule.B10 | 도면 표 값 [36684.0, 9] ≠ 입력값 [33684, 9] | D3 철근재료표 (SD500) B10 |
| 확인 필요 | - | expected.G3.schedule.B11 | 도면 표 값 [10350.0, 30] ≠ 입력값 [9350, 28] | D3 철근재료표 (SD500) B11 |
| 확인 필요 | - | expected.G3.schedule.B12 | 도면 표 값 [8300.0, 38] ≠ 입력값 [7800, 34] | D3 철근재료표 (SD500) B12 |
| 확인 필요 | - | expected.G4.L.C1 | 도면 표 값 14491.0 ≠ 입력값 14490 | D3 철근재료표 (SD400) C1 |
| 확인 필요 | - | expected.G4.L.C2 | 도면 표 값 12082.0 ≠ 입력값 12081 | D3 철근재료표 (SD400) C2 |
| 확인 필요 | - | expected.G4.L.C4 | 도면 표 값 14491.0 ≠ 입력값 14490 | D3 철근재료표 (SD400) C4 |
| 확인 필요 | - | expected.G4.L.C5 | 도면 표 값 12082.0 ≠ 입력값 12081 | D3 철근재료표 (SD400) C5 |
| 확인 필요 | - | expected.G2.schedule_L.P4 | 도면 표 값 5667.0 ≠ 입력값 5636 | D3 철근재료표 (SD400) P4 |
| 확인 필요 | - | params.rebar_marks.P4 | 도면 표 값 {"dia": "H29", "shape": "V"} ≠ 입력값 {"dia": "H19", "shape": "V"} | D3 철근재료표 (SD400) P4 |
| 확인 필요 | - | expected.G2.schedule_L.P5 | 도면 표 값 5667.0 ≠ 입력값 5636 | D3 철근재료표 (SD400) P5 |
| 확인 필요 | - | params.rebar_marks.P5 | 도면 표 값 {"dia": "H29", "shape": "IX"} ≠ 입력값 {"dia": "H19", "shape": "IX"} | D3 철근재료표 (SD400) P5 |
| 확인 필요 | - | expected.G4.L.C3 | 도면 표 값 12107.0 ≠ 입력값 12106 | D3 철근재료표 (SD400) C3 |
| 확인 필요 | - | params.rebar_marks.C3 | 도면 표 값 {"dia": "H25", "shape": "VIII"} ≠ 입력값 {"dia": "H29", "shape": "VIII"} | D3 철근재료표 (SD400) C3 |
| 확인 필요 | - | expected.G4.L.C6 | 도면 표 값 12107.0 ≠ 입력값 12106 | D3 철근재료표 (SD400) C6 |
| 확인 필요 | - | params.rebar_marks.C6 | 도면 표 값 {"dia": "H25", "shape": "VIII"} ≠ 입력값 {"dia": "H29", "shape": "VIII"} | D3 철근재료표 (SD400) C6 |
| 확인 필요 | - | expected.G4.L.C9 | 도면 표 값 8503.0 ≠ 입력값 8647 | D3 철근재료표 (SD400) C9 |
| 확인 필요 | - | expected.G4.L.C10 | 도면 표 값 10323.0 ≠ 입력값 10310 | D3 철근재료표 (SD400) C10 |
| 확인 필요 | - | expected.G4.L.C11 | 도면 표 값 8954.0 ≠ 입력값 8934 | D3 철근재료표 (SD400) C11 |
| 확인 필요 | - | expected.G4.L.C13 | 도면 표 값 28966.0 ≠ 입력값 29345 | D3 철근재료표 (SD400) C13 |
| 확인 필요 | - | expected.G4.L.C15 | 도면 표 값 2748.0 ≠ 입력값 2784 | D3 철근재료표 (SD400) C15 |
| 확인 필요 | - | expected.G4.L.C16 | 도면 표 값 5600.0 ≠ 입력값 5611 | D3 철근재료표 (SD400) C16 |
| 확인 필요 | - | expected.G2.schedule_n.P3 | 도면 표 값 30 ≠ 입력값 36 | D3 철근재료표 (SD400) P3 |
| 확인 필요 | - | expected.G3.schedule.B9 | 도면 표 값 [2155.0, 589] ≠ 입력값 [2155, 493] | D3 철근재료표 (SD400) B9 |
| 확인 필요 | - | expected.G2.schedule_n.P6 | 도면 표 값 28 ≠ 입력값 36 | D3 철근재료표 (SD400) P6 |
## 3. 개선방안
[담당자 작성] 2장 항목별로 도면 수정·설계자 확인 방안을 적습니다.
## 4. 추가되어야 할 사항
[담당자 작성] 도면에 없어 추정·가정으로 모델링한 사항(입력 묶음의 `[추론]` 표기)을 정리합니다.
- 자동 확인: `[추론]` 표기가 있는 입력 묶음 — coping_rebar
## 5. 누락사항
[담당자 작성] 도면에서 빠진 치수·표·상세를 적습니다.
- 자동 확인: 재료표에 있으나 모델 대상이 아닌 마크 — UA1 (범위 결정 확인)
## 6. 철근재료표 (원본 vs 모델)
원본 = 도면 재료표 판독값(동일 기호 " 해석 포함), 모델 = 게이트 검사의 본수 실측값.
| 마크 | 형식 | 직경 | 재료표 수량 | 재료표 L(mm) | 모델 본수 | 대조 | 근거 |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| P1 | XIV | S32 | 46 | 15273 | 46 | 일치 | D3 철근재료표 (SD500) P1 |
| P2 | XVI | S32 | 46 | 14579 | 46 | 일치 | D3 철근재료표 (SD500) P2 |
| B5 | XII | S29 | 34 | 10550 | 32 | 불일치 | D3 철근재료표 (SD500) B5 |
| B6 | XII | S29 | 34 | 14050 | 32 | 불일치 | D3 철근재료표 (SD500) B6 |
| B8 | XVI | S29 | 31 | 10150 | 29 | 불일치 | D3 철근재료표 (SD500) B8 |
| B1 | III | S25 | 42 | 8500 | 38 | 불일치 | D3 철근재료표 (SD500) B1 |
| B2 | XII | S25 | 42 | 12000 | 38 | 불일치 | D3 철근재료표 (SD500) B2 |
| B4 | I | S25 | 39 | 8100 | 35 | 불일치 | D3 철근재료표 (SD500) B4 |
| B3 | III | S19 | 42 | 8500 | 38 | 불일치 | D3 철근재료표 (SD500) B3 |
| B7 | XII | S19 | 34 | 10550 | 32 | 불일치 | D3 철근재료표 (SD500) B7 |
| B10 | XIII | S19 | 9 | 36684 | 9 | 일치 | D3 철근재료표 (SD500) B10 |
| B11 | XII | S16 | 30 | 10350 | 28 | 불일치 | D3 철근재료표 (SD500) B11 |
| B12 | III | S16 | 38 | 8300 | 28 | 불일치 | D3 철근재료표 (SD500) B12 |
| UA1 | - | S16 | - | - | 모델 외 | - | D3 철근재료표 (SD500) UA1 |
| C1 | VIII | H29 | 12 | 14491 | 12 | 일치 | D3 철근재료표 (SD400) C1 |
| C2 | VIII | H29 | 12 | 12082 | 12 | 일치 | D3 철근재료표 (SD400) C2 |
| C4 | VIII | H29 | 12 | 14491 | 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 | 12107 | 12 | 일치 | D3 철근재료표 (SD400) C3 |
| C6 | VIII | H25 | 12 | 12107 | 12 | 일치 | D3 철근재료표 (SD400) C6 |
| C9 | IV | H25 | 60 | 8503 | 60 | 일치 | D3 철근재료표 (SD400) C9 |
| C10 | IV | H25 | 21 | 10323 | 21 | 일치 | D3 철근재료표 (SD400) C10 |
| C11 | IV | H25 | 60 | 8954 | 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 | 2748 | 13 | 일치 | D3 철근재료표 (SD400) C15 |
| C16 | II | H19 | 13 | 5600 | 13 | 일치 | D3 철근재료표 (SD400) C16 |
| P3 | VI | H19 | 30 | 6436 | 36 | 불일치 | D3 철근재료표 (SD400) P3 |
| S1 | III | H19 | 50 | 3800 | 50 | 일치 | D3 철근재료표 (SD400) S1 |
| S2 | III | H19 | 105 | 2500 | 105 | 일치 | D3 철근재료표 (SD400) S2 |
| B9 | XI | H16 | 589 | 2155 | 493 | 불일치 | D3 철근재료표 (SD400) B9 |
| P6 | III | H16 | 28 | 2136 | 36 | 불일치 | D3 철근재료표 (SD400) P6 |
## 7. 철근상세 (기록)
원길이·곡선길이·피복은 판정이 아닌 기록 값입니다(요구사항 §6.2).
### 7.1 기둥 (G2)
| 항목 | 값 |
| :--- | :--- |
| P1 curve length - L (record, fillets shorten hooks) | min 0.1 / max 0.1 mm |
| P2 curve length - L (record, fillets shorten hooks) | min 0.0 / max 0.0 mm |
| P3 curve length - L (record, fillets shorten hooks) | min -493.1 / max -493.1 mm |
| P4 curve length - L (record, fillets shorten hooks) | min 0.0 / max 0.0 mm |
| P5 curve length - L (record, fillets shorten hooks) | min 0.0 / max 0.0 mm |
| P6 curve length - L (record, fillets shorten hooks) | min -20.6 / max -20.6 mm |
| concrete union for cover | 1 brep |
| min cover to concrete surface per mark (record) | {"P1": 113.5, "P2": 158.5, "P3": 93.5, "P4": 109.7, "P5": 93.5, "P6": 74.0} |
### 7.2 확대기초 (G3)
| 항목 | 값 |
| :--- | :--- |
| B1 curve length - L (bend fillets) | min -48.3 / max -48.3 |
| B2 curve length - L (bend fillets) | min -48.3 / max -48.3 |
| B3 curve length - L (bend fillets) | min -36.7 / max -36.7 |
| B4 curve length - L (bend fillets) | min 0.0 / max 0.0 |
| B5 curve length - L (bend fillets) | min -56.0 / max -56.0 |
| B6 curve length - L (bend fillets) | min -56.0 / max -56.0 |
| B7 curve length - L (bend fillets) | min -36.7 / max -36.7 |
| B8 curve length - L (bend fillets) | min 0.0 / max 0.0 |
| B9 curve length - L (bend fillets) | min -10.3 / max -10.3 |
| B10 curve length - L (bend fillets) | min -73.4 / max -73.4 |
| B11 curve length - L (bend fillets) | min -20.6 / max -20.6 |
| B12 curve length - L (bend fillets) | min -20.6 / max -20.6 |
| min cover to concrete exterior per mark | {"B1": 87.5, "B2": 87.5, "B3": 90.5, "B4": 87.5, "B5": 58.5, "B6": 57.5, "B7": 90.5, "B8": 85.5, "B9": 69.5, "B10": 66.5, "B11": 92.0, "B12": 92.0} |
### 7.3 코핑 (G4)
| 항목 | 값 |
| :--- | :--- |
| C1 curve - original length | -41.9 / -41.9 |
| C2 curve - original length | -41.9 / -41.9 |
| C3 curve - original length | -41.9 / -41.9 |
| C4 curve - original length | -41.9 / -41.9 |
| C5 curve - original length | -41.9 / -41.9 |
| C6 curve - original length | -41.9 / -41.9 |
| C7 curve - original length | -0.0 / -0.0 |
| C8 curve - original length | -0.0 / -0.0 |
| C9 curve - original length | -1705.2 / -1705.2 |
| C10 curve - original length | -1705.2 / -1705.2 |
| C11 curve - original length | -1705.2 / -1705.2 |
| C12 curve - original length | -2525.2 / -2525.2 |
| C13 curve - original length | -2525.2 / -2525.2 |
| C14 curve - original length | -36.7 / -36.7 |
| C15 curve - original length | -36.7 / -36.7 |
| C16 curve - original length | -18.3 / -18.3 |
| S1 curve - original length | -36.7 / -36.7 |
| S2 curve - original length | -36.7 / -36.7 |
| min cover to coping surface per mark (top face under pedestals counted) | {"C1": 85.4, "C2": 85.2, "C3": 85.5, "C4": 85.4, "C5": 85.2, "C6": 85.5, "C7": 84.4, "C8": 84.4, "C9": 87.5, "C10": 87.5, "C11": 87.1, "C12": 87.4, "C13": 87.4, "C14": 90.5, "C15": 90.1, "C16": 90.5, "S1": 40.5, "S2": 90.5} |
## 8. 검증 방법
- 검사기는 생성 입력(params)이 아니라 도면 문자·표에서 옮긴 독립 기대값(expected)만 읽습니다.
- 게이트마다 G1부터 새로 생성 → 저장 파일을 다시 열어 검사(재로드) → 객체를 수평·수직으로 옮겨 FAIL이 나는지 확인(음성 시험) → 앞 게이트 객체 지문 비교.
- 일괄 실행(단일 Rhino 세션)으로 검사한 게이트는 중간 저장·재로드와 앞 게이트 비교를 하지 않으며, 표에 '생략(일괄 실행)'으로 적습니다. 모델은 마지막 G5만 저장합니다.
| 게이트 | 재로드 | 음성 시험 | 앞 게이트 객체 |
| :--- | :--- | :--- | :--- |
| G1 | 생략(일괄 실행) | 수평 검출 / 수직 검출 | 생략(일괄 실행) |
| G2 | 생략(일괄 실행) | 수평 검출 / 수직 검출 | 생략(일괄 실행) |
| G3 | 생략(일괄 실행) | 수평 검출 / 수직 검출 | 생략(일괄 실행) |
| G4 | 생략(일괄 실행) | 수평 검출 / 수직 검출 | 생략(일괄 실행) |
| G5 | 생략(일괄 실행) | 수평 검출 / 수직 검출 | 생략(일괄 실행) |
## 변경 이력
| 버전 | 일자 | 내용 |
| :--- | :--- | :--- |
| v0.1.00 | 2026-10-12 | 앱 자동 생성 초안 |