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

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

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

No files matched your search

File diff suppressed because it is too large. Load diff
@@ -0,0 +1,127 @@
{
"params:pier_id": {
"sha": "97086571f822df69",
"by": "심영표",
"at": "2026-10-13 17:36:18"
},
"params:rebar_marks": {
"sha": "5511200efe83567e",
"by": "심영표",
"at": "2026-10-14 11:15:33"
},
"params:display": {
"sha": "ed6e3d6db9886a7f",
"by": "심영표",
"at": "2026-10-14 11:15:33"
},
"expected:pier_id": {
"sha": "97086571f822df69",
"by": "심영표",
"at": "2026-10-13 17:36:18"
},
"expected:tol_mm": {
"sha": "d0ff5974b6aa52cf",
"by": "심영표",
"at": "2026-10-13 17:36:18"
},
"expected:rebar_palette": {
"sha": "13a759cbc99a6e3a",
"by": "심영표",
"at": "2026-10-14 11:15:33"
},
"expected:planned_fail": {
"sha": "4f53cda18c2baa0c",
"by": "심영표",
"at": "2026-10-13 17:36:18"
},
"params:scope": {
"sha": "dfbd41ca7117a548",
"by": "심영표",
"at": "2026-10-14 11:15:33"
},
"params:builders": {
"sha": "00fd8d9f3cdbd790",
"by": "심영표",
"at": "2026-10-14 11:15:33"
},
"expected:checkers": {
"sha": "35fdf2c31f8a5959",
"by": "심영표",
"at": "2026-10-14 11:15:33"
},
"expected:negative": {
"sha": "696e353bea495c4d",
"by": "심영표",
"at": "2026-10-14 11:15:33"
},
"params:column": {
"sha": "2db94da680613655",
"by": "심영표",
"at": "2026-10-13 17:36:18"
},
"params:coping": {
"sha": "805a9b39318ba96f",
"by": "심영표",
"at": "2026-10-13 17:36:18"
},
"params:bearing_seats": {
"sha": "9654c819dccfe909",
"by": "심영표",
"at": "2026-10-13 17:36:18"
},
"params:materials": {
"sha": "267064c003cf6ab0",
"by": "심영표",
"at": "2026-10-13 17:36:18"
},
"expected:G1": {
"sha": "351b291035925850",
"by": "심영표",
"at": "2026-10-13 17:36:18"
},
"params:sole_plates": {
"sha": "8adb137a91e64bae",
"by": "심영표",
"at": "2026-10-13 17:36:18"
},
"expected:G5": {
"sha": "7ab15ed85486cd57",
"by": "심영표",
"at": "2026-10-13 17:36:18"
},
"params:pile": {
"sha": "5449abdc7802cec2",
"by": "심영표",
"at": "2026-10-14 11:15:33"
},
"params:column_rebar": {
"sha": "aeced0ccf740ccca",
"by": "심영표",
"at": "2026-10-14 11:15:33"
},
"expected:G2": {
"sha": "4f80641f63e41162",
"by": "심영표",
"at": "2026-10-14 11:15:33"
},
"params:shaft_rebar": {
"sha": "5757a201f9dd1c72",
"by": "심영표",
"at": "2026-10-14 11:15:33"
},
"expected:G3": {
"sha": "5ae159be16b733b6",
"by": "심영표",
"at": "2026-10-14 11:15:33"
},
"params:coping_rebar": {
"sha": "3f732dbb0df4ccb8",
"by": "심영표",
"at": "2026-10-14 11:15:33"
},
"expected:G4": {
"sha": "ad2688635b87a513",
"by": "심영표",
"at": "2026-10-14 11:15:33"
}
}
@@ -0,0 +1,34 @@
[
{
"source": "Ramp-A교 P1 교각(1).dwg",
"source_sha256": "8a7d7d1baac8a882130389776ff4d2c41c1c91306642be907a31bdb599adc479",
"dxf": "Ramp-A교 P1 교각(1).dxf",
"dxf_sha256": "8858fa90fa454b67b3f961a132c97ce5db7f1caf79b1323fd81d2e0f8a17e44c",
"engine": "ODA File Converter 27.1.0",
"label": "D1"
},
{
"source": "Ramp-A교 P1 교각(2).dwg",
"source_sha256": "0549a0f9165f5105192e45a86bd8b4603e38f89e880a2f0e09d0aae2d651cabf",
"dxf": "Ramp-A교 P1 교각(2).dxf",
"dxf_sha256": "f069ec01370545f5564de8d011678dab6f782ee2be54632541d9b5720beb6cdf",
"engine": "ODA File Converter 27.1.0",
"label": "D2"
},
{
"source": "Ramp-A교 P1 교각(3).dwg",
"source_sha256": "7e28c5f9919ef054b6328aa8bfc4a12cba08550de4351606b614c3e7643d2b8a",
"dxf": "Ramp-A교 P1 교각(3).dxf",
"dxf_sha256": "16923bb4ccb819ec97e804be71d98e220ce727c433a3186bdff0862be9aca137",
"engine": "ODA File Converter 27.1.0",
"label": "D3"
},
{
"source": "Ramp-A교 P1 교각(4).dwg",
"source_sha256": "0919ec2f363c68495acd11f6c4aa2cda66dd0cce225df7df1115a5c58e57f78e",
"dxf": "Ramp-A교 P1 교각(4).dxf",
"dxf_sha256": "bb84322955387707d2fa443b232eec3351ca55f5365e3fb317cd7a58f651ffdb",
"engine": "ODA File Converter 27.1.0",
"label": "D4"
}
]
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -0,0 +1 @@
[{"dwg": "D1", "layer": "CS-DIMT", "x": 88916.7, "y": -471214.1, "h": 300.0, "text": "1,250", "handle": "BD"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 87166.7, "y": -471214.1, "h": 300.0, "text": "2,250", "handle": "CD"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 84916.7, "y": -471214.1, "h": 300.0, "text": "2,250", "handle": "D3"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 83166.7, "y": -471214.1, "h": 300.0, "text": "1,250", "handle": "D9"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 86041.7, "y": -470214.1, "h": 300.0, "text": "7,000", "handle": "E1"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 105655.6, "y": -471154.0, "h": 300.0, "text": "1,100", "handle": "E7"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 105105.6, "y": -470154.0, "h": 300.0, "text": "2,200", "handle": "EF"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 104555.6, "y": -471154.0, "h": 300.0, "text": "1,100", "handle": "F5"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 78714.0, "y": -474663.2, "h": 300.0, "text": "1,000", "handle": "FD"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 78714.0, "y": -475913.2, "h": 300.0, "text": "1,500", "handle": "105"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 92811.2, "y": -474663.2, "h": 300.0, "text": "1,000", "handle": "10B"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 92811.2, "y": -475913.2, "h": 300.0, "text": "1,500", "handle": "113"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 93340.5, "y": -474005.7, "h": 300.0, "text": "315", "handle": "119"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 77714.0, "y": -487763.2, "h": 300.0, "text": "27,200", "handle": "121"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 83641.7, "y": -477794.6, "h": 300.0, "text": "2,800", "handle": "127"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 86041.7, "y": -478794.6, "h": 300.0, "text": "7,600", "handle": "12D"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 81582.6, "y": -471243.0, "h": 300.0, "text": "300", "handle": "133"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 88441.7, "y": -477794.6, "h": 300.0, "text": "2,800", "handle": "13B"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 105105.6, "y": -462050.8, "h": 300.0, "text": "2,000", "handle": "141"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 78742.9, "y": -488413.2, "h": 300.0, "text": "500", "handle": "147"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 78714.0, "y": -482413.2, "h": 300.0, "text": "11,500", "handle": "14F"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 78714.0, "y": -497613.2, "h": 300.0, "text": "7,500", "handle": "155"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 78714.0, "y": -491263.2, "h": 300.0, "text": "5,200", "handle": "15B"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 101823.6, "y": -465444.9, "h": 300.0, "text": "2,000", "handle": "161"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 84829.0, "y": -503213.0, "h": 300.0, "text": "75", "handle": "167"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 86041.7, "y": -504184.1, "h": 300.0, "text": "2,500", "handle": "16F"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 86041.5, "y": -503184.1, "h": 300.0, "text": "2,350", "handle": "175"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 87254.0, "y": -503213.0, "h": 300.0, "text": "75", "handle": "17B"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 90500.8, "y": -471243.0, "h": 300.0, "text": "300", "handle": "183"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 86041.7, "y": -477794.6, "h": 300.0, "text": "2,000", "handle": "18B"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 86041.7, "y": -485966.1, "h": 300.0, "text": "2,000", "handle": "191"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 84916.7, "y": -485995.0, "h": 300.0, "text": "250", "handle": "197"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 87166.7, "y": -485995.0, "h": 300.0, "text": "250", "handle": "19F"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 86041.7, "y": -484966.1, "h": 300.0, "text": "2,500", "handle": "1A7"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 86041.7, "y": -490363.6, "h": 300.0, "text": "2,500", "handle": "1AD"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 97777.8, "y": -474663.2, "h": 300.0, "text": "1,000", "handle": "1B3"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 97777.8, "y": -475913.2, "h": 300.0, "text": "1,500", "handle": "1BB"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 96777.8, "y": -487763.2, "h": 300.0, "text": "27,200", "handle": "1C1"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 97806.7, "y": -488413.2, "h": 300.0, "text": "500", "handle": "1C7"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 97777.8, "y": -482413.2, "h": 300.0, "text": "11,500", "handle": "1CF"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 97777.8, "y": -497613.2, "h": 300.0, "text": "7,500", "handle": "1D5"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 97777.8, "y": -491263.2, "h": 300.0, "text": "5,200", "handle": "1DB"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 103892.9, "y": -503213.0, "h": 300.0, "text": "75", "handle": "1E1"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 105105.6, "y": -504184.1, "h": 300.0, "text": "2,500", "handle": "1E9"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 105105.4, "y": -503184.1, "h": 300.0, "text": "2,350", "handle": "1EF"}, {"dwg": "D1", "layer": Line truncated
@@ -0,0 +1,661 @@
{
"_schema": "pier-T-expected/1",
"_note": "독립 기대값: D1 치수 문자·EL 문자·표에서 옮긴 값. params와 별도. [작도] = 치수 문자 없음(작도값)",
"pier_id": "P1",
"tol_mm": 1.0,
"checkers": {
"G1": "g1_shaft.py",
"G2": "g2_straight.py",
"G3": "g3_shaft.py",
"G4": "g4_ramp.py"
},
"negative": {
"G1": [
{
"id": "BS02",
"d": [
3,
0,
0
]
},
{
"id": "BP01",
"d": [
0,
0,
2
]
}
],
"G5": [
{
"id": "BB02",
"d": [
5,
0,
0
]
},
{
"id": "SP01",
"d": [
0,
0,
5
]
}
],
"G2": [
{
"mark": "P1",
"d": [
5,
0,
0
]
},
{
"mark": "P2",
"d": [
0,
0,
5
]
}
],
"G3": [
{
"mark": "P1-1",
"d": [
5,
0,
0
]
},
{
"mark": "P2-1",
"d": [
0,
0,
5
]
}
],
"G4": [
{
"mark": "C1",
"d": [
0,
5,
0
]
},
{
"mark": "C7",
"d": [
0,
0,
5
]
}
]
},
"planned_fail": [],
"G1": {
"pile": {
"z_bottom": 32752,
"segments": [
{
"d": 2350,
"length": 7500
},
{
"d": 2500,
"length": 5200
}
],
"src": "'EL=32.752', '75, 2,350, 75', '2,500', '7,500', '5,200'"
},
"column": {
"d": 2000,
"z0": 45452,
"length": 12000,
"src": "'2,000', 'EL=45.452', '11,500' + '500'"
},
"coping": {
"top_length": 7000,
"bottom_length": 7600,
"column_face_half": 1000,
"soffit_rise": 1500,
"soffit_radius": 5000,
"width_y": 2200,
"side_bottom_width": 2000,
"z_top_left": 59952,
"z_top_right": 60267,
"top_step": 315,
"plan_end_corner_x": 3650,
"src": "'7,000', '7,600' (2,800+2,000+2,800), '1,500', '1,000', 'R=5,000', '2,200' (1,100+1,100), 'EL=59.952', 'EL=60.267', '315'; plan_end_corner_x [작도] D1 평면 51A"
},
"total_height": 27200,
"seats": {
"table": {
"1": [
60112,
110,
50,
900,
800
],
"2": [
60427,
110,
50,
900,
800
]
},
"pos": {
"1": [
-2250,
0
],
"2": [
2250,
0
]
},
"pedestal_along": 1400,
"pedestal_across": 1300,
"rotation_deg": {
"1": -5.55,
"2": -9.194
},
"pad_margin": [
200,
100
],
"src": "ELEVATION TABLE; 평면 '2,250' x2; C3 1,400, C6 1,300; rotation [작도] D1 평면"
}
},
"G5": {
"el_x": {
"1": 60112,
"2": 60427
},
"S": {
"1": -5.526,
"2": -5.526
},
"W": {
"1": 900,
"2": 900
},
"L": 1000,
"T": 50,
"h3": 190,
"bearing_size": {
"1": [
900,
800
],
"2": [
900,
800
]
},
"bearing_shrink": 100,
"thick_end": "-Y",
"colours": {
"bearing": [
0,
0,
0
],
"sole_plate": [
150,
150,
150
]
},
"src": "ELEVATION TABLE (EL.'X', h3, A, B, h4 = T); 솔플레이트 상세 TABLE (S, L, W, T1 78 / T2 22 -> 두꺼운 쪽 -Y, R4)"
},
"rebar_palette": {
"32": [
214,
39,
40
],
"29": [
255,
127,
14
],
"25": [
188,
60,
160
],
"19": [
44,
160,
44
],
"16": [
31,
119,
180
],
"22": [
23,
190,
207
],
"13": [
140,
86,
75
],
"35": [
148,
103,
189
]
},
"G2": {
"schedule_L": {
"P1": 16300,
"P2": 7758,
"P3": 2274
},
"schedule_n": {
"P1": 54,
"P2": 107,
"P3": 108
},
"dia": {
"P1": 35,
"P2": 16,
"P3": 16
},
"chain_anchor": 45492.0,
"main": {
"mark": "P1",
"radius": 875,
"divisions": 54,
"start_deg": 0.0,
"below_anchor": 2000,
"coupler": 40
},
"hoops": {
"mark": "P2",
"radius": 901,
"pitch": 150,
"below": 13
},
"ties": {
"mark": "P3",
"pitch": 300,
"below": 6,
"per_level": 2,
"y_lift": 16
},
"src": "D4 재료표(기둥) L·N, D3 상세 r 901; D2 단면 '125, 875, 875, 125' DIVISION 54; D2 사슬 '2,000', H4 14@150, H5 78@150, H1 7@300, H2 39@300 (기점 EL 45.492); K1 커플러 40, K2 hoop 13단 아래, K3 Y +16 (사용자 결정 2026-10-13)"
},
"G3": {
"schedule_L": {
"P1-1": 8750,
"P1-2": 3400,
"P2-1": 9000,
"P3-1": 2652,
"P3-2": 3342
},
"schedule_n": {
"P1-1": 61,
"P1-2": 61,
"P2-1": 48,
"P3-1": 48,
"P3-2": 30
},
"dia": {
"P1-1": 35,
"P1-2": 22,
"P2-1": 16,
"P3-1": 16,
"P3-2": 16
},
"shaft_top": 45452.0,
"main": {
"pieces": [
"P1-2",
"P1-1"
],
"radius": 999.5,
"divisions": 61,
"start_deg": 1.475
},
"hoops": {
"mark": "P2-1",
"radius": 1025,
"chain": {
"first": 110,
"groups": [
[
13,
150
],
[
34,
300
]
]
}
},
"ties": {
"mark": "P3-1",
"chain": {
"first": 260,
"groups": [
[
6,
300
],
[
17,
600
]
]
},
"y_lift": 16
},
"u_bars": {
"mark": "P3-2",
"bottom_above": 100
},
"plate": {
"size": 1250,
"thickness": 4
},
"src": "D4 재료표(기둥)·PLATE 재료표; 구조물 치수표 H 12,700, H1 17@600, H2 6@300, H3 34@300, H4 13@150, H5·H6 340, 사슬 '260'·'110'·'100'; 단면 원 r 1,025, DIVISION 61 (첫 1.475°); S1~S6 사용자 결정 2026-10-13"
},
"G4": {
"schedule": {
"C1": [
8617,
9
],
"C2": [
7177,
9
],
"C4": [
8617,
8
],
"C5": [
7177,
8
],
"C3": [
7230,
9
],
"C6": [
9003,
9
],
"S3": [
1250,
44
],
"S4": [
1250,
44
],
"C7": [
7480,
20
],
"C8": [
6071,
40
],
"C9": [
9251,
15
],
"C10": [
7426,
30
],
"C11": [
8110,
20
],
"C12": [
5333,
40
],
"C13": [
11309,
18
],
"C14": [
18057,
12
],
"C15": [
2700,
51
],
"C16": [
4000,
17
],
"S1": [
2700,
22
],
"S2": [
2600,
24
]
},
"dia": {
"C1": 29,
"C2": 29,
"C4": 29,
"C5": 29,
"C3": 25,
"C6": 25,
"S3": 25,
"S4": 25,
"C7": 19,
"C8": 19,
"C9": 19,
"C10": 19,
"C11": 19,
"C12": 19,
"C13": 19,
"C14": 19,
"C15": 19,
"C16": 19,
"S1": 16,
"S2": 16
},
"fixed_length": [
"C1",
"C2",
"C3",
"C4",
"C5",
"C6",
"C15",
"C16",
"S1",
"S2",
"S3",
"S4"
],
"layers": {
"C1": {
"z": 59852,
"y": {
"start": -1000,
"pitch": 250,
"n": 9
},
"x_top": [
-3425.6,
3492.1
]
},
"C4": {
"z": 59852,
"y": {
"start": -875,
"pitch": 250,
"n": 8
},
"x_top": [
-3425.6,
3492.1
]
},
"C2": {
"z": 59752,
"y": {
"start": -1000,
"pitch": 250,
"n": 9
},
"x_top": [
-3455.6,
3515.0
]
},
"C5": {
"z": 59752,
"y": {
"start": -875,
"pitch": 250,
"n": 8
},
"x_top": [
-3455.6,
3515.0
]
},
"C3": {
"z": 59652,
"y": {
"start": -1000,
"pitch": 250,
"n": 9
},
"x_top": [
-3485.6,
3537.8
]
},
"C16": {
"z": 60167,
"y": {
"start": -1000,
"pitch": 125,
"n": 17
},
"x_top": [
100,
3400
]
}
},
"stirrups": {
"x": {
"start": -3375,
"pitch": 125,
"n": 55
},
"inner_dx": 20,
"top_cover": 77.5,
"bottom_cover": 77.5,
"outer_y": [
-875,
750
],
"zones": {
"left": [
"C7",
"C8",
-3375,
-1000
],
"centre": [
"C9",
"C10",
-875,
875
],
"right": [
"C11",
"C12",
1000,
3375
]
}
},
"loops": {
"per_level": 3,
"levels": {
"C14": [
59827,
59577,
59327,
59077
],
"C13": [
58827,
58577,
58327,
58077,
57827,
57577
]
}
},
"c6": {
"z_bottom": 57552,
"y": [
-906.5,
-750,
-500,
-250,
0,
250,
500,
750,
906.5
],
"y_note": "T1 @250 9본; 하면 직선부(EL 57.552)에서는 바깥 2본이 측면 테이퍼 피복 100.2로 ±906.5"
},
"c15": {
"a": 2000
},
"seats": {
"1": {
"S1": 11,
"S2": 12,
"S3": 22,
"S4": 22
},
"2": {
"S1": 11,
"S2": 12,
"S3": 22,
"S4": 22
}
},
"src": "D3 재료표·철근 상세; D2 정면 작도(상면 3단 EL·x 끝, 스터럽 55곳, C13·C14 단, C16); 단면 A-A·B-B(행 @125/@250, 스터럽 y·피복 77.5); 교좌면 E-E·F-F; 결정 T1~T6 (2026-10-14)"
}
}
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,6 @@
{
"name": "Ramp-A교P1",
"type": "T형",
"created": "2026-10-13 16:57:50",
"template": "신규 판독 (Ramp-A교 P1 판독서 v0.1.00)"
}
@@ -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 | 앱 자동 생성 초안 |