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,834 @@
{
"summary": {
"total": 97,
"passed": 97,
"failed": 0,
"volumes_m3": {
"pile1": 32.53,
"pile2": 25.525,
"column": 37.699,
"coping": 31.393
}
},
"results": [
{
"check": "C5",
"item": "object counts",
"detail": "{'LC': 0, 'FT': 0, 'CL': 1, 'CP': 1, 'PL': 2}",
"result": "PASS"
},
{
"check": "C2",
"item": "IsSolid all 4",
"detail": "4/4",
"result": "PASS"
},
{
"check": "C1",
"item": "pile segment 1 diameter X",
"expected": 2350,
"actual": 2350.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "pile segment 1 diameter Y",
"expected": 2350,
"actual": 2350.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "pile segment 1 Zbot",
"expected": 32752,
"actual": 32752.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "pile segment 1 Ztop",
"expected": 40252,
"actual": 40252.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "pile segment 2 diameter X",
"expected": 2500,
"actual": 2500.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "pile segment 2 diameter Y",
"expected": 2500,
"actual": 2500.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "pile segment 2 Zbot",
"expected": 40252,
"actual": 40252.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "pile segment 2 Ztop",
"expected": 45452,
"actual": 45452.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "pile top = EL text",
"expected": 45452,
"actual": 45452,
"diff": 0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "column diameter X",
"expected": 2000,
"actual": 2000.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "column diameter Y",
"expected": 2000,
"actual": 2000.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "column Zbot",
"expected": 45452,
"actual": 45452.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "column Ztop",
"expected": 57452,
"actual": 57452.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "coping length X (bottom tips)",
"expected": 7600.0,
"actual": 7600.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "coping width Y",
"expected": 2200.0,
"actual": 2200.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "coping Zbot",
"expected": 57452,
"actual": 57452.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "coping Ztop",
"expected": 60267,
"actual": 60267.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "coping centre X",
"expected": 0,
"actual": -0.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "total height (pile bottom - coping top left)",
"expected": 27200,
"actual": 27200,
"diff": 0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "front section closed single loop",
"detail": "1 loop(s)",
"result": "PASS"
},
{
"check": "C4",
"item": "bottom at X=+0 (column top)",
"expected": 57452,
"actual": 57452.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "bottom at X=+999 (column top)",
"expected": 57452,
"actual": 57452.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "bottom at X=-999 (column top)",
"expected": 57452,
"actual": 57452.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "soffit R5000 at X=+1500",
"expected": 57914.881,
"actual": 57914.881,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "soffit R5000 at X=-1500",
"expected": 57914.881,
"actual": 57914.881,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "soffit R5000 at X=+2500",
"expected": 58542.316,
"actual": 58542.316,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "soffit R5000 at X=-2500",
"expected": 58542.316,
"actual": 58542.316,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "soffit R5000 at X=+3500",
"expected": 58891.446,
"actual": 58891.446,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "soffit R5000 at X=-3500",
"expected": 58891.446,
"actual": 58891.446,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "soffit R5000 at X=+3795",
"expected": 58951.147,
"actual": 58951.146,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "soffit R5000 at X=-3795",
"expected": 58951.147,
"actual": 58951.146,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "top at X=-3000",
"expected": 59952,
"actual": 59952.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "top at X=-1000",
"expected": 59952,
"actual": 59952.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "top at X=+1000",
"expected": 60267,
"actual": 60267.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "top at X=+3000",
"expected": 60267,
"actual": 60267.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "end face at X=-3650 (top 3500 -> bottom 3800)",
"expected": 59452.0,
"actual": 59452.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "end face at X=+3650 (top 3500 -> bottom 3800)",
"expected": 59609.5,
"actual": 59609.5,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "top step at the pier centre (right - left)",
"expected": 315,
"actual": 315.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "side section closed single loop",
"detail": "1 loop(s)",
"result": "PASS"
},
{
"check": "C4",
"item": "side width at Z=57453",
"expected": 2000.133,
"actual": 2000.133,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "side width at Z=58202",
"expected": 2100.0,
"actual": 2100.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "side width at Z=58951",
"expected": 2199.867,
"actual": 2199.867,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "side width at Z=59452",
"expected": 2200.0,
"actual": 2200.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "end face left at y=0 z=58957 [작도 corner 3650]",
"detail": "x_end -3798.5: inside 3 mm in True, outside 3 mm out True",
"result": "PASS"
},
{
"check": "C4",
"item": "end face left at y=1090 z=58957 [작도 corner 3650]",
"detail": "x_end -3652.0: inside 3 mm in True, outside 3 mm out True",
"result": "PASS"
},
{
"check": "C4",
"item": "end face left at y=0 z=59452 [작도 corner 3650]",
"detail": "x_end -3650.0: inside 3 mm in True, outside 3 mm out True",
"result": "PASS"
},
{
"check": "C4",
"item": "end face left at y=1090 z=59452 [작도 corner 3650]",
"detail": "x_end -3576.4: inside 3 mm in True, outside 3 mm out True",
"result": "PASS"
},
{
"check": "C4",
"item": "end face left at y=1090 z=59947 [작도 corner 3650]",
"detail": "x_end -3500.8: inside 3 mm in True, outside 3 mm out True",
"result": "PASS"
},
{
"check": "C4",
"item": "end face right at y=0 z=58957 [작도 corner 3650]",
"detail": "x_end 3798.9: inside 3 mm in True, outside 3 mm out True",
"result": "PASS"
},
{
"check": "C4",
"item": "end face right at y=1090 z=58957 [작도 corner 3650]",
"detail": "x_end 3652.2: inside 3 mm in True, outside 3 mm out True",
"result": "PASS"
},
{
"check": "C4",
"item": "end face right at y=0 z=59610 [작도 corner 3650]",
"detail": "x_end 3650.0: inside 3 mm in True, outside 3 mm out True",
"result": "PASS"
},
{
"check": "C4",
"item": "end face right at y=1090 z=59610 [작도 corner 3650]",
"detail": "x_end 3576.4: inside 3 mm in True, outside 3 mm out True",
"result": "PASS"
},
{
"check": "C4",
"item": "end face right at y=1090 z=60262 [작도 corner 3650]",
"detail": "x_end 3500.6: inside 3 mm in True, outside 3 mm out True",
"result": "PASS"
},
{
"check": "C3",
"item": "PL01 top = PL02 bottom",
"expected": 40252.0,
"actual": 40252.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C3",
"item": "overlap PL01-PL02 (mm3)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C3",
"item": "PL02 top = CL bottom",
"expected": 45452.0,
"actual": 45452.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C3",
"item": "overlap PL02-CL (mm3)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C3",
"item": "CL top = CP bottom",
"expected": 57452.0,
"actual": 57452.0,
"diff": -0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C3",
"item": "overlap CL-CP (mm3)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C6",
"item": "pile segment 1 volume m3",
"expected": 32.53,
"actual": 32.53,
"diff": 0.0,
"tol": 0.03253021018021807,
"result": "PASS"
},
{
"check": "C6",
"item": "pile segment 2 volume m3",
"expected": 25.525,
"actual": 25.525,
"diff": 0.0,
"tol": 0.02552544031041707,
"result": "PASS"
},
{
"check": "C6",
"item": "column volume m3",
"expected": 37.699,
"actual": 37.699,
"diff": 0.0,
"tol": 0.03769911184307752,
"result": "PASS"
},
{
"check": "C6",
"item": "coping volume m3 (dimension outline)",
"expected": 31.39,
"actual": 31.393,
"diff": 0.002,
"tol": 0.03139039475030509,
"result": "PASS"
},
{
"check": "C7",
"item": "pedestal / pad counts",
"detail": "seats=2 pads=2",
"result": "PASS"
},
{
"check": "C7",
"item": "IsSolid pedestals+pads",
"detail": "4/4",
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 table EL.'X' - h1 - h2 = coping top (left)",
"expected": 59952,
"actual": 59952,
"diff": 0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 pedestal bottom = coping top",
"expected": 59952,
"actual": 59952.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 pedestal top = top + h1",
"expected": 60062,
"actual": 60062.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 pad top = EL.'X'",
"expected": 60112,
"actual": 60112.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 pedestal along (C3)",
"expected": 1400,
"actual": 1400.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 pedestal across (C6)",
"expected": 1300,
"actual": 1300.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 pedestal rotation deg [작도]",
"expected": -5.55,
"actual": -5.55,
"diff": 0.0,
"tol": 0.05,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 pedestal centre X",
"expected": -2250,
"actual": -2250.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 pedestal centre Y",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 pad centre X",
"expected": -2250,
"actual": -2250.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 pad centre Y",
"expected": 0,
"actual": -0.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 pad volume (prismatoid A,B)",
"expected": 49916666.667,
"actual": 49916666.667,
"diff": 0.0,
"tol": 49916.66666666667,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 overlap pedestal-coping (mm3)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 overlap pad-pedestal (mm3)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 pedestal footprint on the coping top",
"detail": "4 corners tested 1 mm below",
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 table EL.'X' - h1 - h2 = coping top (right)",
"expected": 60267,
"actual": 60267,
"diff": 0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 pedestal bottom = coping top",
"expected": 60267,
"actual": 60267.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 pedestal top = top + h1",
"expected": 60377,
"actual": 60377.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 pad top = EL.'X'",
"expected": 60427,
"actual": 60427.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 pedestal along (C3)",
"expected": 1400,
"actual": 1400.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 pedestal across (C6)",
"expected": 1300,
"actual": 1300.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 pedestal rotation deg [작도]",
"expected": -9.194,
"actual": -9.194,
"diff": 0.0,
"tol": 0.05,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 pedestal centre X",
"expected": 2250,
"actual": 2250.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 pedestal centre Y",
"expected": 0,
"actual": -0.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 pad centre X",
"expected": 2250,
"actual": 2250.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 pad centre Y",
"expected": 0,
"actual": -0.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 pad volume (prismatoid A,B)",
"expected": 49916666.667,
"actual": 49916666.667,
"diff": 0.0,
"tol": 49916.66666666667,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 overlap pedestal-coping (mm3)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 overlap pad-pedestal (mm3)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 pedestal footprint on the coping top",
"detail": "4 corners tested 1 mm below",
"result": "PASS"
}
]
}
@@ -0,0 +1,66 @@
{
"gate": "G1",
"checker": "g1_shaft.py",
"verdict": "PASS",
"summary": {
"total": 97,
"passed": 97,
"failed": 0,
"volumes_m3": {
"pile1": 32.53,
"pile2": 25.525,
"column": 37.699,
"coping": 31.393
}
},
"unplanned_fails": [],
"planned_fails": [],
"negative": {
"negH": {
"move": {
"id": "BS02",
"d": [
3,
0,
0
]
},
"new_fails": [
"NO.2 pedestal centre X"
],
"detected": true
},
"negV": {
"move": {
"id": "BP01",
"d": [
0,
0,
2
]
},
"new_fails": [
"NO.1 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": 5.2,
"session_secs": 126.1,
"inputs_sha": "c55f791089aa00a4",
"job_id": "095a143ee855"
}
@@ -0,0 +1,15 @@
{
"id": "095a143ee855",
"pid": 14152,
"state": "완료",
"at": "2026-10-16 16:32:31",
"log": [
"[batch] one Rhino session: build G1..G5, check G1, G2, G3, G4, G5 (no per-gate save / reload)",
"[G1] PASS checks 97/97 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G2] PASS checks 26/26 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G3] PASS checks 48/48 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G4] PASS checks 126/126 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G5] PASS checks 39/39 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[batch] done in 126.3s, objects 2255, model C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\Ramp-A교P1\\runs\\current\\G5.3dm"
]
}
@@ -0,0 +1,834 @@
{
"summary": {
"total": 97,
"passed": 96,
"failed": 1,
"volumes_m3": {
"pile1": 32.53,
"pile2": 25.525,
"column": 37.699,
"coping": 31.393
}
},
"results": [
{
"check": "C5",
"item": "object counts",
"detail": "{'LC': 0, 'FT': 0, 'CL': 1, 'CP': 1, 'PL': 2}",
"result": "PASS"
},
{
"check": "C2",
"item": "IsSolid all 4",
"detail": "4/4",
"result": "PASS"
},
{
"check": "C1",
"item": "pile segment 1 diameter X",
"expected": 2350,
"actual": 2350.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "pile segment 1 diameter Y",
"expected": 2350,
"actual": 2350.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "pile segment 1 Zbot",
"expected": 32752,
"actual": 32752.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "pile segment 1 Ztop",
"expected": 40252,
"actual": 40252.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "pile segment 2 diameter X",
"expected": 2500,
"actual": 2500.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "pile segment 2 diameter Y",
"expected": 2500,
"actual": 2500.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "pile segment 2 Zbot",
"expected": 40252,
"actual": 40252.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "pile segment 2 Ztop",
"expected": 45452,
"actual": 45452.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "pile top = EL text",
"expected": 45452,
"actual": 45452,
"diff": 0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "column diameter X",
"expected": 2000,
"actual": 2000.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "column diameter Y",
"expected": 2000,
"actual": 2000.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "column Zbot",
"expected": 45452,
"actual": 45452.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "column Ztop",
"expected": 57452,
"actual": 57452.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "coping length X (bottom tips)",
"expected": 7600.0,
"actual": 7600.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "coping width Y",
"expected": 2200.0,
"actual": 2200.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "coping Zbot",
"expected": 57452,
"actual": 57452.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "coping Ztop",
"expected": 60267,
"actual": 60267.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "coping centre X",
"expected": 0,
"actual": -0.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "total height (pile bottom - coping top left)",
"expected": 27200,
"actual": 27200,
"diff": 0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "front section closed single loop",
"detail": "1 loop(s)",
"result": "PASS"
},
{
"check": "C4",
"item": "bottom at X=+0 (column top)",
"expected": 57452,
"actual": 57452.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "bottom at X=+999 (column top)",
"expected": 57452,
"actual": 57452.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "bottom at X=-999 (column top)",
"expected": 57452,
"actual": 57452.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "soffit R5000 at X=+1500",
"expected": 57914.881,
"actual": 57914.881,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "soffit R5000 at X=-1500",
"expected": 57914.881,
"actual": 57914.881,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "soffit R5000 at X=+2500",
"expected": 58542.316,
"actual": 58542.316,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "soffit R5000 at X=-2500",
"expected": 58542.316,
"actual": 58542.316,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "soffit R5000 at X=+3500",
"expected": 58891.446,
"actual": 58891.446,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "soffit R5000 at X=-3500",
"expected": 58891.446,
"actual": 58891.446,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "soffit R5000 at X=+3795",
"expected": 58951.147,
"actual": 58951.146,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "soffit R5000 at X=-3795",
"expected": 58951.147,
"actual": 58951.146,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "top at X=-3000",
"expected": 59952,
"actual": 59952.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "top at X=-1000",
"expected": 59952,
"actual": 59952.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "top at X=+1000",
"expected": 60267,
"actual": 60267.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "top at X=+3000",
"expected": 60267,
"actual": 60267.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "end face at X=-3650 (top 3500 -> bottom 3800)",
"expected": 59452.0,
"actual": 59452.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "end face at X=+3650 (top 3500 -> bottom 3800)",
"expected": 59609.5,
"actual": 59609.5,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "top step at the pier centre (right - left)",
"expected": 315,
"actual": 315.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "side section closed single loop",
"detail": "1 loop(s)",
"result": "PASS"
},
{
"check": "C4",
"item": "side width at Z=57453",
"expected": 2000.133,
"actual": 2000.133,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "side width at Z=58202",
"expected": 2100.0,
"actual": 2100.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "side width at Z=58951",
"expected": 2199.867,
"actual": 2199.867,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "side width at Z=59452",
"expected": 2200.0,
"actual": 2200.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "end face left at y=0 z=58957 [작도 corner 3650]",
"detail": "x_end -3798.5: inside 3 mm in True, outside 3 mm out True",
"result": "PASS"
},
{
"check": "C4",
"item": "end face left at y=1090 z=58957 [작도 corner 3650]",
"detail": "x_end -3652.0: inside 3 mm in True, outside 3 mm out True",
"result": "PASS"
},
{
"check": "C4",
"item": "end face left at y=0 z=59452 [작도 corner 3650]",
"detail": "x_end -3650.0: inside 3 mm in True, outside 3 mm out True",
"result": "PASS"
},
{
"check": "C4",
"item": "end face left at y=1090 z=59452 [작도 corner 3650]",
"detail": "x_end -3576.4: inside 3 mm in True, outside 3 mm out True",
"result": "PASS"
},
{
"check": "C4",
"item": "end face left at y=1090 z=59947 [작도 corner 3650]",
"detail": "x_end -3500.8: inside 3 mm in True, outside 3 mm out True",
"result": "PASS"
},
{
"check": "C4",
"item": "end face right at y=0 z=58957 [작도 corner 3650]",
"detail": "x_end 3798.9: inside 3 mm in True, outside 3 mm out True",
"result": "PASS"
},
{
"check": "C4",
"item": "end face right at y=1090 z=58957 [작도 corner 3650]",
"detail": "x_end 3652.2: inside 3 mm in True, outside 3 mm out True",
"result": "PASS"
},
{
"check": "C4",
"item": "end face right at y=0 z=59610 [작도 corner 3650]",
"detail": "x_end 3650.0: inside 3 mm in True, outside 3 mm out True",
"result": "PASS"
},
{
"check": "C4",
"item": "end face right at y=1090 z=59610 [작도 corner 3650]",
"detail": "x_end 3576.4: inside 3 mm in True, outside 3 mm out True",
"result": "PASS"
},
{
"check": "C4",
"item": "end face right at y=1090 z=60262 [작도 corner 3650]",
"detail": "x_end 3500.6: inside 3 mm in True, outside 3 mm out True",
"result": "PASS"
},
{
"check": "C3",
"item": "PL01 top = PL02 bottom",
"expected": 40252.0,
"actual": 40252.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C3",
"item": "overlap PL01-PL02 (mm3)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C3",
"item": "PL02 top = CL bottom",
"expected": 45452.0,
"actual": 45452.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C3",
"item": "overlap PL02-CL (mm3)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C3",
"item": "CL top = CP bottom",
"expected": 57452.0,
"actual": 57452.0,
"diff": -0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C3",
"item": "overlap CL-CP (mm3)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C6",
"item": "pile segment 1 volume m3",
"expected": 32.53,
"actual": 32.53,
"diff": 0.0,
"tol": 0.03253021018021807,
"result": "PASS"
},
{
"check": "C6",
"item": "pile segment 2 volume m3",
"expected": 25.525,
"actual": 25.525,
"diff": 0.0,
"tol": 0.02552544031041707,
"result": "PASS"
},
{
"check": "C6",
"item": "column volume m3",
"expected": 37.699,
"actual": 37.699,
"diff": 0.0,
"tol": 0.03769911184307752,
"result": "PASS"
},
{
"check": "C6",
"item": "coping volume m3 (dimension outline)",
"expected": 31.39,
"actual": 31.393,
"diff": 0.002,
"tol": 0.03139039475030509,
"result": "PASS"
},
{
"check": "C7",
"item": "pedestal / pad counts",
"detail": "seats=2 pads=2",
"result": "PASS"
},
{
"check": "C7",
"item": "IsSolid pedestals+pads",
"detail": "4/4",
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 table EL.'X' - h1 - h2 = coping top (left)",
"expected": 59952,
"actual": 59952,
"diff": 0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 pedestal bottom = coping top",
"expected": 59952,
"actual": 59952.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 pedestal top = top + h1",
"expected": 60062,
"actual": 60062.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 pad top = EL.'X'",
"expected": 60112,
"actual": 60112.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 pedestal along (C3)",
"expected": 1400,
"actual": 1400.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 pedestal across (C6)",
"expected": 1300,
"actual": 1300.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 pedestal rotation deg [작도]",
"expected": -5.55,
"actual": -5.55,
"diff": 0.0,
"tol": 0.05,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 pedestal centre X",
"expected": -2250,
"actual": -2250.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 pedestal centre Y",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 pad centre X",
"expected": -2250,
"actual": -2250.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 pad centre Y",
"expected": 0,
"actual": -0.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 pad volume (prismatoid A,B)",
"expected": 49916666.667,
"actual": 49916666.667,
"diff": 0.0,
"tol": 49916.66666666667,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 overlap pedestal-coping (mm3)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 overlap pad-pedestal (mm3)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 pedestal footprint on the coping top",
"detail": "4 corners tested 1 mm below",
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 table EL.'X' - h1 - h2 = coping top (right)",
"expected": 60267,
"actual": 60267,
"diff": 0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 pedestal bottom = coping top",
"expected": 60267,
"actual": 60267.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 pedestal top = top + h1",
"expected": 60377,
"actual": 60377.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 pad top = EL.'X'",
"expected": 60427,
"actual": 60427.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 pedestal along (C3)",
"expected": 1400,
"actual": 1400.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 pedestal across (C6)",
"expected": 1300,
"actual": 1300.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 pedestal rotation deg [작도]",
"expected": -9.194,
"actual": -9.194,
"diff": 0.0,
"tol": 0.05,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 pedestal centre X",
"expected": 2250,
"actual": 2253.0,
"diff": 3.0,
"tol": 1.0,
"result": "FAIL"
},
{
"check": "C7",
"item": "NO.2 pedestal centre Y",
"expected": 0,
"actual": -0.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 pad centre X",
"expected": 2250,
"actual": 2250.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 pad centre Y",
"expected": 0,
"actual": -0.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 pad volume (prismatoid A,B)",
"expected": 49916666.667,
"actual": 49916666.667,
"diff": 0.0,
"tol": 49916.66666666667,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 overlap pedestal-coping (mm3)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 overlap pad-pedestal (mm3)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 pedestal footprint on the coping top",
"detail": "4 corners tested 1 mm below",
"result": "PASS"
}
]
}
@@ -0,0 +1,834 @@
{
"summary": {
"total": 97,
"passed": 96,
"failed": 1,
"volumes_m3": {
"pile1": 32.53,
"pile2": 25.525,
"column": 37.699,
"coping": 31.393
}
},
"results": [
{
"check": "C5",
"item": "object counts",
"detail": "{'LC': 0, 'FT': 0, 'CL': 1, 'CP': 1, 'PL': 2}",
"result": "PASS"
},
{
"check": "C2",
"item": "IsSolid all 4",
"detail": "4/4",
"result": "PASS"
},
{
"check": "C1",
"item": "pile segment 1 diameter X",
"expected": 2350,
"actual": 2350.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "pile segment 1 diameter Y",
"expected": 2350,
"actual": 2350.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "pile segment 1 Zbot",
"expected": 32752,
"actual": 32752.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "pile segment 1 Ztop",
"expected": 40252,
"actual": 40252.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "pile segment 2 diameter X",
"expected": 2500,
"actual": 2500.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "pile segment 2 diameter Y",
"expected": 2500,
"actual": 2500.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "pile segment 2 Zbot",
"expected": 40252,
"actual": 40252.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "pile segment 2 Ztop",
"expected": 45452,
"actual": 45452.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "pile top = EL text",
"expected": 45452,
"actual": 45452,
"diff": 0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "column diameter X",
"expected": 2000,
"actual": 2000.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "column diameter Y",
"expected": 2000,
"actual": 2000.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "column Zbot",
"expected": 45452,
"actual": 45452.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "column Ztop",
"expected": 57452,
"actual": 57452.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "coping length X (bottom tips)",
"expected": 7600.0,
"actual": 7600.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "coping width Y",
"expected": 2200.0,
"actual": 2200.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "coping Zbot",
"expected": 57452,
"actual": 57452.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "coping Ztop",
"expected": 60267,
"actual": 60267.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "coping centre X",
"expected": 0,
"actual": -0.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C1",
"item": "total height (pile bottom - coping top left)",
"expected": 27200,
"actual": 27200,
"diff": 0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "front section closed single loop",
"detail": "1 loop(s)",
"result": "PASS"
},
{
"check": "C4",
"item": "bottom at X=+0 (column top)",
"expected": 57452,
"actual": 57452.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "bottom at X=+999 (column top)",
"expected": 57452,
"actual": 57452.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "bottom at X=-999 (column top)",
"expected": 57452,
"actual": 57452.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "soffit R5000 at X=+1500",
"expected": 57914.881,
"actual": 57914.881,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "soffit R5000 at X=-1500",
"expected": 57914.881,
"actual": 57914.881,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "soffit R5000 at X=+2500",
"expected": 58542.316,
"actual": 58542.316,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "soffit R5000 at X=-2500",
"expected": 58542.316,
"actual": 58542.316,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "soffit R5000 at X=+3500",
"expected": 58891.446,
"actual": 58891.446,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "soffit R5000 at X=-3500",
"expected": 58891.446,
"actual": 58891.446,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "soffit R5000 at X=+3795",
"expected": 58951.147,
"actual": 58951.146,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "soffit R5000 at X=-3795",
"expected": 58951.147,
"actual": 58951.146,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "top at X=-3000",
"expected": 59952,
"actual": 59952.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "top at X=-1000",
"expected": 59952,
"actual": 59952.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "top at X=+1000",
"expected": 60267,
"actual": 60267.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "top at X=+3000",
"expected": 60267,
"actual": 60267.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "end face at X=-3650 (top 3500 -> bottom 3800)",
"expected": 59452.0,
"actual": 59452.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "end face at X=+3650 (top 3500 -> bottom 3800)",
"expected": 59609.5,
"actual": 59609.5,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "top step at the pier centre (right - left)",
"expected": 315,
"actual": 315.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "side section closed single loop",
"detail": "1 loop(s)",
"result": "PASS"
},
{
"check": "C4",
"item": "side width at Z=57453",
"expected": 2000.133,
"actual": 2000.133,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "side width at Z=58202",
"expected": 2100.0,
"actual": 2100.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "side width at Z=58951",
"expected": 2199.867,
"actual": 2199.867,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "side width at Z=59452",
"expected": 2200.0,
"actual": 2200.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C4",
"item": "end face left at y=0 z=58957 [작도 corner 3650]",
"detail": "x_end -3798.5: inside 3 mm in True, outside 3 mm out True",
"result": "PASS"
},
{
"check": "C4",
"item": "end face left at y=1090 z=58957 [작도 corner 3650]",
"detail": "x_end -3652.0: inside 3 mm in True, outside 3 mm out True",
"result": "PASS"
},
{
"check": "C4",
"item": "end face left at y=0 z=59452 [작도 corner 3650]",
"detail": "x_end -3650.0: inside 3 mm in True, outside 3 mm out True",
"result": "PASS"
},
{
"check": "C4",
"item": "end face left at y=1090 z=59452 [작도 corner 3650]",
"detail": "x_end -3576.4: inside 3 mm in True, outside 3 mm out True",
"result": "PASS"
},
{
"check": "C4",
"item": "end face left at y=1090 z=59947 [작도 corner 3650]",
"detail": "x_end -3500.8: inside 3 mm in True, outside 3 mm out True",
"result": "PASS"
},
{
"check": "C4",
"item": "end face right at y=0 z=58957 [작도 corner 3650]",
"detail": "x_end 3798.9: inside 3 mm in True, outside 3 mm out True",
"result": "PASS"
},
{
"check": "C4",
"item": "end face right at y=1090 z=58957 [작도 corner 3650]",
"detail": "x_end 3652.2: inside 3 mm in True, outside 3 mm out True",
"result": "PASS"
},
{
"check": "C4",
"item": "end face right at y=0 z=59610 [작도 corner 3650]",
"detail": "x_end 3650.0: inside 3 mm in True, outside 3 mm out True",
"result": "PASS"
},
{
"check": "C4",
"item": "end face right at y=1090 z=59610 [작도 corner 3650]",
"detail": "x_end 3576.4: inside 3 mm in True, outside 3 mm out True",
"result": "PASS"
},
{
"check": "C4",
"item": "end face right at y=1090 z=60262 [작도 corner 3650]",
"detail": "x_end 3500.6: inside 3 mm in True, outside 3 mm out True",
"result": "PASS"
},
{
"check": "C3",
"item": "PL01 top = PL02 bottom",
"expected": 40252.0,
"actual": 40252.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C3",
"item": "overlap PL01-PL02 (mm3)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C3",
"item": "PL02 top = CL bottom",
"expected": 45452.0,
"actual": 45452.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C3",
"item": "overlap PL02-CL (mm3)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C3",
"item": "CL top = CP bottom",
"expected": 57452.0,
"actual": 57452.0,
"diff": -0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C3",
"item": "overlap CL-CP (mm3)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C6",
"item": "pile segment 1 volume m3",
"expected": 32.53,
"actual": 32.53,
"diff": 0.0,
"tol": 0.03253021018021807,
"result": "PASS"
},
{
"check": "C6",
"item": "pile segment 2 volume m3",
"expected": 25.525,
"actual": 25.525,
"diff": 0.0,
"tol": 0.02552544031041707,
"result": "PASS"
},
{
"check": "C6",
"item": "column volume m3",
"expected": 37.699,
"actual": 37.699,
"diff": 0.0,
"tol": 0.03769911184307752,
"result": "PASS"
},
{
"check": "C6",
"item": "coping volume m3 (dimension outline)",
"expected": 31.39,
"actual": 31.393,
"diff": 0.002,
"tol": 0.03139039475030509,
"result": "PASS"
},
{
"check": "C7",
"item": "pedestal / pad counts",
"detail": "seats=2 pads=2",
"result": "PASS"
},
{
"check": "C7",
"item": "IsSolid pedestals+pads",
"detail": "4/4",
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 table EL.'X' - h1 - h2 = coping top (left)",
"expected": 59952,
"actual": 59952,
"diff": 0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 pedestal bottom = coping top",
"expected": 59952,
"actual": 59952.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 pedestal top = top + h1",
"expected": 60062,
"actual": 60062.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 pad top = EL.'X'",
"expected": 60112,
"actual": 60114.0,
"diff": 2.0,
"tol": 1.0,
"result": "FAIL"
},
{
"check": "C7",
"item": "NO.1 pedestal along (C3)",
"expected": 1400,
"actual": 1400.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 pedestal across (C6)",
"expected": 1300,
"actual": 1300.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 pedestal rotation deg [작도]",
"expected": -5.55,
"actual": -5.55,
"diff": 0.0,
"tol": 0.05,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 pedestal centre X",
"expected": -2250,
"actual": -2250.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 pedestal centre Y",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 pad centre X",
"expected": -2250,
"actual": -2250.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 pad centre Y",
"expected": 0,
"actual": -0.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 pad volume (prismatoid A,B)",
"expected": 49916666.667,
"actual": 49916666.667,
"diff": -0.0,
"tol": 49916.66666666667,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 overlap pedestal-coping (mm3)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 overlap pad-pedestal (mm3)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.1 pedestal footprint on the coping top",
"detail": "4 corners tested 1 mm below",
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 table EL.'X' - h1 - h2 = coping top (right)",
"expected": 60267,
"actual": 60267,
"diff": 0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 pedestal bottom = coping top",
"expected": 60267,
"actual": 60267.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 pedestal top = top + h1",
"expected": 60377,
"actual": 60377.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 pad top = EL.'X'",
"expected": 60427,
"actual": 60427.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 pedestal along (C3)",
"expected": 1400,
"actual": 1400.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 pedestal across (C6)",
"expected": 1300,
"actual": 1300.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 pedestal rotation deg [작도]",
"expected": -9.194,
"actual": -9.194,
"diff": 0.0,
"tol": 0.05,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 pedestal centre X",
"expected": 2250,
"actual": 2250.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 pedestal centre Y",
"expected": 0,
"actual": -0.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 pad centre X",
"expected": 2250,
"actual": 2250.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 pad centre Y",
"expected": 0,
"actual": -0.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 pad volume (prismatoid A,B)",
"expected": 49916666.667,
"actual": 49916666.667,
"diff": 0.0,
"tol": 49916.66666666667,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 overlap pedestal-coping (mm3)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 overlap pad-pedestal (mm3)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C7",
"item": "NO.2 pedestal footprint on the coping top",
"detail": "4 corners tested 1 mm below",
"result": "PASS"
}
]
}
@@ -0,0 +1,269 @@
{
"summary": {
"total": 26,
"passed": 26,
"failed": 0,
"min_cover": {
"P1": 107.5,
"P2": 91.0,
"P3": 76.0
}
},
"results": [
{
"check": "C8",
"item": "P1 bar count",
"expected": 54,
"actual": 54,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 pipes closed & paired with centrelines",
"detail": "54/54",
"result": "PASS"
},
{
"check": "C8",
"item": "P2 bar count",
"expected": 107,
"actual": 107,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 pipes closed & paired with centrelines",
"detail": "214/214",
"result": "PASS"
},
{
"check": "C8",
"item": "P3 bar count",
"expected": 108,
"actual": 108,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 pipes closed & paired with centrelines",
"detail": "108/108",
"result": "PASS"
},
{
"check": "C8",
"item": "P1 original length (+coupler) vs schedule L (worst of 54)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 curve length (+coupler) - L (record)",
"detail": "min 0.0 / max 0.0 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P2 original length (+coupler) vs schedule L (worst of 107)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 curve length (+coupler) - L (record)",
"detail": "min -254.2 / max -254.2 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P3 original length (+coupler) vs schedule L (worst of 108)",
"expected": 0,
"actual": 1.0,
"diff": 1.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 curve length (+coupler) - L (record)",
"detail": "min -161.6 / max -161.6 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 0.0 + i*360/54 (worst, deg)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 bottom EL = chain 45.492 - 2000 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 top EL = bottom + L - coupler 40 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 levels 107 x 2 pieces",
"detail": "107 levels",
"result": "PASS"
},
{
"check": "C8",
"item": "P2 levels vs chain grid 150 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 radius at mid point (L107b)",
"expected": 901,
"actual": 901.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 radius at mid point (L107a)",
"expected": 901,
"actual": 901.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 radius at mid point (L106b)",
"expected": 901,
"actual": 901.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 radius at mid point (L106a)",
"expected": 901,
"actual": 901.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 X / Y per level, 54 levels",
"detail": "X 54 Y 54",
"result": "PASS"
},
{
"check": "C8",
"item": "P3 X levels vs chain grid 300 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 Y levels = X + 16 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 X / Y centrelines apart >= bar diameter 16 (min, capped)",
"expected": 16,
"actual": 16.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 X / Y centreline distance (min, record)",
"detail": "16.00 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "concrete union for cover",
"detail": "0 brep from 4 solids -> min cover = column side cover in the column zone (R - radial distance - bar radius)",
"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": "min cover to concrete surface per mark (record)",
"detail": "{\"P1\": 107.5, \"P2\": 91.0, \"P3\": 76.0}",
"result": "INFO"
}
]
}
@@ -0,0 +1,66 @@
{
"gate": "G2",
"checker": "g2_straight.py",
"verdict": "PASS",
"summary": {
"total": 26,
"passed": 26,
"failed": 0,
"min_cover": {
"P1": 107.5,
"P2": 91.0,
"P3": 76.0
}
},
"unplanned_fails": [],
"planned_fails": [],
"negative": {
"negH": {
"move": {
"mark": "P1",
"d": [
5,
0,
0
]
},
"new_fails": [
"P1 radius (worst)"
],
"detected": true
},
"negV": {
"move": {
"mark": "P2",
"d": [
0,
0,
5
]
},
"new_fails": [
"P2 levels 107 x 2 pieces",
"P2 levels vs chain grid 150 (worst)"
],
"detected": true
}
},
"reload": {
"ok": null,
"skipped": "일괄 실행(단일 세션) — 저장·재로드 안 함"
},
"unchanged": {
"ok": null,
"compared": 0,
"diffs": [],
"missing": [],
"against": null,
"skipped": "일괄 실행(단일 세션) — 앞 게이트 객체를 다시 만들지 않음"
},
"model": null,
"mode": "batch",
"secs": 25.3,
"session_secs": 126.1,
"inputs_sha": "c55f791089aa00a4",
"job_id": "095a143ee855"
}
@@ -0,0 +1,15 @@
{
"id": "095a143ee855",
"pid": 14152,
"state": "완료",
"at": "2026-10-16 16:32:31",
"log": [
"[batch] one Rhino session: build G1..G5, check G1, G2, G3, G4, G5 (no per-gate save / reload)",
"[G1] PASS checks 97/97 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G2] PASS checks 26/26 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G3] PASS checks 48/48 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G4] PASS checks 126/126 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G5] PASS checks 39/39 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[batch] done in 126.3s, objects 2255, model C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\Ramp-A교P1\\runs\\current\\G5.3dm"
]
}
@@ -0,0 +1,269 @@
{
"summary": {
"total": 26,
"passed": 25,
"failed": 1,
"min_cover": {
"P1": 102.5,
"P2": 91.0,
"P3": 76.0
}
},
"results": [
{
"check": "C8",
"item": "P1 bar count",
"expected": 54,
"actual": 54,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 pipes closed & paired with centrelines",
"detail": "54/54",
"result": "PASS"
},
{
"check": "C8",
"item": "P2 bar count",
"expected": 107,
"actual": 107,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 pipes closed & paired with centrelines",
"detail": "214/214",
"result": "PASS"
},
{
"check": "C8",
"item": "P3 bar count",
"expected": 108,
"actual": 108,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 pipes closed & paired with centrelines",
"detail": "108/108",
"result": "PASS"
},
{
"check": "C8",
"item": "P1 original length (+coupler) vs schedule L (worst of 54)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 curve length (+coupler) - L (record)",
"detail": "min 0.0 / max 0.0 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P2 original length (+coupler) vs schedule L (worst of 107)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 curve length (+coupler) - L (record)",
"detail": "min -254.2 / max -254.2 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P3 original length (+coupler) vs schedule L (worst of 108)",
"expected": 0,
"actual": 1.0,
"diff": 1.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 curve length (+coupler) - L (record)",
"detail": "min -161.6 / max -161.6 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 0.0 + i*360/54 (worst, deg)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 bottom EL = chain 45.492 - 2000 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 top EL = bottom + L - coupler 40 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 levels 107 x 2 pieces",
"detail": "107 levels",
"result": "PASS"
},
{
"check": "C8",
"item": "P2 levels vs chain grid 150 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 radius at mid point (L107b)",
"expected": 901,
"actual": 901.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 radius at mid point (L107a)",
"expected": 901,
"actual": 901.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 radius at mid point (L106b)",
"expected": 901,
"actual": 901.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 radius at mid point (L106a)",
"expected": 901,
"actual": 901.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 X / Y per level, 54 levels",
"detail": "X 54 Y 54",
"result": "PASS"
},
{
"check": "C8",
"item": "P3 X levels vs chain grid 300 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 Y levels = X + 16 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 X / Y centrelines apart >= bar diameter 16 (min, capped)",
"expected": 16,
"actual": 16.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 X / Y centreline distance (min, record)",
"detail": "16.00 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "concrete union for cover",
"detail": "0 brep from 4 solids -> min cover = column side cover in the column zone (R - radial distance - bar radius)",
"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": "min cover to concrete surface per mark (record)",
"detail": "{\"P1\": 102.5, \"P2\": 91.0, \"P3\": 76.0}",
"result": "INFO"
}
]
}
@@ -0,0 +1,269 @@
{
"summary": {
"total": 26,
"passed": 24,
"failed": 2,
"min_cover": {
"P1": 107.5,
"P2": 91.0,
"P3": 76.0
}
},
"results": [
{
"check": "C8",
"item": "P1 bar count",
"expected": 54,
"actual": 54,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 pipes closed & paired with centrelines",
"detail": "54/54",
"result": "PASS"
},
{
"check": "C8",
"item": "P2 bar count",
"expected": 107,
"actual": 107,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 pipes closed & paired with centrelines",
"detail": "214/214",
"result": "PASS"
},
{
"check": "C8",
"item": "P3 bar count",
"expected": 108,
"actual": 108,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 pipes closed & paired with centrelines",
"detail": "108/108",
"result": "PASS"
},
{
"check": "C8",
"item": "P1 original length (+coupler) vs schedule L (worst of 54)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 curve length (+coupler) - L (record)",
"detail": "min 0.0 / max 0.0 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P2 original length (+coupler) vs schedule L (worst of 107)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 curve length (+coupler) - L (record)",
"detail": "min -254.2 / max -254.2 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P3 original length (+coupler) vs schedule L (worst of 108)",
"expected": 0,
"actual": 1.0,
"diff": 1.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 curve length (+coupler) - L (record)",
"detail": "min -161.6 / max -161.6 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 0.0 + i*360/54 (worst, deg)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 bottom EL = chain 45.492 - 2000 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 top EL = bottom + L - coupler 40 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 levels 107 x 2 pieces",
"detail": "108 levels",
"result": "FAIL"
},
{
"check": "C8",
"item": "P2 levels vs chain grid 150 (worst)",
"expected": 0,
"actual": 1000000000.0,
"diff": 1000000000.0,
"tol": 1.0,
"result": "FAIL"
},
{
"check": "C8",
"item": "P2 radius at mid point (L001a)",
"expected": 901,
"actual": 901.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 radius at mid point (L107b)",
"expected": 901,
"actual": 901.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 radius at mid point (L107a)",
"expected": 901,
"actual": 901.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 radius at mid point (L106b)",
"expected": 901,
"actual": 901.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 X / Y per level, 54 levels",
"detail": "X 54 Y 54",
"result": "PASS"
},
{
"check": "C8",
"item": "P3 X levels vs chain grid 300 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 Y levels = X + 16 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 X / Y centrelines apart >= bar diameter 16 (min, capped)",
"expected": 16,
"actual": 16.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 X / Y centreline distance (min, record)",
"detail": "16.00 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "concrete union for cover",
"detail": "0 brep from 4 solids -> min cover = column side cover in the column zone (R - radial distance - bar radius)",
"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": "min cover to concrete surface per mark (record)",
"detail": "{\"P1\": 107.5, \"P2\": 91.0, \"P3\": 76.0}",
"result": "INFO"
}
]
}
@@ -0,0 +1,466 @@
{
"summary": {
"total": 48,
"passed": 48,
"failed": 0,
"min_cover": {
"P1-1": 158.0,
"P1-2": 164.5,
"P2-1": 142.0,
"P3-1": 98.5,
"P3-2": 92.0
}
},
"results": [
{
"check": "C9",
"item": "P1-1 bar count",
"expected": 61,
"actual": 61,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "P1-1 pipes closed & paired with centrelines",
"detail": "61/61",
"result": "PASS"
},
{
"check": "C9",
"item": "P1-2 bar count",
"expected": 61,
"actual": 61,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "P1-2 pipes closed & paired with centrelines",
"detail": "61/61",
"result": "PASS"
},
{
"check": "C9",
"item": "P2-1 bar count",
"expected": 48,
"actual": 48,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "P2-1 pipes closed & paired with centrelines",
"detail": "96/96",
"result": "PASS"
},
{
"check": "C9",
"item": "P3-1 bar count",
"expected": 48,
"actual": 48,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "P3-1 pipes closed & paired with centrelines",
"detail": "48/48",
"result": "PASS"
},
{
"check": "C9",
"item": "P3-2 bar count",
"expected": 30,
"actual": 30,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "P3-2 pipes closed & paired with centrelines",
"detail": "30/30",
"result": "PASS"
},
{
"check": "C9",
"item": "P1-1 original length (+coupler) vs schedule L (worst of 61)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P1-1 curve length (+coupler) - L (record)",
"detail": "min 0.0 / max 0.0 mm",
"result": "INFO"
},
{
"check": "C9",
"item": "P1-2 original length (+coupler) vs schedule L (worst of 61)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P1-2 curve length (+coupler) - L (record)",
"detail": "min 0.0 / max 0.0 mm",
"result": "INFO"
},
{
"check": "C9",
"item": "P2-1 original length (+coupler) vs schedule L (worst of 48)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P2-1 curve length (+coupler) - L (record)",
"detail": "min -254.4 / max -254.4 mm",
"result": "INFO"
},
{
"check": "C9",
"item": "P3-1 original length (+coupler) vs schedule L (worst of 48)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P3-1 curve length (+coupler) - L (record)",
"detail": "min -234.6 / max -234.6 mm",
"result": "INFO"
},
{
"check": "C9",
"item": "P3-2 original length (+coupler) vs schedule L (worst of 30)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P3-2 curve length (+coupler) - L (record)",
"detail": "min -65.7 / max -65.7 mm",
"result": "INFO"
},
{
"check": "C9",
"item": "main span (last - first hoop level) = sum of piece L",
"expected": 12150.0,
"actual": 12150,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P1-2 bottom EL (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P1-2 top EL = bottom + L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P1-2 radius (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C9",
"item": "P1-2 angle vs 1.475 + i*360/61 (worst, deg)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C9",
"item": "P1-1 bottom EL (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P1-1 top EL = bottom + L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P1-1 radius (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C9",
"item": "P1-1 angle vs 1.475 + i*360/61 (worst, deg)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C9",
"item": "P2-1 levels 48 x 2 pieces",
"detail": "48 levels",
"result": "PASS"
},
{
"check": "C9",
"item": "P2-1 levels vs 구조물 치수표 chain (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P2-1 radius at mid point (L048b)",
"expected": 1025,
"actual": 1025.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C9",
"item": "P2-1 radius at mid point (L048a)",
"expected": 1025,
"actual": 1025.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C9",
"item": "P2-1 radius at mid point (L047b)",
"expected": 1025,
"actual": 1025.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C9",
"item": "P2-1 radius at mid point (L047a)",
"expected": 1025,
"actual": 1025.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C9",
"item": "P3-1 X / Y per level, 24 levels",
"detail": "X 24 Y 24",
"result": "PASS"
},
{
"check": "C9",
"item": "P3-1 X levels vs chain (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P3-1 Y levels = X + 16 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P3-1 X / Y centrelines apart >= bar diameter 16 (min, capped)",
"expected": 16,
"actual": 16.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C9",
"item": "P3-2 bottom EL = shaft bottom + 100 (worst, centreline)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P3-2 leg spacing (worst) = 2 x hoop radius 2050",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P3-2 vertical planes through the centre",
"expected": 30,
"actual": 30,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "plate count 1",
"detail": "1",
"result": "PASS"
},
{
"check": "C9",
"item": "plate size X",
"expected": 1250,
"actual": 1250.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "plate size Y",
"expected": 1250,
"actual": 1250.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "plate thickness",
"expected": 4,
"actual": 4.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C9",
"item": "plate centre X / Y offset",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "plate top = U bottom - 8 (S4)",
"expected": 32844.0,
"actual": 32844.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C9",
"item": "plate bottom cover (record)",
"detail": "88.0 mm",
"result": "INFO"
},
{
"check": "C9",
"item": "P1-1 sample points outside the pile concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "P1-2 sample points outside the pile concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "P2-1 sample points outside the pile concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "P3-1 sample points outside the pile concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "P3-2 sample points outside the pile concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "min cover per mark (side or bottom, record)",
"detail": "{\"P1-1\": 158.0, \"P1-2\": 164.5, \"P2-1\": 142.0, \"P3-1\": 98.5, \"P3-2\": 92.0}",
"result": "INFO"
}
]
}
@@ -0,0 +1,68 @@
{
"gate": "G3",
"checker": "g3_shaft.py",
"verdict": "PASS",
"summary": {
"total": 48,
"passed": 48,
"failed": 0,
"min_cover": {
"P1-1": 158.0,
"P1-2": 164.5,
"P2-1": 142.0,
"P3-1": 98.5,
"P3-2": 92.0
}
},
"unplanned_fails": [],
"planned_fails": [],
"negative": {
"negH": {
"move": {
"mark": "P1-1",
"d": [
5,
0,
0
]
},
"new_fails": [
"P1-1 radius (worst)"
],
"detected": true
},
"negV": {
"move": {
"mark": "P2-1",
"d": [
0,
0,
5
]
},
"new_fails": [
"P2-1 levels 48 x 2 pieces",
"P2-1 levels vs 구조물 치수표 chain (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": 126.1,
"inputs_sha": "c55f791089aa00a4",
"job_id": "095a143ee855"
}
@@ -0,0 +1,15 @@
{
"id": "095a143ee855",
"pid": 14152,
"state": "완료",
"at": "2026-10-16 16:32:31",
"log": [
"[batch] one Rhino session: build G1..G5, check G1, G2, G3, G4, G5 (no per-gate save / reload)",
"[G1] PASS checks 97/97 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G2] PASS checks 26/26 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G3] PASS checks 48/48 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G4] PASS checks 126/126 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G5] PASS checks 39/39 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[batch] done in 126.3s, objects 2255, model C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\Ramp-A교P1\\runs\\current\\G5.3dm"
]
}
@@ -0,0 +1,466 @@
{
"summary": {
"total": 48,
"passed": 47,
"failed": 1,
"min_cover": {
"P1-1": 153.0,
"P1-2": 164.5,
"P2-1": 142.0,
"P3-1": 98.5,
"P3-2": 92.0
}
},
"results": [
{
"check": "C9",
"item": "P1-1 bar count",
"expected": 61,
"actual": 61,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "P1-1 pipes closed & paired with centrelines",
"detail": "61/61",
"result": "PASS"
},
{
"check": "C9",
"item": "P1-2 bar count",
"expected": 61,
"actual": 61,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "P1-2 pipes closed & paired with centrelines",
"detail": "61/61",
"result": "PASS"
},
{
"check": "C9",
"item": "P2-1 bar count",
"expected": 48,
"actual": 48,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "P2-1 pipes closed & paired with centrelines",
"detail": "96/96",
"result": "PASS"
},
{
"check": "C9",
"item": "P3-1 bar count",
"expected": 48,
"actual": 48,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "P3-1 pipes closed & paired with centrelines",
"detail": "48/48",
"result": "PASS"
},
{
"check": "C9",
"item": "P3-2 bar count",
"expected": 30,
"actual": 30,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "P3-2 pipes closed & paired with centrelines",
"detail": "30/30",
"result": "PASS"
},
{
"check": "C9",
"item": "P1-1 original length (+coupler) vs schedule L (worst of 61)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P1-1 curve length (+coupler) - L (record)",
"detail": "min 0.0 / max 0.0 mm",
"result": "INFO"
},
{
"check": "C9",
"item": "P1-2 original length (+coupler) vs schedule L (worst of 61)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P1-2 curve length (+coupler) - L (record)",
"detail": "min 0.0 / max 0.0 mm",
"result": "INFO"
},
{
"check": "C9",
"item": "P2-1 original length (+coupler) vs schedule L (worst of 48)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P2-1 curve length (+coupler) - L (record)",
"detail": "min -254.4 / max -254.4 mm",
"result": "INFO"
},
{
"check": "C9",
"item": "P3-1 original length (+coupler) vs schedule L (worst of 48)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P3-1 curve length (+coupler) - L (record)",
"detail": "min -234.6 / max -234.6 mm",
"result": "INFO"
},
{
"check": "C9",
"item": "P3-2 original length (+coupler) vs schedule L (worst of 30)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P3-2 curve length (+coupler) - L (record)",
"detail": "min -65.7 / max -65.7 mm",
"result": "INFO"
},
{
"check": "C9",
"item": "main span (last - first hoop level) = sum of piece L",
"expected": 12150.0,
"actual": 12150,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P1-2 bottom EL (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P1-2 top EL = bottom + L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P1-2 radius (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C9",
"item": "P1-2 angle vs 1.475 + i*360/61 (worst, deg)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C9",
"item": "P1-1 bottom EL (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P1-1 top EL = bottom + L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P1-1 radius (worst)",
"expected": 0,
"actual": 4.998,
"diff": 4.998,
"tol": 0.5,
"result": "FAIL"
},
{
"check": "C9",
"item": "P1-1 angle vs 1.475 + i*360/61 (worst, deg)",
"expected": 0,
"actual": 0.007,
"diff": 0.007,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C9",
"item": "P2-1 levels 48 x 2 pieces",
"detail": "48 levels",
"result": "PASS"
},
{
"check": "C9",
"item": "P2-1 levels vs 구조물 치수표 chain (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P2-1 radius at mid point (L048b)",
"expected": 1025,
"actual": 1025.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C9",
"item": "P2-1 radius at mid point (L048a)",
"expected": 1025,
"actual": 1025.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C9",
"item": "P2-1 radius at mid point (L047b)",
"expected": 1025,
"actual": 1025.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C9",
"item": "P2-1 radius at mid point (L047a)",
"expected": 1025,
"actual": 1025.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C9",
"item": "P3-1 X / Y per level, 24 levels",
"detail": "X 24 Y 24",
"result": "PASS"
},
{
"check": "C9",
"item": "P3-1 X levels vs chain (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P3-1 Y levels = X + 16 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P3-1 X / Y centrelines apart >= bar diameter 16 (min, capped)",
"expected": 16,
"actual": 16.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C9",
"item": "P3-2 bottom EL = shaft bottom + 100 (worst, centreline)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P3-2 leg spacing (worst) = 2 x hoop radius 2050",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P3-2 vertical planes through the centre",
"expected": 30,
"actual": 30,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "plate count 1",
"detail": "1",
"result": "PASS"
},
{
"check": "C9",
"item": "plate size X",
"expected": 1250,
"actual": 1250.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "plate size Y",
"expected": 1250,
"actual": 1250.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "plate thickness",
"expected": 4,
"actual": 4.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C9",
"item": "plate centre X / Y offset",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "plate top = U bottom - 8 (S4)",
"expected": 32844.0,
"actual": 32844.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C9",
"item": "plate bottom cover (record)",
"detail": "88.0 mm",
"result": "INFO"
},
{
"check": "C9",
"item": "P1-1 sample points outside the pile concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "P1-2 sample points outside the pile concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "P2-1 sample points outside the pile concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "P3-1 sample points outside the pile concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "P3-2 sample points outside the pile concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "min cover per mark (side or bottom, record)",
"detail": "{\"P1-1\": 153.0, \"P1-2\": 164.5, \"P2-1\": 142.0, \"P3-1\": 98.5, \"P3-2\": 92.0}",
"result": "INFO"
}
]
}
@@ -0,0 +1,466 @@
{
"summary": {
"total": 48,
"passed": 46,
"failed": 2,
"min_cover": {
"P1-1": 158.0,
"P1-2": 164.5,
"P2-1": 142.0,
"P3-1": 98.5,
"P3-2": 92.0
}
},
"results": [
{
"check": "C9",
"item": "P1-1 bar count",
"expected": 61,
"actual": 61,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "P1-1 pipes closed & paired with centrelines",
"detail": "61/61",
"result": "PASS"
},
{
"check": "C9",
"item": "P1-2 bar count",
"expected": 61,
"actual": 61,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "P1-2 pipes closed & paired with centrelines",
"detail": "61/61",
"result": "PASS"
},
{
"check": "C9",
"item": "P2-1 bar count",
"expected": 48,
"actual": 48,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "P2-1 pipes closed & paired with centrelines",
"detail": "96/96",
"result": "PASS"
},
{
"check": "C9",
"item": "P3-1 bar count",
"expected": 48,
"actual": 48,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "P3-1 pipes closed & paired with centrelines",
"detail": "48/48",
"result": "PASS"
},
{
"check": "C9",
"item": "P3-2 bar count",
"expected": 30,
"actual": 30,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "P3-2 pipes closed & paired with centrelines",
"detail": "30/30",
"result": "PASS"
},
{
"check": "C9",
"item": "P1-1 original length (+coupler) vs schedule L (worst of 61)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P1-1 curve length (+coupler) - L (record)",
"detail": "min 0.0 / max 0.0 mm",
"result": "INFO"
},
{
"check": "C9",
"item": "P1-2 original length (+coupler) vs schedule L (worst of 61)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P1-2 curve length (+coupler) - L (record)",
"detail": "min 0.0 / max 0.0 mm",
"result": "INFO"
},
{
"check": "C9",
"item": "P2-1 original length (+coupler) vs schedule L (worst of 48)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P2-1 curve length (+coupler) - L (record)",
"detail": "min -254.4 / max -254.4 mm",
"result": "INFO"
},
{
"check": "C9",
"item": "P3-1 original length (+coupler) vs schedule L (worst of 48)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P3-1 curve length (+coupler) - L (record)",
"detail": "min -234.6 / max -234.6 mm",
"result": "INFO"
},
{
"check": "C9",
"item": "P3-2 original length (+coupler) vs schedule L (worst of 30)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P3-2 curve length (+coupler) - L (record)",
"detail": "min -65.7 / max -65.7 mm",
"result": "INFO"
},
{
"check": "C9",
"item": "main span (last - first hoop level) = sum of piece L",
"expected": 12150.0,
"actual": 12150,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P1-2 bottom EL (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P1-2 top EL = bottom + L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P1-2 radius (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C9",
"item": "P1-2 angle vs 1.475 + i*360/61 (worst, deg)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C9",
"item": "P1-1 bottom EL (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P1-1 top EL = bottom + L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P1-1 radius (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C9",
"item": "P1-1 angle vs 1.475 + i*360/61 (worst, deg)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C9",
"item": "P2-1 levels 48 x 2 pieces",
"detail": "49 levels",
"result": "FAIL"
},
{
"check": "C9",
"item": "P2-1 levels vs 구조물 치수표 chain (worst)",
"expected": 0,
"actual": 1000000000.0,
"diff": 1000000000.0,
"tol": 1.0,
"result": "FAIL"
},
{
"check": "C9",
"item": "P2-1 radius at mid point (L001a)",
"expected": 1025,
"actual": 1025.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C9",
"item": "P2-1 radius at mid point (L048b)",
"expected": 1025,
"actual": 1025.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C9",
"item": "P2-1 radius at mid point (L048a)",
"expected": 1025,
"actual": 1025.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C9",
"item": "P2-1 radius at mid point (L047b)",
"expected": 1025,
"actual": 1025.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C9",
"item": "P3-1 X / Y per level, 24 levels",
"detail": "X 24 Y 24",
"result": "PASS"
},
{
"check": "C9",
"item": "P3-1 X levels vs chain (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P3-1 Y levels = X + 16 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P3-1 X / Y centrelines apart >= bar diameter 16 (min, capped)",
"expected": 16,
"actual": 16.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C9",
"item": "P3-2 bottom EL = shaft bottom + 100 (worst, centreline)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P3-2 leg spacing (worst) = 2 x hoop radius 2050",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "P3-2 vertical planes through the centre",
"expected": 30,
"actual": 30,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "plate count 1",
"detail": "1",
"result": "PASS"
},
{
"check": "C9",
"item": "plate size X",
"expected": 1250,
"actual": 1250.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "plate size Y",
"expected": 1250,
"actual": 1250.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "plate thickness",
"expected": 4,
"actual": 4.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C9",
"item": "plate centre X / Y offset",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "plate top = U bottom - 8 (S4)",
"expected": 32844.0,
"actual": 32844.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C9",
"item": "plate bottom cover (record)",
"detail": "88.0 mm",
"result": "INFO"
},
{
"check": "C9",
"item": "P1-1 sample points outside the pile concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "P1-2 sample points outside the pile concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "P2-1 sample points outside the pile concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "P3-1 sample points outside the pile concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "P3-2 sample points outside the pile concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "min cover per mark (side or bottom, record)",
"detail": "{\"P1-1\": 158.0, \"P1-2\": 164.5, \"P2-1\": 142.0, \"P3-1\": 98.5, \"P3-2\": 92.0}",
"result": "INFO"
}
]
}
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,83 @@
{
"gate": "G4",
"checker": "g4_ramp.py",
"verdict": "PASS",
"summary": {
"total": 126,
"passed": 126,
"failed": 0,
"cover": {
"C1": 40.3,
"C2": 40.8,
"C4": 40.7,
"C5": 42.9,
"C3": 40.7,
"C6": 40.4,
"S3": 222.5,
"S4": 247.5,
"C7": 68.0,
"C8": 68.0,
"C9": 68.0,
"C10": 68.0,
"C11": 68.0,
"C12": 53.7,
"C13": 90.4,
"C14": 46.9,
"C15": 87.0,
"C16": 90.5,
"S1": 1.6,
"S2": 41.1
}
},
"unplanned_fails": [],
"planned_fails": [],
"negative": {
"negH": {
"move": {
"mark": "C1",
"d": [
0,
5,
0
]
},
"new_fails": [
"C1 y rows (worst, 9/9)"
],
"detected": true
},
"negV": {
"move": {
"mark": "C7",
"d": [
0,
0,
5
]
},
"new_fails": [
"C7 top cover 77.5 (worst)",
"C7 bottom cover 77.5 to the soffit (worst)"
],
"detected": true
}
},
"reload": {
"ok": null,
"skipped": "일괄 실행(단일 세션) — 저장·재로드 안 함"
},
"unchanged": {
"ok": null,
"compared": 0,
"diffs": [],
"missing": [],
"against": null,
"skipped": "일괄 실행(단일 세션) — 앞 게이트 객체를 다시 만들지 않음"
},
"model": null,
"mode": "batch",
"secs": 62.0,
"session_secs": 126.1,
"inputs_sha": "c55f791089aa00a4",
"job_id": "095a143ee855"
}
@@ -0,0 +1,15 @@
{
"id": "095a143ee855",
"pid": 14152,
"state": "완료",
"at": "2026-10-16 16:32:31",
"log": [
"[batch] one Rhino session: build G1..G5, check G1, G2, G3, G4, G5 (no per-gate save / reload)",
"[G1] PASS checks 97/97 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G2] PASS checks 26/26 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G3] PASS checks 48/48 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G4] PASS checks 126/126 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G5] PASS checks 39/39 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[batch] done in 126.3s, objects 2255, model C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\Ramp-A교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,345 @@
{
"summary": {
"total": 39,
"passed": 39,
"failed": 0
},
"results": [
{
"check": "C11",
"item": "bearing count",
"expected": 2,
"actual": 2,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C11",
"item": "sole plate count",
"expected": 2,
"actual": 2,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C11",
"item": "all 4 closed solids",
"detail": "",
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 bearing bottom = EL.'X'",
"expected": 60112,
"actual": 60112.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 bearing height h3",
"expected": 190,
"actual": 190.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 bearing across (B)",
"expected": 800,
"actual": 800.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 bearing along (A)",
"expected": 900,
"actual": 900.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 sole plate across W",
"expected": 900,
"actual": 900.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 sole plate along L",
"expected": 1000,
"actual": 1000.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 sole plate bottom = bearing top",
"expected": 60302.0,
"actual": 60302.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 bearing plan centre offset from pad (mm)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 sole plate plan centre offset from pad (mm)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 bearing axis vs pad (deg)",
"expected": -5.55,
"actual": -5.55,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 sole plate axis vs pad (deg)",
"expected": -5.55,
"actual": -5.55,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 sole plate slope S (%) along +Y-ward axis",
"expected": -5.526,
"actual": -5.526,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 sole plate centre thickness T",
"expected": 50,
"actual": 50.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 thick end at -Y",
"detail": "",
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 no transverse slope",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 overlap bearing-pad (mm3)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 overlap bearing-sole plate (mm3)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 colours (bearing (0, 0, 0), sole plate (150, 150, 150))",
"detail": "",
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 bearing bottom = EL.'X'",
"expected": 60427,
"actual": 60427.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 bearing height h3",
"expected": 190,
"actual": 190.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 bearing across (B)",
"expected": 800,
"actual": 800.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 bearing along (A)",
"expected": 900,
"actual": 900.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 sole plate across W",
"expected": 900,
"actual": 900.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 sole plate along L",
"expected": 1000,
"actual": 1000.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 sole plate bottom = bearing top",
"expected": 60617.0,
"actual": 60617.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 bearing plan centre offset from pad (mm)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 sole plate plan centre offset from pad (mm)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 bearing axis vs pad (deg)",
"expected": -9.194,
"actual": -9.194,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 sole plate axis vs pad (deg)",
"expected": -9.194,
"actual": -9.194,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 sole plate slope S (%) along +Y-ward axis",
"expected": -5.526,
"actual": -5.526,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 sole plate centre thickness T",
"expected": 50,
"actual": 50.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 thick end at -Y",
"detail": "",
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 no transverse slope",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 overlap bearing-pad (mm3)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 overlap bearing-sole plate (mm3)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 colours (bearing (0, 0, 0), sole plate (150, 150, 150))",
"detail": "",
"result": "PASS"
}
]
}
@@ -0,0 +1,60 @@
{
"gate": "G5",
"checker": "g5_bearings.py",
"verdict": "PASS",
"summary": {
"total": 39,
"passed": 39,
"failed": 0
},
"unplanned_fails": [],
"planned_fails": [],
"negative": {
"negH": {
"move": {
"id": "BB02",
"d": [
5,
0,
0
]
},
"new_fails": [
"NO.2 bearing plan centre offset from pad (mm)"
],
"detected": true
},
"negV": {
"move": {
"id": "SP01",
"d": [
0,
0,
5
]
},
"new_fails": [
"NO.1 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\\Ramp-A교P1\\runs\\current\\G5.3dm",
"mode": "batch",
"secs": 0.3,
"session_secs": 126.1,
"inputs_sha": "c55f791089aa00a4",
"job_id": "095a143ee855"
}
@@ -0,0 +1,15 @@
{
"id": "095a143ee855",
"pid": 14152,
"state": "완료",
"at": "2026-10-16 16:32:31",
"log": [
"[batch] one Rhino session: build G1..G5, check G1, G2, G3, G4, G5 (no per-gate save / reload)",
"[G1] PASS checks 97/97 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G2] PASS checks 26/26 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G3] PASS checks 48/48 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G4] PASS checks 126/126 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G5] PASS checks 39/39 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[batch] done in 126.3s, objects 2255, model C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\Ramp-A교P1\\runs\\current\\G5.3dm"
]
}
@@ -0,0 +1,345 @@
{
"summary": {
"total": 39,
"passed": 38,
"failed": 1
},
"results": [
{
"check": "C11",
"item": "bearing count",
"expected": 2,
"actual": 2,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C11",
"item": "sole plate count",
"expected": 2,
"actual": 2,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C11",
"item": "all 4 closed solids",
"detail": "",
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 bearing bottom = EL.'X'",
"expected": 60112,
"actual": 60112.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 bearing height h3",
"expected": 190,
"actual": 190.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 bearing across (B)",
"expected": 800,
"actual": 800.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 bearing along (A)",
"expected": 900,
"actual": 900.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 sole plate across W",
"expected": 900,
"actual": 900.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 sole plate along L",
"expected": 1000,
"actual": 1000.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 sole plate bottom = bearing top",
"expected": 60302.0,
"actual": 60302.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 bearing plan centre offset from pad (mm)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 sole plate plan centre offset from pad (mm)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 bearing axis vs pad (deg)",
"expected": -5.55,
"actual": -5.55,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 sole plate axis vs pad (deg)",
"expected": -5.55,
"actual": -5.55,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 sole plate slope S (%) along +Y-ward axis",
"expected": -5.526,
"actual": -5.526,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 sole plate centre thickness T",
"expected": 50,
"actual": 50.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 thick end at -Y",
"detail": "",
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 no transverse slope",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 overlap bearing-pad (mm3)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 overlap bearing-sole plate (mm3)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 colours (bearing (0, 0, 0), sole plate (150, 150, 150))",
"detail": "",
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 bearing bottom = EL.'X'",
"expected": 60427,
"actual": 60427.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 bearing height h3",
"expected": 190,
"actual": 190.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 bearing across (B)",
"expected": 800,
"actual": 800.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 bearing along (A)",
"expected": 900,
"actual": 900.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 sole plate across W",
"expected": 900,
"actual": 900.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 sole plate along L",
"expected": 1000,
"actual": 1000.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 sole plate bottom = bearing top",
"expected": 60617.0,
"actual": 60617.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 bearing plan centre offset from pad (mm)",
"expected": 0,
"actual": 5.0,
"diff": 5.0,
"tol": 1.0,
"result": "FAIL"
},
{
"check": "C11",
"item": "NO.2 sole plate plan centre offset from pad (mm)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 bearing axis vs pad (deg)",
"expected": -9.194,
"actual": -9.194,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 sole plate axis vs pad (deg)",
"expected": -9.194,
"actual": -9.194,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 sole plate slope S (%) along +Y-ward axis",
"expected": -5.526,
"actual": -5.526,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 sole plate centre thickness T",
"expected": 50,
"actual": 50.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 thick end at -Y",
"detail": "",
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 no transverse slope",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 overlap bearing-pad (mm3)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 overlap bearing-sole plate (mm3)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 colours (bearing (0, 0, 0), sole plate (150, 150, 150))",
"detail": "",
"result": "PASS"
}
]
}
@@ -0,0 +1,345 @@
{
"summary": {
"total": 39,
"passed": 38,
"failed": 1
},
"results": [
{
"check": "C11",
"item": "bearing count",
"expected": 2,
"actual": 2,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C11",
"item": "sole plate count",
"expected": 2,
"actual": 2,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C11",
"item": "all 4 closed solids",
"detail": "",
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 bearing bottom = EL.'X'",
"expected": 60112,
"actual": 60112.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 bearing height h3",
"expected": 190,
"actual": 190.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 bearing across (B)",
"expected": 800,
"actual": 800.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 bearing along (A)",
"expected": 900,
"actual": 900.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 sole plate across W",
"expected": 900,
"actual": 900.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 sole plate along L",
"expected": 1000,
"actual": 1000.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 sole plate bottom = bearing top",
"expected": 60302.0,
"actual": 60307.0,
"diff": 5.0,
"tol": 0.01,
"result": "FAIL"
},
{
"check": "C11",
"item": "NO.1 bearing plan centre offset from pad (mm)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 sole plate plan centre offset from pad (mm)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 bearing axis vs pad (deg)",
"expected": -5.55,
"actual": -5.55,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 sole plate axis vs pad (deg)",
"expected": -5.55,
"actual": -5.55,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 sole plate slope S (%) along +Y-ward axis",
"expected": -5.526,
"actual": -5.526,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 sole plate centre thickness T",
"expected": 50,
"actual": 50.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 thick end at -Y",
"detail": "",
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 no transverse slope",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 overlap bearing-pad (mm3)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 overlap bearing-sole plate (mm3)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.1 colours (bearing (0, 0, 0), sole plate (150, 150, 150))",
"detail": "",
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 bearing bottom = EL.'X'",
"expected": 60427,
"actual": 60427.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 bearing height h3",
"expected": 190,
"actual": 190.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 bearing across (B)",
"expected": 800,
"actual": 800.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 bearing along (A)",
"expected": 900,
"actual": 900.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 sole plate across W",
"expected": 900,
"actual": 900.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 sole plate along L",
"expected": 1000,
"actual": 1000.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 sole plate bottom = bearing top",
"expected": 60617.0,
"actual": 60617.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 bearing plan centre offset from pad (mm)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 sole plate plan centre offset from pad (mm)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 bearing axis vs pad (deg)",
"expected": -9.194,
"actual": -9.194,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 sole plate axis vs pad (deg)",
"expected": -9.194,
"actual": -9.194,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 sole plate slope S (%) along +Y-ward axis",
"expected": -5.526,
"actual": -5.526,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 sole plate centre thickness T",
"expected": 50,
"actual": 50.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 thick end at -Y",
"detail": "",
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 no transverse slope",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 overlap bearing-pad (mm3)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 overlap bearing-sole plate (mm3)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C11",
"item": "NO.2 colours (bearing (0, 0, 0), sole plate (150, 150, 150))",
"detail": "",
"result": "PASS"
}
]
}
@@ -0,0 +1,37 @@
{
"G1": {
"decision": "승인",
"by": "심영표",
"note": "일괄 실행 자동 승인",
"at": "2026-10-16 16:32:31",
"inputs_sha": "c55f791089aa00a4"
},
"G2": {
"decision": "승인",
"by": "심영표",
"note": "일괄 실행 자동 승인",
"at": "2026-10-16 16:32:31",
"inputs_sha": "c55f791089aa00a4"
},
"G3": {
"decision": "승인",
"by": "심영표",
"note": "일괄 실행 자동 승인",
"at": "2026-10-16 16:32:31",
"inputs_sha": "c55f791089aa00a4"
},
"G4": {
"decision": "승인",
"by": "심영표",
"note": "일괄 실행 자동 승인",
"at": "2026-10-16 16:32:31",
"inputs_sha": "c55f791089aa00a4"
},
"G5": {
"decision": "승인",
"by": "심영표",
"note": "일괄 실행 자동 승인",
"at": "2026-10-16 16:32:31",
"inputs_sha": "c55f791089aa00a4"
}
}
@@ -0,0 +1,21 @@
{
"state": "완료",
"by": "심영표",
"pid": 14152,
"at": "2026-10-16 16:32:31",
"log": [
"G1~G5 단일 세션 실행 (게이트 검사·음성 시험만, 중간 저장·재로드 없음)",
"[batch] one Rhino session: build G1..G5, check G1, G2, G3, G4, G5 (no per-gate save / reload)",
"[G1] PASS checks 97/97 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G2] PASS checks 26/26 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G3] PASS checks 48/48 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G4] PASS checks 126/126 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G5] PASS checks 39/39 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[batch] done in 126.3s, objects 2255, model C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\Ramp-A교P1\\runs\\current\\G5.3dm",
"G1 PASS 97/97 (계획 FAIL 0) → 승인",
"G2 PASS 26/26 (계획 FAIL 0) → 승인",
"G3 PASS 48/48 (계획 FAIL 0) → 승인",
"G4 PASS 126/126 (계획 FAIL 0) → 승인",
"G5 PASS 39/39 (계획 FAIL 0) → 승인"
]
}
@@ -0,0 +1,11 @@
{
"chapters_missing": [],
"vocab_bad": [],
"finding_rows": 0,
"finding_rows_without_source": 0,
"schedule_rows": 1,
"schedule_marks": 1,
"gate_rows": 5,
"schedule_unread": false,
"ok": true
}
@@ -0,0 +1,115 @@
# Ramp-A교P1 교각 모델링 검토보고서 (초안)
> 앱이 게이트 결과·도면 표·승인 기록으로 자동 작성한 **초안**입니다. '오류'·'불일치' 판정과 3~5장의 서술은 담당자가 확인·확정해야 합니다. 작성일 2026-10-14 · 작성 심영표.
## 1. 개요
- 교각: Ramp-A교P1 (T형) · 좌표: 로컬(교각 중심 원점, X 교축직각, Y 교축, Z = EL×1000, mm) · 산출: .3dm
- 게이트 진행: 5/5 실행, **전 게이트 PASS·승인**
### 1.1 입력 도면
| 구분 | DWG | SHA-256(앞 16자) |
| :--- | :--- | :--- |
| D1 | Ramp-A교 P1 교각(1).dwg | 8a7d7d1baac8a882 |
| D2 | Ramp-A교 P1 교각(2).dwg | 0549a0f9165f5105 |
| D3 | Ramp-A교 P1 교각(3).dwg | 7e28c5f9919ef054 |
| D4 | Ramp-A교 P1 교각(4).dwg | 0919ec2f363c6849 |
### 1.2 게이트 결과
| 게이트 | 내용 | 판정 | 검사 PASS | 승인 | 의견 |
| :--- | :--- | :--- | :--- | :--- | :--- |
| G1 | 형상(콘크리트·말뚝·받침대좌·패드) | PASS | 97/97 | 승인 심영표 2026-10-14 11:17:44 | 일괄 실행 자동 승인 |
| G2 | 기둥 철근 | PASS | 26/26 | 승인 심영표 2026-10-14 11:17:44 | 일괄 실행 자동 승인 |
| G3 | 확대기초 철근 | PASS | 48/48 | 승인 심영표 2026-10-14 11:17:44 | 일괄 실행 자동 승인 |
| G4 | 코핑 철근 | PASS | 126/126 | 승인 심영표 2026-10-14 11:17:44 | 일괄 실행 자동 승인 |
| G5 | 교량받침·솔플레이트 | PASS | 39/39 | 승인 심영표 2026-10-14 11:17:44 | 일괄 실행 자동 승인 |
## 2. 도면 오류·불일치
자동 등재 기준: 승인된 계획 FAIL → '불일치', 계획되지 않은 FAIL과 도면 표 값·입력값 차이 → '확인 필요'.
자동으로 찾은 항목이 없습니다.
## 3. 개선방안
[담당자 작성] 2장 항목별로 도면 수정·설계자 확인 방안을 적습니다.
## 4. 추가되어야 할 사항
[담당자 작성] 도면에 없어 추정·가정으로 모델링한 사항(입력 묶음의 `[추론]` 표기)을 정리합니다.
- 자동 확인: `[추론]` 표기가 있는 입력 묶음 — column_rebar, coping_rebar, materials, shaft_rebar, sole_plates
## 5. 누락사항
[담당자 작성] 도면에서 빠진 치수·표·상세를 적습니다.
## 6. 철근재료표 (원본 vs 모델)
원본 = 도면 재료표 판독값(동일 기호 " 해석 포함), 모델 = 게이트 검사의 본수 실측값.
| 마크 | 형식 | 직경 | 재료표 수량 | 재료표 L(mm) | 모델 본수 | 대조 | 근거 |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| P1 | - | H35 | 54 | 16300 | 54 | 일치 | D4 철근재료표 (SD400) P1 |
## 7. 철근상세 (기록)
원길이·곡선길이·피복은 판정이 아닌 기록 값입니다(요구사항 §6.2).
### 7.1 기둥 (G2)
| 항목 | 값 |
| :--- | :--- |
| P1 curve length (+coupler) - L (record) | min 0.0 / max 0.0 mm |
| P2 curve length (+coupler) - L (record) | min -254.2 / max -254.2 mm |
| P3 curve length (+coupler) - L (record) | min -161.6 / max -161.6 mm |
| concrete union for cover | 0 brep from 4 solids -> min cover = column side cover in the column zone (R - radial distance - bar radius) |
| min cover to concrete surface per mark (record) | {"P1": 107.5, "P2": 91.0, "P3": 76.0} |
### 7.2 확대기초 (G3)
| 항목 | 값 |
| :--- | :--- |
| P1-1 curve length (+coupler) - L (record) | min 0.0 / max 0.0 mm |
| P1-2 curve length (+coupler) - L (record) | min 0.0 / max 0.0 mm |
| P2-1 curve length (+coupler) - L (record) | min -254.4 / max -254.4 mm |
| P3-1 curve length (+coupler) - L (record) | min -234.6 / max -234.6 mm |
| P3-2 curve length (+coupler) - L (record) | min -65.7 / max -65.7 mm |
| plate bottom cover (record) | 88.0 mm |
| min cover per mark (side or bottom, record) | {"P1-1": 158.0, "P1-2": 164.5, "P2-1": 142.0, "P3-1": 98.5, "P3-2": 92.0} |
### 7.3 코핑 (G4)
| 항목 | 값 |
| :--- | :--- |
| C7 mean original length vs L (variable mark, record) | mean 7213.4 / L 7480 (diff -266.6); min 6114 max 8867 |
| C8 mean original length vs L (variable mark, record) | mean 5129.0 / L 6071 (diff -942.0); min 4065 max 6729 |
| C9 mean original length vs L (variable mark, record) | mean 9230.0 / L 9251 (diff -21.0); min 8936 max 9566 |
| C10 mean original length vs L (variable mark, record) | mean 7090.1 / L 7426 (diff -335.9); min 6796 max 7426 |
| C11 mean original length vs L (variable mark, record) | mean 7843.4 / L 8110 (diff -266.6); min 6744 max 9497 |
| C12 mean original length vs L (variable mark, record) | mean 5759.0 / L 5333 (diff +426.0); min 4695 max 7359 |
| C13 mean original length vs L (variable mark, record) | mean 10809.8 / L 11309 (diff -499.2); min 6111 max 16380 |
| C14 mean original length vs L (variable mark, record) | mean 18130.5 / L 18057 (diff +73.5); min 16338 max 19649 |
| min cover to the coping surface per mark (record; seat bars measured to the coping only) | {"C1": 40.3, "C2": 40.8, "C4": 40.7, "C5": 42.9, "C3": 40.7, "C6": 40.4, "S3": 222.5, "S4": 247.5, "C7": 68.0, "C8": 68.0, "C9": 68.0, "C10": 68.0, "C11": 68.0, "C12": 53.7, "C13": 90.4, "C14": 46.9, "C15": 87.0, "C16": 90.5, "S1": 1.6, "S2": 41.1} |
## 8. 검증 방법
- 검사기는 생성 입력(params)이 아니라 도면 문자·표에서 옮긴 독립 기대값(expected)만 읽습니다.
- 게이트마다 G1부터 새로 생성 → 저장 파일을 다시 열어 검사(재로드) → 객체를 수평·수직으로 옮겨 FAIL이 나는지 확인(음성 시험) → 앞 게이트 객체 지문 비교.
- 일괄 실행(단일 Rhino 세션)으로 검사한 게이트는 중간 저장·재로드와 앞 게이트 비교를 하지 않으며, 표에 '생략(일괄 실행)'으로 적습니다. 모델은 마지막 G5만 저장합니다.
| 게이트 | 재로드 | 음성 시험 | 앞 게이트 객체 |
| :--- | :--- | :--- | :--- |
| G1 | 생략(일괄 실행) | 수평 검출 / 수직 검출 | 생략(일괄 실행) |
| G2 | 생략(일괄 실행) | 수평 검출 / 수직 검출 | 생략(일괄 실행) |
| G3 | 생략(일괄 실행) | 수평 검출 / 수직 검출 | 생략(일괄 실행) |
| G4 | 생략(일괄 실행) | 수평 검출 / 수직 검출 | 생략(일괄 실행) |
| G5 | 생략(일괄 실행) | 수평 검출 / 수직 검출 | 생략(일괄 실행) |
## 변경 이력
| 버전 | 일자 | 내용 |
| :--- | :--- | :--- |
| v0.1.00 | 2026-10-14 | 앱 자동 생성 초안 |
@@ -0,0 +1,149 @@
# Ramp-A교P1 교각 모델링 검토보고서 (초안)
> 앱이 게이트 결과·도면 표·승인 기록으로 자동 작성한 **초안**입니다. '오류'·'불일치' 판정과 3~5장의 서술은 담당자가 확인·확정해야 합니다. 작성일 2026-10-19.
## 1. 개요
- 교각: Ramp-A교P1 (T형) · 좌표: 로컬(교각 중심 원점, X 교축직각, Y 교축, Z = EL×1000, mm) · 산출: .3dm
- 게이트 진행: 5/5 실행, **전 게이트 PASS·승인**
### 1.1 입력 도면
| 구분 | DWG | SHA-256(앞 16자) |
| :--- | :--- | :--- |
| D1 | Ramp-A교 P1 교각(1).dwg | 8a7d7d1baac8a882 |
| D2 | Ramp-A교 P1 교각(2).dwg | 0549a0f9165f5105 |
| D3 | Ramp-A교 P1 교각(3).dwg | 7e28c5f9919ef054 |
| D4 | Ramp-A교 P1 교각(4).dwg | 0919ec2f363c6849 |
### 1.2 게이트 결과
| 게이트 | 내용 | 판정 | 검사 PASS | 승인 | 의견 |
| :--- | :--- | :--- | :--- | :--- | :--- |
| G1 | 형상(콘크리트·말뚝·받침대좌·패드) | PASS | 97/97 | 승인 심영표 2026-10-16 16:32:31 | 일괄 실행 자동 승인 |
| G2 | 기둥 철근 | PASS | 26/26 | 승인 심영표 2026-10-16 16:32:31 | 일괄 실행 자동 승인 |
| G3 | 확대기초 철근 | PASS | 48/48 | 승인 심영표 2026-10-16 16:32:31 | 일괄 실행 자동 승인 |
| G4 | 코핑 철근 | PASS | 126/126 | 승인 심영표 2026-10-16 16:32:31 | 일괄 실행 자동 승인 |
| G5 | 교량받침·솔플레이트 | PASS | 39/39 | 승인 심영표 2026-10-16 16:32:31 | 일괄 실행 자동 승인 |
## 2. 도면 오류·불일치
자동 등재 기준: 승인된 계획 FAIL → '불일치', 계획되지 않은 FAIL과 도면 표 값·입력값 차이 → '확인 필요'.
자동으로 찾은 항목이 없습니다.
## 3. 개선방안
[담당자 작성] 2장 항목별로 도면 수정·설계자 확인 방안을 적습니다.
## 4. 추가되어야 할 사항
[담당자 작성] 도면에 없어 추정·가정으로 모델링한 사항(입력 묶음의 `[추론]` 표기)을 정리합니다.
- 자동 확인: `[추론]` 표기가 있는 입력 묶음 — column_rebar, coping_rebar, materials, shaft_rebar, sole_plates
## 5. 누락사항
[담당자 작성] 도면에서 빠진 치수·표·상세를 적습니다.
## 6. 철근재료표 (원본 vs 모델)
원본 = 도면 재료표 판독값(동일 기호 " 해석 포함), 모델 = 게이트 검사의 본수 실측값.
| 마크 | 형식 | 직경 | 재료표 수량 | 재료표 L(mm) | 모델 본수 | 대조 | 근거 |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| P1 | - | H35 | 54 | 16300 | 54 | 일치 | D4 철근재료표 (SD400) P1 |
## 7. 철근상세 (기록)
원길이·곡선길이·피복은 판정이 아닌 기록 값입니다(요구사항 §6.2).
### 7.1 기둥 (G2)
| 항목 | 값 |
| :--- | :--- |
| P1 curve length (+coupler) - L (record) | min 0.0 / max 0.0 mm |
| P2 curve length (+coupler) - L (record) | min -254.2 / max -254.2 mm |
| P3 curve length (+coupler) - L (record) | min -161.6 / max -161.6 mm |
| concrete union for cover | 0 brep from 4 solids -> min cover = column side cover in the column zone (R - radial distance - bar radius) |
| min cover to concrete surface per mark (record) | {"P1": 107.5, "P2": 91.0, "P3": 76.0} |
### 7.2 확대기초 (G3)
| 항목 | 값 |
| :--- | :--- |
| P1-1 curve length (+coupler) - L (record) | min 0.0 / max 0.0 mm |
| P1-2 curve length (+coupler) - L (record) | min 0.0 / max 0.0 mm |
| P2-1 curve length (+coupler) - L (record) | min -254.4 / max -254.4 mm |
| P3-1 curve length (+coupler) - L (record) | min -234.6 / max -234.6 mm |
| P3-2 curve length (+coupler) - L (record) | min -65.7 / max -65.7 mm |
| plate bottom cover (record) | 88.0 mm |
| min cover per mark (side or bottom, record) | {"P1-1": 158.0, "P1-2": 164.5, "P2-1": 142.0, "P3-1": 98.5, "P3-2": 92.0} |
### 7.3 코핑 (G4)
| 항목 | 값 |
| :--- | :--- |
| C7 mean original length vs L (variable mark, record) | mean 7213.4 / L 7480 (diff -266.6); min 6114 max 8867 |
| C8 mean original length vs L (variable mark, record) | mean 5129.0 / L 6071 (diff -942.0); min 4065 max 6729 |
| C9 mean original length vs L (variable mark, record) | mean 9230.0 / L 9251 (diff -21.0); min 8936 max 9566 |
| C10 mean original length vs L (variable mark, record) | mean 7090.1 / L 7426 (diff -335.9); min 6796 max 7426 |
| C11 mean original length vs L (variable mark, record) | mean 7843.4 / L 8110 (diff -266.6); min 6744 max 9497 |
| C12 mean original length vs L (variable mark, record) | mean 5759.0 / L 5333 (diff +426.0); min 4695 max 7359 |
| C13 mean original length vs L (variable mark, record) | mean 10809.8 / L 11309 (diff -499.2); min 6111 max 16380 |
| C14 mean original length vs L (variable mark, record) | mean 18130.5 / L 18057 (diff +73.5); min 16338 max 19649 |
| min cover to the coping surface per mark (record; seat bars measured to the coping only) | {"C1": 40.3, "C2": 40.8, "C4": 40.7, "C5": 42.9, "C3": 40.7, "C6": 40.4, "S3": 222.5, "S4": 247.5, "C7": 68.0, "C8": 68.0, "C9": 68.0, "C10": 68.0, "C11": 68.0, "C12": 53.7, "C13": 90.4, "C14": 46.9, "C15": 87.0, "C16": 90.5, "S1": 1.6, "S2": 41.1} |
## 8. 검증 방법
- 검사기는 생성 입력(params)이 아니라 도면 문자·표에서 옮긴 독립 기대값(expected)만 읽습니다.
- 게이트마다 G1부터 새로 생성 → 저장 파일을 다시 열어 검사(재로드) → 객체를 수평·수직으로 옮겨 FAIL이 나는지 확인(음성 시험) → 앞 게이트 객체 지문 비교.
- 일괄 실행(단일 Rhino 세션)으로 검사한 게이트는 중간 저장·재로드와 앞 게이트 비교를 하지 않으며, 표에 '생략(일괄 실행)'으로 적습니다. 모델은 마지막 G5만 저장합니다.
| 게이트 | 재로드 | 음성 시험 | 앞 게이트 객체 |
| :--- | :--- | :--- | :--- |
| G1 | 생략(일괄 실행) | 수평 검출 / 수직 검출 | 생략(일괄 실행) |
| G2 | 생략(일괄 실행) | 수평 검출 / 수직 검출 | 생략(일괄 실행) |
| G3 | 생략(일괄 실행) | 수평 검출 / 수직 검출 | 생략(일괄 실행) |
| G4 | 생략(일괄 실행) | 수평 검출 / 수직 검출 | 생략(일괄 실행) |
| G5 | 생략(일괄 실행) | 수평 검출 / 수직 검출 | 생략(일괄 실행) |
### 8.1 입력 묶음 앱 확인 결과 요약
- 앱 확인(검사 버전 B1, 2026-10-19 09:30:23): 일치 11 · 주의 2 · 불일치 0 · 근거 없음 9 · 해당 없음 8 (전체 묶음 30개).
- 앱 확인은 도면 표·재료표 수량·고정 항목을 앱이 대조한 결과입니다. '일치'는 독립 근거와 값이 같다는 뜻이며 도면이 맞다는 보증이 아닙니다. 확정은 사람이 했고, 앱 확인이 일치가 아닌 묶음은 사유가 기록되어 있습니다.
| 묶음 | 앱 확인 | 근거 | 사람 확정 |
| :--- | :--- | :--- | :--- |
| expected:G1 | 일치 | C2 표 후보 2건이 현재 값과 모두 같다 | 심영표 2026-10-13 17:36:18 |
| expected:G2 | 일치 | C2 표 후보 2건이 현재 값과 모두 같다 | 심영표 2026-10-14 11:15:33 |
| expected:G5 | 일치 | C2 표 후보 12건이 현재 값과 모두 같다 | 심영표 2026-10-13 17:36:18 |
| expected:checkers | 일치 | C7 템플릿 복사 기록은 없지만 보호 템플릿 1종(Ramp-A교P1형)과 같은 값이다 | 심영표 2026-10-14 11:15:33 |
| expected:negative | 일치 | C7 템플릿 복사 기록은 없지만 보호 템플릿 1종(Ramp-A교P1형)과 같은 값이다 | 심영표 2026-10-14 11:15:33 |
| params:bearing_seats | 일치 | C2 표 후보 10건이 현재 값과 모두 같다 | 심영표 2026-10-13 17:36:18 |
| params:builders | 일치 | C7 템플릿 복사 기록은 없지만 보호 템플릿 1종(Ramp-A교P1형)과 같은 값이다 | 심영표 2026-10-14 11:15:33 |
| params:display | 일치 | C7 템플릿 복사 기록은 없지만 보호 템플릿 1종(Ramp-A교P1형)과 같은 값이다 | 심영표 2026-10-14 11:15:33 |
| params:rebar_marks | 일치 | C2 표 후보 1건이 현재 값과 모두 같다 | 심영표 2026-10-14 11:15:33 |
| params:scope | 일치 | C7 템플릿 복사 기록은 없지만 보호 템플릿 5종(Ramp-A교P1형, 산외교울산P1형, 산외교울산P2형)과 같은 값이다 | 심영표 2026-10-14 11:15:33 |
| params:sole_plates | 일치 | C2 표 후보 9건이 현재 값과 모두 같다 | 심영표 2026-10-13 17:36:18 |
| expected:G4 | 주의 | C4 생성 목록 수량 20건이 재료표 수량과 같다 (위치·좌표는 확인하지 않음) — 수량만 확인, 위치·좌표는 도면과 직접 대조 | 심영표 2026-10-14 11:15:33 |
| params:coping_rebar | 주의 | C4 생성 목록 수량 20건이 재료표 수량과 같다 (위치·좌표는 확인하지 않음) — 수량만 확인, 위치·좌표는 도면과 직접 대조 | 심영표 2026-10-14 11:15:33 |
| expected:G3 | 근거 없음 | 앱이 독립적으로 대조할 근거가 없다 — 도면과 직접 대조한 뒤 사유와 함께 확정 | 심영표 2026-10-14 11:15:33 |
| expected:pier_id | 근거 없음 | 앱이 독립적으로 대조할 근거가 없다 — 도면과 직접 대조한 뒤 사유와 함께 확정 | 심영표 2026-10-13 17:36:18 |
| params:column | 근거 없음 | 앱이 독립적으로 대조할 근거가 없다 — 도면과 직접 대조한 뒤 사유와 함께 확정 | 심영표 2026-10-13 17:36:18 |
| params:column_rebar | 근거 없음 | 앱이 독립적으로 대조할 근거가 없다 — 도면과 직접 대조한 뒤 사유와 함께 확정 | 심영표 2026-10-14 11:15:33 |
| params:coping | 근거 없음 | 앱이 독립적으로 대조할 근거가 없다 — 도면과 직접 대조한 뒤 사유와 함께 확정 | 심영표 2026-10-13 17:36:18 |
| params:materials | 근거 없음 | 앱이 독립적으로 대조할 근거가 없다 — 도면과 직접 대조한 뒤 사유와 함께 확정 | 심영표 2026-10-13 17:36:18 |
| params:pier_id | 근거 없음 | 앱이 독립적으로 대조할 근거가 없다 — 도면과 직접 대조한 뒤 사유와 함께 확정 | 심영표 2026-10-13 17:36:18 |
| params:pile | 근거 없음 | 앱이 독립적으로 대조할 근거가 없다 — 도면과 직접 대조한 뒤 사유와 함께 확정 | 심영표 2026-10-14 11:15:33 |
| params:shaft_rebar | 근거 없음 | 앱이 독립적으로 대조할 근거가 없다 — 도면과 직접 대조한 뒤 사유와 함께 확정 | 심영표 2026-10-14 11:15:33 |
| expected:planned_fail | 해당 없음 | 사람 결정 기록 또는 참고 정보 — 앱이 도면과 대조하지 않는다 | 심영표 2026-10-13 17:36:18 |
| expected:rebar_palette | 해당 없음 | 사람 결정 기록 또는 참고 정보 — 앱이 도면과 대조하지 않는다 | 심영표 2026-10-14 11:15:33 |
| expected:tol_mm | 해당 없음 | 사람 결정 기록 또는 참고 정보 — 앱이 도면과 대조하지 않는다 | 심영표 2026-10-13 17:36:18 |
| params:rebar_marks_src | 해당 없음 | 참고 정보 | 미확정 |
## 변경 이력
| 버전 | 일자 | 내용 |
| :--- | :--- | :--- |
| v0.1.00 | 2026-10-19 | 앱 자동 생성 초안 |