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

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

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

No files matched your search

File diff suppressed because it is too large. Load diff
@@ -0,0 +1,68 @@
{
"gate": "G1",
"checker": "g1_pedestal.py",
"verdict": "PASS",
"summary": {
"total": 138,
"passed": 138,
"failed": 0,
"volumes_m3": {
"lean": 6.241,
"footing": 154.154,
"column": 64.242,
"coping": 86.923,
"pile_each": 0
}
},
"unplanned_fails": [],
"planned_fails": [],
"negative": {
"negH": {
"move": {
"id": "BP02",
"d": [
3,
0,
0
]
},
"new_fails": [
"NO.2 pad centre X (bbox)"
],
"detected": true
},
"negV": {
"move": {
"id": "BS03",
"d": [
0,
0,
2
]
},
"new_fails": [
"NO.3 on one pedestal",
"NO.8 on one pedestal"
],
"detected": true
}
},
"reload": {
"ok": null,
"skipped": "일괄 실행(단일 세션) — 저장·재로드 안 함"
},
"unchanged": {
"ok": null,
"compared": 0,
"diffs": [],
"missing": [],
"against": null,
"skipped": "일괄 실행(단일 세션) — 앞 게이트 객체를 다시 만들지 않음"
},
"model": null,
"mode": "batch",
"secs": 0.8,
"session_secs": 167.4,
"inputs_sha": "19d5dc4fdc89c918",
"job_id": "2cde48eca80c"
}
@@ -0,0 +1,15 @@
{
"id": "2cde48eca80c",
"pid": 22652,
"state": "완료",
"at": "2026-10-15 13:12:11",
"log": [
"[batch] one Rhino session: build G1..G5, check G1, G2, G3, G4, G5 (no per-gate save / reload)",
"[G1] PASS checks 138/138 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G2] PASS checks 41/41 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G3] PASS checks 72/76 (planned FAIL 4, unplanned 0) negative H/V True/True (batch)",
"[G4] PASS checks 189/189 (planned FAIL 0, 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 167.7s, objects 3043, model C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\새재1교P1\\runs\\current\\G5.3dm"
]
}
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,400 @@
{
"summary": {
"total": 41,
"passed": 41,
"failed": 0,
"min_cover": {
"P1": 109.0,
"P2": 134.0,
"P3": 84.0,
"P4": 90.0,
"P5": 65.5
}
},
"results": [
{
"check": "C8",
"item": "P1 bar count",
"expected": 49,
"actual": 49,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 pipes closed & paired with centrelines",
"detail": "49/49",
"result": "PASS"
},
{
"check": "C8",
"item": "P2 bar count",
"expected": 49,
"actual": 49,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 pipes closed & paired with centrelines",
"detail": "49/49",
"result": "PASS"
},
{
"check": "C8",
"item": "P3 bar count",
"expected": 45,
"actual": 45,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 pipes closed & paired with centrelines",
"detail": "90/90",
"result": "PASS"
},
{
"check": "C8",
"item": "P4 bar count",
"expected": 27,
"actual": 27,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 pipes closed & paired with centrelines",
"detail": "54/54",
"result": "PASS"
},
{
"check": "C8",
"item": "P5 bar count",
"expected": 80,
"actual": 80,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 pipes closed & paired with centrelines",
"detail": "80/80",
"result": "PASS"
},
{
"check": "C8",
"item": "P1 original length (+coupler) vs schedule L (worst of 49)",
"expected": 0,
"actual": 0.071,
"diff": 0.071,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 curve length - L (record)",
"detail": "min 0.1 / max 0.1 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P1 curve length (+coupler) vs L (no fillet)",
"expected": 0,
"actual": 0.071,
"diff": 0.071,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 original length (+coupler) vs schedule L (worst of 49)",
"expected": 0,
"actual": 0.071,
"diff": 0.071,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 curve length - L (record)",
"detail": "min 0.1 / max 0.1 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P2 curve length (+coupler) vs L (no fillet)",
"expected": 0,
"actual": 0.071,
"diff": 0.071,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 original length (+coupler) vs schedule L (worst of 45)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 curve length - L (record)",
"detail": "min -0.8 / max -0.8 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P3 curve length (+coupler) vs L (no fillet)",
"expected": 0,
"actual": 0.824,
"diff": 0.824,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 original length (+coupler) vs schedule L (worst of 27)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 curve length - L (record)",
"detail": "min 0.3 / max 0.3 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P4 curve length (+coupler) vs L (no fillet)",
"expected": 0,
"actual": 0.327,
"diff": 0.327,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 original length (+coupler) vs schedule L (worst of 80)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 curve length - L (record)",
"detail": "min -224.0 / max -224.0 mm",
"result": "INFO"
},
{
"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 start + i*360/49 (worst, deg)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 top EL (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 hook leg EL (footing bottom + 150) (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "hoop level count 72",
"detail": "72",
"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 (P3 x5, P4 x18, P3 x36, P4 x9, P3 x4)",
"detail": "",
"result": "PASS"
},
{
"check": "C8",
"item": "P3 radius (mid point)",
"expected": 1004,
"actual": 1003.5,
"diff": -0.5,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 radius (mid point)",
"expected": 1001,
"actual": 1000.5,
"diff": -0.5,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 radius (mid point)",
"expected": 1004,
"actual": 1003.5,
"diff": -0.5,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 radius (mid point)",
"expected": 1001,
"actual": 1000.5,
"diff": -0.5,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 radius (mid point)",
"expected": 1004,
"actual": 1003.5,
"diff": -0.5,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 inner ring radius (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 hooks bent inwards",
"detail": "",
"result": "PASS"
},
{
"check": "C8",
"item": "tie X / Y levels 40 each",
"detail": "X 40 Y 40",
"result": "PASS"
},
{
"check": "C8",
"item": "tie X levels vs chain (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "tie Y = X + 19 (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": "min cover to concrete surface per mark (record)",
"detail": "{\"P1\": 109.0, \"P2\": 134.0, \"P3\": 84.0, \"P4\": 90.0, \"P5\": 65.5}",
"result": "INFO"
}
]
}
@@ -0,0 +1,69 @@
{
"gate": "G2",
"checker": "g2_ring.py",
"verdict": "PASS",
"summary": {
"total": 41,
"passed": 41,
"failed": 0,
"min_cover": {
"P1": 109.0,
"P2": 134.0,
"P3": 84.0,
"P4": 90.0,
"P5": 65.5
}
},
"unplanned_fails": [],
"planned_fails": [],
"negative": {
"negH": {
"move": {
"mark": "P1",
"d": [
5,
0,
0
]
},
"new_fails": [
"P1 radius (worst)"
],
"detected": true
},
"negV": {
"move": {
"mark": "P3",
"d": [
0,
0,
5
]
},
"new_fails": [
"hoop level count 72",
"hoop levels vs dim chain (worst)",
"hoop marks by zone (P3 x5, P4 x18, P3 x36, P4 x9, P3 x4)"
],
"detected": true
}
},
"reload": {
"ok": null,
"skipped": "일괄 실행(단일 세션) — 저장·재로드 안 함"
},
"unchanged": {
"ok": null,
"compared": 0,
"diffs": [],
"missing": [],
"against": null,
"skipped": "일괄 실행(단일 세션) — 앞 게이트 객체를 다시 만들지 않음"
},
"model": null,
"mode": "batch",
"secs": 41.5,
"session_secs": 167.4,
"inputs_sha": "19d5dc4fdc89c918",
"job_id": "2cde48eca80c"
}
@@ -0,0 +1,15 @@
{
"id": "2cde48eca80c",
"pid": 22652,
"state": "완료",
"at": "2026-10-15 13:12:11",
"log": [
"[batch] one Rhino session: build G1..G5, check G1, G2, G3, G4, G5 (no per-gate save / reload)",
"[G1] PASS checks 138/138 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G2] PASS checks 41/41 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G3] PASS checks 72/76 (planned FAIL 4, unplanned 0) negative H/V True/True (batch)",
"[G4] PASS checks 189/189 (planned FAIL 0, 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 167.7s, objects 3043, model C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\새재1교P1\\runs\\current\\G5.3dm"
]
}
@@ -0,0 +1,400 @@
{
"summary": {
"total": 41,
"passed": 40,
"failed": 1,
"min_cover": {
"P1": 104.0,
"P2": 134.0,
"P3": 84.0,
"P4": 90.0,
"P5": 65.5
}
},
"results": [
{
"check": "C8",
"item": "P1 bar count",
"expected": 49,
"actual": 49,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 pipes closed & paired with centrelines",
"detail": "49/49",
"result": "PASS"
},
{
"check": "C8",
"item": "P2 bar count",
"expected": 49,
"actual": 49,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 pipes closed & paired with centrelines",
"detail": "49/49",
"result": "PASS"
},
{
"check": "C8",
"item": "P3 bar count",
"expected": 45,
"actual": 45,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 pipes closed & paired with centrelines",
"detail": "90/90",
"result": "PASS"
},
{
"check": "C8",
"item": "P4 bar count",
"expected": 27,
"actual": 27,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 pipes closed & paired with centrelines",
"detail": "54/54",
"result": "PASS"
},
{
"check": "C8",
"item": "P5 bar count",
"expected": 80,
"actual": 80,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 pipes closed & paired with centrelines",
"detail": "80/80",
"result": "PASS"
},
{
"check": "C8",
"item": "P1 original length (+coupler) vs schedule L (worst of 49)",
"expected": 0,
"actual": 0.071,
"diff": 0.071,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 curve length - L (record)",
"detail": "min 0.1 / max 0.1 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P1 curve length (+coupler) vs L (no fillet)",
"expected": 0,
"actual": 0.071,
"diff": 0.071,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 original length (+coupler) vs schedule L (worst of 49)",
"expected": 0,
"actual": 0.071,
"diff": 0.071,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 curve length - L (record)",
"detail": "min 0.1 / max 0.1 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P2 curve length (+coupler) vs L (no fillet)",
"expected": 0,
"actual": 0.071,
"diff": 0.071,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 original length (+coupler) vs schedule L (worst of 45)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 curve length - L (record)",
"detail": "min -0.8 / max -0.8 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P3 curve length (+coupler) vs L (no fillet)",
"expected": 0,
"actual": 0.824,
"diff": 0.824,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 original length (+coupler) vs schedule L (worst of 27)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 curve length - L (record)",
"detail": "min 0.3 / max 0.3 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P4 curve length (+coupler) vs L (no fillet)",
"expected": 0,
"actual": 0.327,
"diff": 0.327,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 original length (+coupler) vs schedule L (worst of 80)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 curve length - L (record)",
"detail": "min -224.0 / max -224.0 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P1 radius (worst)",
"expected": 0,
"actual": 5.0,
"diff": 5.0,
"tol": 0.5,
"result": "FAIL"
},
{
"check": "C8",
"item": "P1 angle vs start + i*360/49 (worst, deg)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 top EL (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 hook leg EL (footing bottom + 150) (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "hoop level count 72",
"detail": "72",
"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 (P3 x5, P4 x18, P3 x36, P4 x9, P3 x4)",
"detail": "",
"result": "PASS"
},
{
"check": "C8",
"item": "P3 radius (mid point)",
"expected": 1004,
"actual": 1003.5,
"diff": -0.5,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 radius (mid point)",
"expected": 1001,
"actual": 1000.5,
"diff": -0.5,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 radius (mid point)",
"expected": 1004,
"actual": 1003.5,
"diff": -0.5,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 radius (mid point)",
"expected": 1001,
"actual": 1000.5,
"diff": -0.5,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 radius (mid point)",
"expected": 1004,
"actual": 1003.5,
"diff": -0.5,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 inner ring radius (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 hooks bent inwards",
"detail": "",
"result": "PASS"
},
{
"check": "C8",
"item": "tie X / Y levels 40 each",
"detail": "X 40 Y 40",
"result": "PASS"
},
{
"check": "C8",
"item": "tie X levels vs chain (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "tie Y = X + 19 (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": "min cover to concrete surface per mark (record)",
"detail": "{\"P1\": 104.0, \"P2\": 134.0, \"P3\": 84.0, \"P4\": 90.0, \"P5\": 65.5}",
"result": "INFO"
}
]
}
@@ -0,0 +1,400 @@
{
"summary": {
"total": 41,
"passed": 38,
"failed": 3,
"min_cover": {
"P1": 109.0,
"P2": 134.0,
"P3": 84.0,
"P4": 90.0,
"P5": 65.5
}
},
"results": [
{
"check": "C8",
"item": "P1 bar count",
"expected": 49,
"actual": 49,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 pipes closed & paired with centrelines",
"detail": "49/49",
"result": "PASS"
},
{
"check": "C8",
"item": "P2 bar count",
"expected": 49,
"actual": 49,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 pipes closed & paired with centrelines",
"detail": "49/49",
"result": "PASS"
},
{
"check": "C8",
"item": "P3 bar count",
"expected": 45,
"actual": 45,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 pipes closed & paired with centrelines",
"detail": "90/90",
"result": "PASS"
},
{
"check": "C8",
"item": "P4 bar count",
"expected": 27,
"actual": 27,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 pipes closed & paired with centrelines",
"detail": "54/54",
"result": "PASS"
},
{
"check": "C8",
"item": "P5 bar count",
"expected": 80,
"actual": 80,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 pipes closed & paired with centrelines",
"detail": "80/80",
"result": "PASS"
},
{
"check": "C8",
"item": "P1 original length (+coupler) vs schedule L (worst of 49)",
"expected": 0,
"actual": 0.071,
"diff": 0.071,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 curve length - L (record)",
"detail": "min 0.1 / max 0.1 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P1 curve length (+coupler) vs L (no fillet)",
"expected": 0,
"actual": 0.071,
"diff": 0.071,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 original length (+coupler) vs schedule L (worst of 49)",
"expected": 0,
"actual": 0.071,
"diff": 0.071,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 curve length - L (record)",
"detail": "min 0.1 / max 0.1 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P2 curve length (+coupler) vs L (no fillet)",
"expected": 0,
"actual": 0.071,
"diff": 0.071,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 original length (+coupler) vs schedule L (worst of 45)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 curve length - L (record)",
"detail": "min -0.8 / max -0.8 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P3 curve length (+coupler) vs L (no fillet)",
"expected": 0,
"actual": 0.824,
"diff": 0.824,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 original length (+coupler) vs schedule L (worst of 27)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 curve length - L (record)",
"detail": "min 0.3 / max 0.3 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P4 curve length (+coupler) vs L (no fillet)",
"expected": 0,
"actual": 0.327,
"diff": 0.327,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 original length (+coupler) vs schedule L (worst of 80)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 curve length - L (record)",
"detail": "min -224.0 / max -224.0 mm",
"result": "INFO"
},
{
"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 start + i*360/49 (worst, deg)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 top EL (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 hook leg EL (footing bottom + 150) (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "hoop level count 72",
"detail": "73",
"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 (P3 x5, P4 x18, P3 x36, P4 x9, P3 x4)",
"detail": "",
"result": "FAIL"
},
{
"check": "C8",
"item": "P3 radius (mid point)",
"expected": 1004,
"actual": 1003.5,
"diff": -0.5,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 radius (mid point)",
"expected": 1001,
"actual": 1000.5,
"diff": -0.5,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 radius (mid point)",
"expected": 1004,
"actual": 1003.5,
"diff": -0.5,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 radius (mid point)",
"expected": 1001,
"actual": 1000.5,
"diff": -0.5,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 radius (mid point)",
"expected": 1004,
"actual": 1003.5,
"diff": -0.5,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 inner ring radius (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 hooks bent inwards",
"detail": "",
"result": "PASS"
},
{
"check": "C8",
"item": "tie X / Y levels 40 each",
"detail": "X 40 Y 40",
"result": "PASS"
},
{
"check": "C8",
"item": "tie X levels vs chain (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "tie Y = X + 19 (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": "min cover to concrete surface per mark (record)",
"detail": "{\"P1\": 109.0, \"P2\": 134.0, \"P3\": 84.0, \"P4\": 90.0, \"P5\": 65.5}",
"result": "INFO"
}
]
}
@@ -0,0 +1,653 @@
{
"summary": {
"total": 76,
"passed": 72,
"failed": 4,
"cover": {
"B1": 87.5,
"B2": 87.5,
"B3": 87.5,
"B4": 87.5,
"B5": 87.5,
"B6": 65.0,
"B7": 87.5,
"B8": 65.0,
"B9": 68.5,
"B10": 68.0,
"B11": 90.5,
"B12": 90.5
}
},
"results": [
{
"check": "C9",
"item": "B1 bar count vs schedule",
"expected": 31,
"actual": 31,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B1 pipes closed & paired",
"detail": "31/31",
"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": "B2 bar count vs schedule",
"expected": 31,
"actual": 31,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 pipes closed & paired",
"detail": "31/31",
"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": "B3 bar count vs schedule",
"expected": 30,
"actual": 30,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 pipes closed & paired",
"detail": "30/30",
"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": "B4 bar count vs schedule",
"expected": 30,
"actual": 30,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B4 pipes closed & paired",
"detail": "30/30",
"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": "B5 bar count vs schedule",
"expected": 27,
"actual": 26,
"diff": -1,
"tol": 0,
"result": "FAIL"
},
{
"check": "C9",
"item": "B5 pipes closed & paired",
"detail": "26/26",
"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": "B6 bar count vs schedule",
"expected": 27,
"actual": 26,
"diff": -1,
"tol": 0,
"result": "FAIL"
},
{
"check": "C9",
"item": "B6 pipes closed & paired",
"detail": "26/26",
"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": "B7 bar count vs schedule",
"expected": 26,
"actual": 25,
"diff": -1,
"tol": 0,
"result": "FAIL"
},
{
"check": "C9",
"item": "B7 pipes closed & paired",
"detail": "25/25",
"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": "B8 bar count vs schedule",
"expected": 26,
"actual": 25,
"diff": -1,
"tol": 0,
"result": "FAIL"
},
{
"check": "C9",
"item": "B8 pipes closed & paired",
"detail": "25/25",
"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": "B9 bar count vs schedule",
"expected": 45,
"actual": 45,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 pipes closed & paired",
"detail": "45/45",
"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": "B10 bar count vs schedule",
"expected": 4,
"actual": 4,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 pipes closed & paired",
"detail": "4/4",
"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": "B11 bar count vs schedule",
"expected": 11,
"actual": 11,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B11 pipes closed & paired",
"detail": "11/11",
"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": "B12 bar count vs schedule",
"expected": 23,
"actual": 23,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B12 pipes closed & paired",
"detail": "23/23",
"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": "y_bottom positions vs chain (61/61, worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "y_bottom straight part level 10132 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "y_bottom span 2 x 3750 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "y_bottom leg 1800 up (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "y_bottom B2/B4 alternate from the edge (F3)",
"detail": "B2 31",
"result": "PASS"
},
{
"check": "C9",
"item": "x_bottom positions vs chain (51/51, worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "x_bottom straight part level 10154.5 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "x_bottom span 2 x 3750 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "x_bottom leg 2400 up (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "x_bottom B6/B8 alternate from the edge (F3)",
"detail": "B6 26",
"result": "PASS"
},
{
"check": "C9",
"item": "y_top positions vs chain (61/61, worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "y_top straight part level 12532 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "y_top span 2 x 3750 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "y_top leg 900 down (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "y_top B1/B3 alternate from the edge (F3)",
"detail": "B1 31",
"result": "PASS"
},
{
"check": "C9",
"item": "x_top positions vs chain (51/51, worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "x_top straight part level 12509.5 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "x_top span 2 x 3750 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "x_top leg 1200 down (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "x_top B5/B7 alternate from the edge (F3)",
"detail": "B5 26",
"result": "PASS"
},
{
"check": "C9",
"item": "B12 levels / positions (23)",
"detail": "[(10751.0, -3600.0), (10751.0, -2600.0), (10751.0, -1600.0)] vs [(10751.0, -3600.0), (10751.0, -2600.0), (10751.0, -1600.0)]",
"result": "PASS"
},
{
"check": "C9",
"item": "B11 levels / positions (11)",
"detail": "[(10732.0, -3450.0), (10732.0, -1050.0), (10732.0, 1350.0)] vs [(10732.0, -3450.0), (10732.0, -1050.0), (10732.0, 1350.0)]",
"result": "PASS"
},
{
"check": "C9",
"item": "B10 levels (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 loop size X (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 grid 45 (rows 6, 8 / 7 per row)",
"detail": "45",
"result": "PASS"
},
{
"check": "C9",
"item": "B9 height top-bottom (worst)",
"expected": 2444,
"actual": 2444.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 span along Y a (worst)",
"expected": 1244,
"actual": 1244.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 hooks the top and bottom Y bars",
"detail": "",
"result": "PASS"
},
{
"check": "C9",
"item": "B1 sample points outside the footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 sample points outside the footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 sample points outside the footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B4 sample points outside the footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 sample points outside the footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B6 sample points outside the footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 sample points outside the footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B8 sample points outside the footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 sample points outside the footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 sample points outside the footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B11 sample points outside the footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B12 sample points outside the footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "min cover to the footing surface per mark (record)",
"detail": "{\"B1\": 87.5, \"B2\": 87.5, \"B3\": 87.5, \"B4\": 87.5, \"B5\": 87.5, \"B6\": 65.0, \"B7\": 87.5, \"B8\": 65.0, \"B9\": 68.5, \"B10\": 68.0, \"B11\": 90.5, \"B12\": 90.5}",
"result": "INFO"
}
]
}
@@ -0,0 +1,92 @@
{
"gate": "G3",
"checker": "g3_sj.py",
"verdict": "PASS",
"summary": {
"total": 76,
"passed": 72,
"failed": 4,
"cover": {
"B1": 87.5,
"B2": 87.5,
"B3": 87.5,
"B4": 87.5,
"B5": 87.5,
"B6": 65.0,
"B7": 87.5,
"B8": 65.0,
"B9": 68.5,
"B10": 68.0,
"B11": 90.5,
"B12": 90.5
}
},
"unplanned_fails": [],
"planned_fails": [
{
"item": "B5 bar count vs schedule",
"reason": "작도 X방향 51곳(측면 점·사슬 '52@150=7.800 -300') 채택 vs 재료표 B5·B7 27·26, B6·B8 27·26 = 53 — OPEN #28"
},
{
"item": "B6 bar count vs schedule",
"reason": "작도 X방향 51곳(측면 점·사슬 '52@150=7.800 -300') 채택 vs 재료표 B5·B7 27·26, B6·B8 27·26 = 53 — OPEN #28"
},
{
"item": "B7 bar count vs schedule",
"reason": "작도 X방향 51곳(측면 점·사슬 '52@150=7.800 -300') 채택 vs 재료표 B5·B7 27·26, B6·B8 27·26 = 53 — OPEN #28"
},
{
"item": "B8 bar count vs schedule",
"reason": "작도 X방향 51곳(측면 점·사슬 '52@150=7.800 -300') 채택 vs 재료표 B5·B7 27·26, B6·B8 27·26 = 53 — OPEN #28"
}
],
"negative": {
"negH": {
"move": {
"mark": "B1",
"d": [
5,
0,
0
]
},
"new_fails": [
"y_top positions vs chain (61/61, worst)",
"y_top B1/B3 alternate from the edge (F3)"
],
"detected": true
},
"negV": {
"move": {
"mark": "B10",
"d": [
0,
0,
5
]
},
"new_fails": [
"B10 levels (worst)"
],
"detected": true
}
},
"reload": {
"ok": null,
"skipped": "일괄 실행(단일 세션) — 저장·재로드 안 함"
},
"unchanged": {
"ok": null,
"compared": 0,
"diffs": [],
"missing": [],
"against": null,
"skipped": "일괄 실행(단일 세션) — 앞 게이트 객체를 다시 만들지 않음"
},
"model": null,
"mode": "batch",
"secs": 16.4,
"session_secs": 167.4,
"inputs_sha": "19d5dc4fdc89c918",
"job_id": "2cde48eca80c"
}
@@ -0,0 +1,15 @@
{
"id": "2cde48eca80c",
"pid": 22652,
"state": "완료",
"at": "2026-10-15 13:12:11",
"log": [
"[batch] one Rhino session: build G1..G5, check G1, G2, G3, G4, G5 (no per-gate save / reload)",
"[G1] PASS checks 138/138 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G2] PASS checks 41/41 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G3] PASS checks 72/76 (planned FAIL 4, unplanned 0) negative H/V True/True (batch)",
"[G4] PASS checks 189/189 (planned FAIL 0, 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 167.7s, objects 3043, model C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\새재1교P1\\runs\\current\\G5.3dm"
]
}
@@ -0,0 +1,653 @@
{
"summary": {
"total": 76,
"passed": 70,
"failed": 6,
"cover": {
"B1": 87.5,
"B2": 87.5,
"B3": 87.5,
"B4": 87.5,
"B5": 87.5,
"B6": 65.0,
"B7": 87.5,
"B8": 65.0,
"B9": 68.5,
"B10": 68.0,
"B11": 90.5,
"B12": 90.5
}
},
"results": [
{
"check": "C9",
"item": "B1 bar count vs schedule",
"expected": 31,
"actual": 31,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B1 pipes closed & paired",
"detail": "31/31",
"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": "B2 bar count vs schedule",
"expected": 31,
"actual": 31,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 pipes closed & paired",
"detail": "31/31",
"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": "B3 bar count vs schedule",
"expected": 30,
"actual": 30,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 pipes closed & paired",
"detail": "30/30",
"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": "B4 bar count vs schedule",
"expected": 30,
"actual": 30,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B4 pipes closed & paired",
"detail": "30/30",
"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": "B5 bar count vs schedule",
"expected": 27,
"actual": 26,
"diff": -1,
"tol": 0,
"result": "FAIL"
},
{
"check": "C9",
"item": "B5 pipes closed & paired",
"detail": "26/26",
"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": "B6 bar count vs schedule",
"expected": 27,
"actual": 26,
"diff": -1,
"tol": 0,
"result": "FAIL"
},
{
"check": "C9",
"item": "B6 pipes closed & paired",
"detail": "26/26",
"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": "B7 bar count vs schedule",
"expected": 26,
"actual": 25,
"diff": -1,
"tol": 0,
"result": "FAIL"
},
{
"check": "C9",
"item": "B7 pipes closed & paired",
"detail": "25/25",
"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": "B8 bar count vs schedule",
"expected": 26,
"actual": 25,
"diff": -1,
"tol": 0,
"result": "FAIL"
},
{
"check": "C9",
"item": "B8 pipes closed & paired",
"detail": "25/25",
"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": "B9 bar count vs schedule",
"expected": 45,
"actual": 45,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 pipes closed & paired",
"detail": "45/45",
"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": "B10 bar count vs schedule",
"expected": 4,
"actual": 4,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 pipes closed & paired",
"detail": "4/4",
"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": "B11 bar count vs schedule",
"expected": 11,
"actual": 11,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B11 pipes closed & paired",
"detail": "11/11",
"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": "B12 bar count vs schedule",
"expected": 23,
"actual": 23,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B12 pipes closed & paired",
"detail": "23/23",
"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": "y_bottom positions vs chain (61/61, worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "y_bottom straight part level 10132 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "y_bottom span 2 x 3750 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "y_bottom leg 1800 up (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "y_bottom B2/B4 alternate from the edge (F3)",
"detail": "B2 31",
"result": "PASS"
},
{
"check": "C9",
"item": "x_bottom positions vs chain (51/51, worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "x_bottom straight part level 10154.5 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "x_bottom span 2 x 3750 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "x_bottom leg 2400 up (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "x_bottom B6/B8 alternate from the edge (F3)",
"detail": "B6 26",
"result": "PASS"
},
{
"check": "C9",
"item": "y_top positions vs chain (61/61, worst)",
"expected": 0,
"actual": 5.0,
"diff": 5.0,
"tol": 1.0,
"result": "FAIL"
},
{
"check": "C9",
"item": "y_top straight part level 12532 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "y_top span 2 x 3750 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "y_top leg 900 down (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "y_top B1/B3 alternate from the edge (F3)",
"detail": "B1 31",
"result": "FAIL"
},
{
"check": "C9",
"item": "x_top positions vs chain (51/51, worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "x_top straight part level 12509.5 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "x_top span 2 x 3750 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "x_top leg 1200 down (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "x_top B5/B7 alternate from the edge (F3)",
"detail": "B5 26",
"result": "PASS"
},
{
"check": "C9",
"item": "B12 levels / positions (23)",
"detail": "[(10751.0, -3600.0), (10751.0, -2600.0), (10751.0, -1600.0)] vs [(10751.0, -3600.0), (10751.0, -2600.0), (10751.0, -1600.0)]",
"result": "PASS"
},
{
"check": "C9",
"item": "B11 levels / positions (11)",
"detail": "[(10732.0, -3450.0), (10732.0, -1050.0), (10732.0, 1350.0)] vs [(10732.0, -3450.0), (10732.0, -1050.0), (10732.0, 1350.0)]",
"result": "PASS"
},
{
"check": "C9",
"item": "B10 levels (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 loop size X (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 grid 45 (rows 6, 8 / 7 per row)",
"detail": "45",
"result": "PASS"
},
{
"check": "C9",
"item": "B9 height top-bottom (worst)",
"expected": 2444,
"actual": 2444.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 span along Y a (worst)",
"expected": 1244,
"actual": 1244.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 hooks the top and bottom Y bars",
"detail": "",
"result": "PASS"
},
{
"check": "C9",
"item": "B1 sample points outside the footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 sample points outside the footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 sample points outside the footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B4 sample points outside the footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 sample points outside the footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B6 sample points outside the footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 sample points outside the footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B8 sample points outside the footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 sample points outside the footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 sample points outside the footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B11 sample points outside the footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B12 sample points outside the footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "min cover to the footing surface per mark (record)",
"detail": "{\"B1\": 87.5, \"B2\": 87.5, \"B3\": 87.5, \"B4\": 87.5, \"B5\": 87.5, \"B6\": 65.0, \"B7\": 87.5, \"B8\": 65.0, \"B9\": 68.5, \"B10\": 68.0, \"B11\": 90.5, \"B12\": 90.5}",
"result": "INFO"
}
]
}
@@ -0,0 +1,653 @@
{
"summary": {
"total": 76,
"passed": 71,
"failed": 5,
"cover": {
"B1": 87.5,
"B2": 87.5,
"B3": 87.5,
"B4": 87.5,
"B5": 87.5,
"B6": 65.0,
"B7": 87.5,
"B8": 65.0,
"B9": 68.5,
"B10": 68.0,
"B11": 90.5,
"B12": 90.5
}
},
"results": [
{
"check": "C9",
"item": "B1 bar count vs schedule",
"expected": 31,
"actual": 31,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B1 pipes closed & paired",
"detail": "31/31",
"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": "B2 bar count vs schedule",
"expected": 31,
"actual": 31,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 pipes closed & paired",
"detail": "31/31",
"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": "B3 bar count vs schedule",
"expected": 30,
"actual": 30,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 pipes closed & paired",
"detail": "30/30",
"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": "B4 bar count vs schedule",
"expected": 30,
"actual": 30,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B4 pipes closed & paired",
"detail": "30/30",
"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": "B5 bar count vs schedule",
"expected": 27,
"actual": 26,
"diff": -1,
"tol": 0,
"result": "FAIL"
},
{
"check": "C9",
"item": "B5 pipes closed & paired",
"detail": "26/26",
"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": "B6 bar count vs schedule",
"expected": 27,
"actual": 26,
"diff": -1,
"tol": 0,
"result": "FAIL"
},
{
"check": "C9",
"item": "B6 pipes closed & paired",
"detail": "26/26",
"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": "B7 bar count vs schedule",
"expected": 26,
"actual": 25,
"diff": -1,
"tol": 0,
"result": "FAIL"
},
{
"check": "C9",
"item": "B7 pipes closed & paired",
"detail": "25/25",
"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": "B8 bar count vs schedule",
"expected": 26,
"actual": 25,
"diff": -1,
"tol": 0,
"result": "FAIL"
},
{
"check": "C9",
"item": "B8 pipes closed & paired",
"detail": "25/25",
"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": "B9 bar count vs schedule",
"expected": 45,
"actual": 45,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 pipes closed & paired",
"detail": "45/45",
"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": "B10 bar count vs schedule",
"expected": 4,
"actual": 4,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 pipes closed & paired",
"detail": "4/4",
"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": "B11 bar count vs schedule",
"expected": 11,
"actual": 11,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B11 pipes closed & paired",
"detail": "11/11",
"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": "B12 bar count vs schedule",
"expected": 23,
"actual": 23,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B12 pipes closed & paired",
"detail": "23/23",
"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": "y_bottom positions vs chain (61/61, worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "y_bottom straight part level 10132 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "y_bottom span 2 x 3750 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "y_bottom leg 1800 up (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "y_bottom B2/B4 alternate from the edge (F3)",
"detail": "B2 31",
"result": "PASS"
},
{
"check": "C9",
"item": "x_bottom positions vs chain (51/51, worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "x_bottom straight part level 10154.5 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "x_bottom span 2 x 3750 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "x_bottom leg 2400 up (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "x_bottom B6/B8 alternate from the edge (F3)",
"detail": "B6 26",
"result": "PASS"
},
{
"check": "C9",
"item": "y_top positions vs chain (61/61, worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "y_top straight part level 12532 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "y_top span 2 x 3750 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "y_top leg 900 down (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "y_top B1/B3 alternate from the edge (F3)",
"detail": "B1 31",
"result": "PASS"
},
{
"check": "C9",
"item": "x_top positions vs chain (51/51, worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "x_top straight part level 12509.5 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "x_top span 2 x 3750 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "x_top leg 1200 down (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "x_top B5/B7 alternate from the edge (F3)",
"detail": "B5 26",
"result": "PASS"
},
{
"check": "C9",
"item": "B12 levels / positions (23)",
"detail": "[(10751.0, -3600.0), (10751.0, -2600.0), (10751.0, -1600.0)] vs [(10751.0, -3600.0), (10751.0, -2600.0), (10751.0, -1600.0)]",
"result": "PASS"
},
{
"check": "C9",
"item": "B11 levels / positions (11)",
"detail": "[(10732.0, -3450.0), (10732.0, -1050.0), (10732.0, 1350.0)] vs [(10732.0, -3450.0), (10732.0, -1050.0), (10732.0, 1350.0)]",
"result": "PASS"
},
{
"check": "C9",
"item": "B10 levels (worst)",
"expected": 0,
"actual": 5.0,
"diff": 5.0,
"tol": 1.0,
"result": "FAIL"
},
{
"check": "C9",
"item": "B10 loop size X (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 grid 45 (rows 6, 8 / 7 per row)",
"detail": "45",
"result": "PASS"
},
{
"check": "C9",
"item": "B9 height top-bottom (worst)",
"expected": 2444,
"actual": 2444.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 span along Y a (worst)",
"expected": 1244,
"actual": 1244.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 hooks the top and bottom Y bars",
"detail": "",
"result": "PASS"
},
{
"check": "C9",
"item": "B1 sample points outside the footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 sample points outside the footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 sample points outside the footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B4 sample points outside the footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 sample points outside the footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B6 sample points outside the footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 sample points outside the footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B8 sample points outside the footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 sample points outside the footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 sample points outside the footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B11 sample points outside the footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B12 sample points outside the footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "min cover to the footing surface per mark (record)",
"detail": "{\"B1\": 87.5, \"B2\": 87.5, \"B3\": 87.5, \"B4\": 87.5, \"B5\": 87.5, \"B6\": 65.0, \"B7\": 87.5, \"B8\": 65.0, \"B9\": 68.5, \"B10\": 68.0, \"B11\": 90.5, \"B12\": 90.5}",
"result": "INFO"
}
]
}
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,85 @@
{
"gate": "G4",
"checker": "g4_sj.py",
"verdict": "PASS",
"summary": {
"total": 189,
"passed": 189,
"failed": 0,
"cover": {
"C1": 110.0,
"C4": 110.0,
"C2": 110.5,
"C3": 110.5,
"C5": 110.5,
"C6": 110.5,
"C7": 110.5,
"C8": 89.5,
"C9": 89.5,
"C10": 89.5,
"C11": 89.5,
"C12": 84.3,
"C13": 89.5,
"C14": 114.0,
"C15": 114.0,
"C16": 114.0,
"C17": 114.0,
"C18": 115.5,
"C19": 115.4,
"C20": 114.9,
"S1": 133.1,
"S2": 124.5
}
},
"unplanned_fails": [],
"planned_fails": [],
"negative": {
"negH": {
"move": {
"mark": "C1",
"d": [
0,
5,
0
]
},
"new_fails": [
"C1 y rows vs chain (worst, n=12/12)"
],
"detected": true
},
"negV": {
"move": {
"mark": "C7",
"d": [
0,
0,
5
]
},
"new_fails": [
"C7 lowest level per bar vs drawn (worst)",
"C7 raised bars (y +-1125) top end (worst)"
],
"detected": true
}
},
"reload": {
"ok": null,
"skipped": "일괄 실행(단일 세션) — 저장·재로드 안 함"
},
"unchanged": {
"ok": null,
"compared": 0,
"diffs": [],
"missing": [],
"against": null,
"skipped": "일괄 실행(단일 세션) — 앞 게이트 객체를 다시 만들지 않음"
},
"model": null,
"mode": "batch",
"secs": 89.5,
"session_secs": 167.4,
"inputs_sha": "19d5dc4fdc89c918",
"job_id": "2cde48eca80c"
}
@@ -0,0 +1,15 @@
{
"id": "2cde48eca80c",
"pid": 22652,
"state": "완료",
"at": "2026-10-15 13:12:11",
"log": [
"[batch] one Rhino session: build G1..G5, check G1, G2, G3, G4, G5 (no per-gate save / reload)",
"[G1] PASS checks 138/138 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G2] PASS checks 41/41 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G3] PASS checks 72/76 (planned FAIL 4, unplanned 0) negative H/V True/True (batch)",
"[G4] PASS checks 189/189 (planned FAIL 0, 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 167.7s, objects 3043, model C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\새재1교P1\\runs\\current\\G5.3dm"
]
}
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,60 @@
{
"gate": "G5",
"checker": "g5_bearings.py",
"verdict": "PASS",
"summary": {
"total": 183,
"passed": 183,
"failed": 0
},
"unplanned_fails": [],
"planned_fails": [],
"negative": {
"negH": {
"move": {
"id": "BB04",
"d": [
5,
0,
0
]
},
"new_fails": [
"NO.4 bearing plan centre offset from pad (mm)"
],
"detected": true
},
"negV": {
"move": {
"id": "SP03",
"d": [
0,
0,
5
]
},
"new_fails": [
"NO.3 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\\새재1교P1\\runs\\current\\G5.3dm",
"mode": "batch",
"secs": 0.6,
"session_secs": 167.4,
"inputs_sha": "19d5dc4fdc89c918",
"job_id": "2cde48eca80c"
}
@@ -0,0 +1,15 @@
{
"id": "2cde48eca80c",
"pid": 22652,
"state": "완료",
"at": "2026-10-15 13:12:11",
"log": [
"[batch] one Rhino session: build G1..G5, check G1, G2, G3, G4, G5 (no per-gate save / reload)",
"[G1] PASS checks 138/138 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G2] PASS checks 41/41 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G3] PASS checks 72/76 (planned FAIL 4, unplanned 0) negative H/V True/True (batch)",
"[G4] PASS checks 189/189 (planned FAIL 0, 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 167.7s, objects 3043, model C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\새재1교P1\\runs\\current\\G5.3dm"
]
}
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,37 @@
{
"G1": {
"decision": "승인",
"by": "심영표",
"note": "일괄 실행 자동 승인",
"at": "2026-10-15 13:12:11",
"inputs_sha": "19d5dc4fdc89c918"
},
"G2": {
"decision": "승인",
"by": "심영표",
"note": "일괄 실행 자동 승인",
"at": "2026-10-15 13:12:11",
"inputs_sha": "19d5dc4fdc89c918"
},
"G3": {
"decision": "승인",
"by": "심영표",
"note": "일괄 실행 자동 승인",
"at": "2026-10-15 13:12:11",
"inputs_sha": "19d5dc4fdc89c918"
},
"G4": {
"decision": "승인",
"by": "심영표",
"note": "일괄 실행 자동 승인",
"at": "2026-10-15 13:12:11",
"inputs_sha": "19d5dc4fdc89c918"
},
"G5": {
"decision": "승인",
"by": "심영표",
"note": "일괄 실행 자동 승인",
"at": "2026-10-15 13:12:11",
"inputs_sha": "19d5dc4fdc89c918"
}
}
@@ -0,0 +1,21 @@
{
"state": "완료",
"by": "심영표",
"pid": 22652,
"at": "2026-10-15 13:12:11",
"log": [
"G1~G5 단일 세션 실행 (게이트 검사·음성 시험만, 중간 저장·재로드 없음)",
"[batch] one Rhino session: build G1..G5, check G1, G2, G3, G4, G5 (no per-gate save / reload)",
"[G1] PASS checks 138/138 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G2] PASS checks 41/41 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G3] PASS checks 72/76 (planned FAIL 4, unplanned 0) negative H/V True/True (batch)",
"[G4] PASS checks 189/189 (planned FAIL 0, 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 167.7s, objects 3043, model C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\새재1교P1\\runs\\current\\G5.3dm",
"G1 PASS 138/138 (계획 FAIL 0) → 승인",
"G2 PASS 41/41 (계획 FAIL 0) → 승인",
"G3 PASS 72/76 (계획 FAIL 4) → 승인",
"G4 PASS 189/189 (계획 FAIL 0) → 승인",
"G5 PASS 183/183 (계획 FAIL 0) → 승인"
]
}
@@ -0,0 +1,11 @@
{
"chapters_missing": [],
"vocab_bad": [],
"finding_rows": 4,
"finding_rows_without_source": 0,
"schedule_rows": 0,
"schedule_marks": 0,
"gate_rows": 5,
"schedule_unread": true,
"ok": false
}
@@ -0,0 +1,115 @@
# 새재1교P1 교각 모델링 검토보고서 (초안)
> 앱이 게이트 결과·도면 표·승인 기록으로 자동 작성한 **초안**입니다. '오류'·'불일치' 판정과 3~5장의 서술은 담당자가 확인·확정해야 합니다. 작성일 2026-10-15 · 작성 심영표.
## 1. 개요
- 교각: 새재1교P1 (T형) · 좌표: 로컬(교각 중심 원점, X 교축직각, Y 교축, Z = EL×1000, mm) · 산출: .3dm
- 게이트 진행: 5/5 실행, **전 게이트 PASS·승인**
### 1.1 입력 도면
| 구분 | DWG | SHA-256(앞 16자) |
| :--- | :--- | :--- |
| D1 | 새재1교P1.dwg | d1a5109698fe9242 |
### 1.2 게이트 결과
| 게이트 | 내용 | 판정 | 검사 PASS | 승인 | 의견 |
| :--- | :--- | :--- | :--- | :--- | :--- |
| G1 | 형상(콘크리트·말뚝·받침대좌·패드) | PASS | 138/138 | 승인 심영표 2026-10-15 13:12:11 | 일괄 실행 자동 승인 |
| G2 | 기둥 철근 | PASS | 41/41 | 승인 심영표 2026-10-15 13:12:11 | 일괄 실행 자동 승인 |
| G3 | 확대기초 철근 | PASS | 72/76 | 승인 심영표 2026-10-15 13:12:11 | 일괄 실행 자동 승인 |
| G4 | 코핑 철근 | PASS | 189/189 | 승인 심영표 2026-10-15 13:12:11 | 일괄 실행 자동 승인 |
| G5 | 교량받침·솔플레이트 | PASS | 183/183 | 승인 심영표 2026-10-15 13:12:11 | 일괄 실행 자동 승인 |
## 2. 도면 오류·불일치
자동 등재 기준: 승인된 계획 FAIL → '불일치', 계획되지 않은 FAIL과 도면 표 값·입력값 차이 → '확인 필요'.
| 판정 | 게이트 | 항목 | 내용 | 근거 |
| :--- | :--- | :--- | :--- | :--- |
| 불일치 | G3 | B5 bar count vs schedule | 작도 X방향 51곳(측면 점·사슬 '52@150=7.800 -300') 채택 vs 재료표 B5·B7 27·26, B6·B8 27·26 = 53 — OPEN #28 | 예외 승인: 사용자 2026-10-15 |
| 불일치 | G3 | B6 bar count vs schedule | 작도 X방향 51곳(측면 점·사슬 '52@150=7.800 -300') 채택 vs 재료표 B5·B7 27·26, B6·B8 27·26 = 53 — OPEN #28 | 예외 승인: 사용자 2026-10-15 |
| 불일치 | G3 | B7 bar count vs schedule | 작도 X방향 51곳(측면 점·사슬 '52@150=7.800 -300') 채택 vs 재료표 B5·B7 27·26, B6·B8 27·26 = 53 — OPEN #28 | 예외 승인: 사용자 2026-10-15 |
| 불일치 | G3 | B8 bar count vs schedule | 작도 X방향 51곳(측면 점·사슬 '52@150=7.800 -300') 채택 vs 재료표 B5·B7 27·26, B6·B8 27·26 = 53 — OPEN #28 | 예외 승인: 사용자 2026-10-15 |
## 3. 개선방안
[담당자 작성] 2장 항목별로 도면 수정·설계자 확인 방안을 적습니다.
## 4. 추가되어야 할 사항
[담당자 작성] 도면에 없어 추정·가정으로 모델링한 사항(입력 묶음의 `[추론]` 표기)을 정리합니다.
- 자동 확인: `[추론]` 표기가 있는 입력 묶음 — bearing_seats, column_rebar, footing_rebar, materials, sole_plates
## 5. 누락사항
[담당자 작성] 도면에서 빠진 치수·표·상세를 적습니다.
## 6. 철근재료표 (원본 vs 모델)
원본 = 도면 재료표 판독값(동일 기호 " 해석 포함), 모델 = 게이트 검사의 본수 실측값.
도면 재료표를 인식하지 못했습니다(도면 미등록 또는 표 형식 상이).
## 7. 철근상세 (기록)
원길이·곡선길이·피복은 판정이 아닌 기록 값입니다(요구사항 §6.2).
### 7.1 기둥 (G2)
| 항목 | 값 |
| :--- | :--- |
| P1 curve length - L (record) | min 0.1 / max 0.1 mm |
| P2 curve length - L (record) | min 0.1 / max 0.1 mm |
| P3 curve length - L (record) | min -0.8 / max -0.8 mm |
| P4 curve length - L (record) | min 0.3 / max 0.3 mm |
| P5 curve length - L (record) | min -224.0 / max -224.0 mm |
| concrete union for cover | 1 brep |
| min cover to concrete surface per mark (record) | {"P1": 109.0, "P2": 134.0, "P3": 84.0, "P4": 90.0, "P5": 65.5} |
### 7.2 확대기초 (G3)
| 항목 | 값 |
| :--- | :--- |
| min cover to the footing surface per mark (record) | {"B1": 87.5, "B2": 87.5, "B3": 87.5, "B4": 87.5, "B5": 87.5, "B6": 65.0, "B7": 87.5, "B8": 65.0, "B9": 68.5, "B10": 68.0, "B11": 90.5, "B12": 90.5} |
### 7.3 코핑 (G4)
| 항목 | 값 |
| :--- | :--- |
| C7 mean polyline length vs L (variable mark, record) | mean 12687.7 / L 14292 (diff -1604.3); min 9268 max 13372 |
| C8 mean polyline length vs L (variable mark, record) | mean 7025.2 / L 8388 (diff -1362.8); min 5319 max 8726 |
| C9 mean polyline length vs L (variable mark, record) | mean 7363.4 / L 11016 (diff -3652.6); min 5801 max 8914 |
| C10 mean polyline length vs L (variable mark, record) | mean 8983.4 / L 10261 (diff -1277.6); min 8792 max 8994 |
| C11 mean polyline length vs L (variable mark, record) | mean 9147.8 / L 10196 (diff -1048.2); min 8945 max 9159 |
| C12 mean polyline length vs L (variable mark, record) | mean 7612.0 / L 8915 (diff -1303.0); min 6093 max 9007 |
| C13 mean polyline length vs L (variable mark, record) | mean 7948.8 / L 9056 (diff -1107.2); min 6575 max 9207 |
| C14 mean polyline length vs L (variable mark, record) | mean 18110.2 / L 21269 (diff -3158.8); min 8933 max 27287 |
| C15 mean polyline length vs L (variable mark, record) | mean 6733.6 / L 7434 (diff -700.4); min 2498 max 10969 |
| C16 mean polyline length vs L (variable mark, record) | mean 28910.0 / L 31302 (diff -2392.0); min 28910 max 28910 |
| C17 mean polyline length vs L (variable mark, record) | mean 11750.0 / L 13001 (diff -1251.0); min 11750 max 11750 |
| C18 mean polyline length vs L (variable mark, record) | mean 3453.1 / L 3490 (diff -36.9); min 2774 max 3490 |
| min cover to the coping surface per mark (record; seat bars measured to the coping only) | {"C1": 110.0, "C4": 110.0, "C2": 110.5, "C3": 110.5, "C5": 110.5, "C6": 110.5, "C7": 110.5, "C8": 89.5, "C9": 89.5, "C10": 89.5, "C11": 89.5, "C12": 84.3, "C13": 89.5, "C14": 114.0, "C15": 114.0, "C16": 114.0, "C17": 114.0, "C18": 115.5, "C19": 115.4, "C20": 114.9, "S1": 133.1, "S2": 124.5} |
## 8. 검증 방법
- 검사기는 생성 입력(params)이 아니라 도면 문자·표에서 옮긴 독립 기대값(expected)만 읽습니다.
- 게이트마다 G1부터 새로 생성 → 저장 파일을 다시 열어 검사(재로드) → 객체를 수평·수직으로 옮겨 FAIL이 나는지 확인(음성 시험) → 앞 게이트 객체 지문 비교.
- 일괄 실행(단일 Rhino 세션)으로 검사한 게이트는 중간 저장·재로드와 앞 게이트 비교를 하지 않으며, 표에 '생략(일괄 실행)'으로 적습니다. 모델은 마지막 G5만 저장합니다.
| 게이트 | 재로드 | 음성 시험 | 앞 게이트 객체 |
| :--- | :--- | :--- | :--- |
| G1 | 생략(일괄 실행) | 수평 검출 / 수직 검출 | 생략(일괄 실행) |
| G2 | 생략(일괄 실행) | 수평 검출 / 수직 검출 | 생략(일괄 실행) |
| G3 | 생략(일괄 실행) | 수평 검출 / 수직 검출 | 생략(일괄 실행) |
| G4 | 생략(일괄 실행) | 수평 검출 / 수직 검출 | 생략(일괄 실행) |
| G5 | 생략(일괄 실행) | 수평 검출 / 수직 검출 | 생략(일괄 실행) |
## 변경 이력
| 버전 | 일자 | 내용 |
| :--- | :--- | :--- |
| v0.1.00 | 2026-10-15 | 앱 자동 생성 초안 |