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

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

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

No files matched your search

@@ -0,0 +1,122 @@
{
"params:lean_concrete": {
"sha": "76847a00054d9e96",
"by": "심영표",
"at": "2026-10-12 16:15:29"
},
"params:pier_id": {
"sha": "abc5ac4ec94f0b99",
"by": "심영표",
"at": "2026-10-12 16:28:49"
},
"params:rebar_marks": {
"sha": "e4ad42a5f585d89a",
"by": "심영표",
"at": "2026-10-12 16:28:49"
},
"params:display": {
"sha": "a6a77705597ca560",
"by": "심영표",
"at": "2026-10-12 16:28:49"
},
"expected:pier_id": {
"sha": "abc5ac4ec94f0b99",
"by": "심영표",
"at": "2026-10-12 16:28:49"
},
"expected:tol_mm": {
"sha": "d0ff5974b6aa52cf",
"by": "심영표",
"at": "2026-10-12 16:28:49"
},
"expected:rebar_palette": {
"sha": "c41013bf3e985022",
"by": "심영표",
"at": "2026-10-12 16:28:49"
},
"expected:planned_fail": {
"sha": "b0605b500f418127",
"by": "심영표",
"at": "2026-10-12 16:28:49"
},
"params:footing": {
"sha": "483d22ced82351a4",
"by": "심영표",
"at": "2026-10-12 16:28:49"
},
"params:column": {
"sha": "dc62bae09776dcb5",
"by": "심영표",
"at": "2026-10-12 16:28:49"
},
"params:coping": {
"sha": "ee81c801e46ae937",
"by": "심영표",
"at": "2026-10-12 16:28:49"
},
"params:piles": {
"sha": "ae0cbe3f0389f067",
"by": "심영표",
"at": "2026-10-12 16:28:49"
},
"params:bearing_seats": {
"sha": "7b214c333e25d55d",
"by": "심영표",
"at": "2026-10-12 16:28:49"
},
"params:materials": {
"sha": "806da851d464e8d1",
"by": "심영표",
"at": "2026-10-12 16:28:49"
},
"expected:G1": {
"sha": "3e5d81258416bea0",
"by": "심영표",
"at": "2026-10-12 16:28:49"
},
"params:column_rebar": {
"sha": "7f6fb991d1e64433",
"by": "심영표",
"at": "2026-10-12 16:28:49"
},
"expected:G2": {
"sha": "12096da472468e95",
"by": "심영표",
"at": "2026-10-12 16:28:49"
},
"params:footing_rebar": {
"sha": "c9bf3723c6ae4040",
"by": "심영표",
"at": "2026-10-12 16:28:49"
},
"expected:G3": {
"sha": "a51185857a6964e8",
"by": "심영표",
"at": "2026-10-12 16:28:49"
},
"params:coping_rebar": {
"sha": "b2c7017846b490e9",
"by": "심영표",
"at": "2026-10-12 16:28:49"
},
"expected:G4": {
"sha": "2e5d2ccf9887820b",
"by": "심영표",
"at": "2026-10-12 16:28:49"
},
"params:sole_plates": {
"sha": "9c2758aa6ffe0ffc",
"by": "심영표",
"at": "2026-10-12 16:28:49"
},
"expected:G5": {
"sha": "ba18c7e66b717574",
"by": "심영표",
"at": "2026-10-12 16:28:49"
},
"params:hitl_decisions_2026_10_07": {
"sha": "1a6acbe25bc01948",
"by": "심영표",
"at": "2026-10-12 16:29:53"
}
}
@@ -0,0 +1,26 @@
[
{
"source": "C0050205-028-운곡교 교각도(1)(완도방향 P2).dwg",
"source_sha256": "0efe55ad5b922918acad2c8c4aa7af8aa8a01899f31a81fb56640a45f12148ba",
"dxf": "C0050205-028-운곡교 교각도(1)(완도방향 P2).dxf",
"dxf_sha256": "3836e6ba45f4e83e8247d6e7840247fdcf0a874c772c8af4f2fcc0881f44d63e",
"engine": "ODA File Converter 27.1.0",
"label": "D1"
},
{
"source": "C0050205-029-운곡교 교각도(2)(완도방향 P2).dwg",
"source_sha256": "7ad905aa4b32aa1dff595c6317acca8ee42759b716b9d915c64ada23e670177b",
"dxf": "C0050205-029-운곡교 교각도(2)(완도방향 P2).dxf",
"dxf_sha256": "754f2ad94580348891a7d701d8d0ae01f0f2d1188284127d701e80cf5ffbb53c",
"engine": "ODA File Converter 27.1.0",
"label": "D2"
},
{
"source": "C0050205-030-운곡교 교각도(3)(완도방향 P2).dwg",
"source_sha256": "edce7e03d79f3378c833badd711fe7128ba1661523c426d14978e8b02c3a94b2",
"dxf": "C0050205-030-운곡교 교각도(3)(완도방향 P2).dxf",
"dxf_sha256": "feece9b743fa446a1c2ba6423f4009cdcf9cb8693b1b1f2a4d65d6d65fd94a5b",
"engine": "ODA File Converter 27.1.0",
"label": "D3"
}
]
@@ -0,0 +1 @@
[{"dwg": "D1", "layer": "CS-DIMT", "x": 11855.6, "y": 31231.1, "h": 150.0, "text": "12.400", "handle": "20B71"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 18183.5, "y": 30631.1, "h": 150.0, "text": "100", "handle": "20B72"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 14948.8, "y": 30631.1, "h": 150.0, "text": "20@250=5.000", "handle": "20B73"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 11599.9, "y": 30631.1, "h": 150.0, "text": "6@300=1.800", "handle": "20B74"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 8148.8, "y": 30631.1, "h": 150.0, "text": "20@250=5.000", "handle": "20B75"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 5584.0, "y": 30631.1, "h": 150.0, "text": "100", "handle": "20B76"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 4342.4, "y": 24877.4, "h": 150.0, "text": "137", "handle": "20B77"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 4342.4, "y": 27639.9, "h": 150.0, "text": "138", "handle": "20B78"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 4942.4, "y": 24877.4, "h": 150.0, "text": "137", "handle": "20B79"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 4942.4, "y": 27639.9, "h": 150.0, "text": "138", "handle": "20B7A"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 18009.0, "y": 30421.1, "h": 150.0, "text": "200", "handle": "20B7B"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 6009.0, "y": 30421.1, "h": 150.0, "text": "200", "handle": "20B7C"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 4732.4, "y": 24483.9, "h": 150.0, "text": "100", "handle": "20B7D"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 4732.4, "y": 25798.2, "h": 150.0, "text": "21@125=2.625", "handle": "20B7E"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 4714.4, "y": 28252.1, "h": 150.0, "text": "100(상면)", "handle": "20B7F"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 4132.4, "y": 24483.9, "h": 150.0, "text": "100", "handle": "20B80"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 4132.4, "y": 25798.2, "h": 150.0, "text": "21@125=2.625", "handle": "20B81"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 4114.4, "y": 28252.1, "h": 150.0, "text": "100(하면)", "handle": "20B82"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 3532.4, "y": 26156.6, "h": 150.0, "text": "3.100", "handle": "20B83"}, {"dwg": "D1", "layer": "CZ-TEX1", "x": 11401.6, "y": 32024.5, "h": 420.0, "text": "평면도", "handle": "20B84"}, {"dwg": "D1", "layer": "CZ-TEX2", "x": 12966.5, "y": 31424.5, "h": 300.0, "text": "S=1:60", "handle": "20B85"}, {"dwg": "D1", "layer": "CS-TEXT", "x": 5254.4, "y": 26630.4, "h": 150.0, "text": "OF PIER", "handle": "20B86"}, {"dwg": "D1", "layer": "CS-TEXT", "x": 5254.4, "y": 26397.2, "h": 150.0, "text": "L", "handle": "20B87"}, {"dwg": "D1", "layer": "CS-TEXT", "x": 5182.4, "y": 26361.2, "h": 150.0, "text": "C", "handle": "20B88"}, {"dwg": "D1", "layer": "CS-TEXT", "x": 5602.4, "y": 25942.3, "h": 150.0, "text": "하면", "handle": "20B89"}, {"dwg": "D1", "layer": "CS-TEXT", "x": 5602.4, "y": 26473.3, "h": 150.0, "text": "상면", "handle": "20B8A"}, {"dwg": "D1", "layer": "CS-TEXT", "x": 11405.6, "y": 28322.3, "h": 150.0, "text": "구조도", "handle": "20BB9"}, {"dwg": "D1", "layer": "CS-TEXT", "x": 12306.4, "y": 28322.3, "h": 150.0, "text": "일반도", "handle": "20BBC"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 18624.2, "y": 29431.1, "h": 150.0, "text": "받침간 거리", "handle": "20BCD"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 18922.8, "y": 30631.1, "h": 150.0, "text": "스 트 럽", "handle": "20BCE"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 18139.2, "y": 30031.1, "h": 150.0, "text": "200", "handle": "20BD7"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 5584.0, "y": 30031.1, "h": 150.0, "text": "200", "handle": "20BD8"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 18633.1, "y": 30031.1, "h": 150.0, "text": "코핑부 소단", "handle": "20BDD"}, {"dwg": "D1", "layer": "CS-TEXT", "x": 10207.1, "y": 28393.5, "h": 150.0, "text": "@250", "handle": "20BE0"}, {"dwg": "D1", "layer": "CS-TEXT", "x": 8166.5, "y": 28393.5, "h": 150.0, "text": "@250", "handle": "20BE5"}, {"dwg": "D1", "layer": "CS-TEXT", "x": 6138.6, "y": 28392.9, "h": 150.0, "text": "@250", "handle": "20BE6"}, {"dwg": "D1", "layer": "CS-TEXT", "x": 12541.9, "y": 24240.8, "h": 150.0, "text": "@300", "handle": "20BEA"}, {"dwg": "D1", "layer": "CS-TEXT", "x": 10398.8, "y": 24241.3, "h": 150.0, "text": "@250", "handle": "20BF1"}, {"dwg": "D1", "layer": "CS-TEXT", "x": 8426.4, "y": 24241.3, "h": 150.0, "text": "@250", "handle": "20BF5"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 6318.3, "y": 29431.1, "h": 150.0, "text": "1.223", "handle": "20C03"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 8181.1, "y": 29431.1, "h": 150.0, "text": "2.502", "handle": "20C04"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 10683.4, "y": 29431.1, "h": 150.0, "text": "2.502", "handle": "20C05"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 13185.6, "y": 29431.1, "h": 150.0, "text": "2.502", "handle": "20C06"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 15687.9, "y": 29431.1, "h": 150.0, "text": "2.502", "handle": "20C07"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 17522.8, "y": 29431.1, "h": 150.0, "text": "1.Line truncated
@@ -0,0 +1,847 @@
{
"_schema": "pier-T-expected/1",
"_note": "독립 기대값: 도면 치수 문자·표(D1~D3)에서 직접 옮긴 값. 생성용 params.json과 별도로 관리하며 검사기는 params를 읽지 않는다. 원출처: Code/교각모델링/verify_*.py (검증서 v0.1.05).",
"pier_id": "P2",
"tol_mm": 1.0,
"G1": {
"footing": {
"dx": 10350,
"dy": 7800,
"z0": 25123,
"thickness": 2200,
"src": "D1 '10.350' '7.800' 'EL. 25.123' '2.200'"
},
"lean": {
"margin": 100,
"thickness": 100,
"src": "D1 lean +100 each side, 100 thick"
},
"column": {
"d": 2000,
"height": 12133,
"src": "D1 단면 C-C '2.000', 정면도 '12.133'"
},
"coping": {
"dx": 12400,
"dy": 3100,
"z_top_left": 42456,
"rise_upper": 1500,
"rise_lower": 1500,
"z_top_right": 42748,
"z_top_center": 42602,
"flat_from_tip": 5100,
"end_inset": 200,
"radius": 12000,
"src": "D1 '12.400' '3.100' 'EL. 42.456' '1.500' x2 'EL. 42.748' 'EL. 42.602' '5.100' '200' 'R=12.000'"
},
"coping_outline": [
[
-1100,
39456
],
[
1100,
39456
],
[
6200,
40956
],
[
6000,
42748
],
[
3726,
42748
],
[
3726,
42675
],
[
1224,
42675
],
[
1224,
42602
],
[
-1279,
42602
],
[
-1279,
42529
],
[
-3781,
42529
],
[
-3781,
42456
],
[
-6000,
42456
],
[
-6200,
40956
]
],
"coping_outline_src": "D1 정면도 외형 from dims '200','2.219','3@2.502=7.507','2.274','200' and EL texts; intermediate step EL 42.529 / 42.675 from drawn risers 72.9 [derived]",
"dxf_arc_centres": {
"datum_x": 12159.4,
"datum_y": 16515.6,
"datum_el": 39456,
"left": [
5207.5,
6039.2
],
"right": [
19111.2,
6039.2
],
"src": "DXF ARC 20E8B / 20E89 centre; datum CS-CNTL 21539 / coping bottom line 20E87"
},
"piles": {
"nx": 6,
"ny": 5,
"pitch_x": 1750,
"pitch_y": 1550,
"edge": 800,
"d": 600,
"length": 25900,
"head_embedment": 100,
"src": "D1 '5@1.750=8.750' '4@1.550=6.200' '800' 'Φ600' 'L=25.9M'"
},
"seats": {
"table": {
"1": [
42686,
180,
50,
700,
540
],
"2": [
42759,
180,
50,
700,
540
],
"3": [
42832,
180,
50,
700,
650
],
"4": [
42905,
180,
50,
700,
540
],
"5": [
42978,
180,
50,
700,
540
],
"6": [
42661,
155,
50,
700,
540
],
"7": [
42734,
155,
50,
700,
540
],
"8": [
42807,
155,
50,
700,
650
],
"9": [
42880,
155,
50,
700,
540
],
"10": [
42953,
155,
50,
700,
540
]
},
"table_columns": [
"EL.'X'",
"h1",
"h2",
"A",
"B"
],
"girders": 5,
"step_top": {
"1": 42456,
"2": 42529,
"3": 42602,
"4": 42675,
"5": 42748
},
"step_x": {
"1": [
-6000,
-3781
],
"2": [
-3781,
-1279
],
"3": [
-1279,
1224
],
"4": [
1224,
3726
],
"5": [
3726,
6000
]
},
"row_y": {
"front": -699,
"rear": 600
},
"pitch_chain": [
3,
7507
],
"pedestal_plan": [
1250,
1200
],
"pad_margin": [
200,
100
],
"rear_first_from_tip": 1223,
"src": "D2 ELEVATION TABLE; D1 EL texts + drawn steps; S1 851/950; '3@2.502=7.507'; 대좌 2500x1200; '1.223'"
}
},
"G2": {
"schedule_L": {
"P1": 17377,
"P2": 16683,
"P3": 6449,
"P4": 5680,
"P5": 5680,
"P6": 2136
},
"schedule_n": {
"P1": 46,
"P2": 46,
"P3": 37,
"P4": 9,
"P5": 22,
"P6": 36
},
"dia": {
"P1": 32,
"P2": 32,
"P3": 19,
"P4": 29,
"P5": 29,
"P6": 16
},
"hoop_chain": {
"start": [
150,
1030
],
"groups": [
[
8,
120
],
[
22,
120
],
[
37,
300
]
]
},
"hoop_marks_by_zone": [
[
"P4",
9
],
[
"P5",
22
],
[
"P3",
37
]
],
"tie_chain": {
"start": [
150,
1030
],
"groups": [
[
8,
1800
]
]
},
"tie_offset": 22.5,
"r_outer": 870.5,
"r_inner": 825.5,
"r_hoop": 904,
"main_divisions": 46,
"bottom_above_footing": 300,
"p1_top_parts": [
300,
340,
16343
],
"no_fillet_marks": [
"P1",
"P2",
"P4",
"P5"
],
"src": "D3 L·수량·R·A (Ungok P2); D1 '150','1.030','8@120=960','22@120=2.640','37@300=11.100','8@1.800=14.400'; section radii (HITL H2 rule); tie offset = H29/2 + H16/2 (hoop P4 H29 label, P6 H16)"
},
"G3": {
"schedule": {
"B1": [
8000,
42
],
"B2": [
11500,
42
],
"B3": [
8000,
42
],
"B4": [
7600,
39
],
"B5": [
10550,
32
],
"B6": [
14050,
32
],
"B7": [
10550,
32
],
"B8": [
10150,
29
],
"B9": [
2155,
493
],
"B10": [
35684,
9
],
"B11": [
10350,
28
],
"B12": [
7800,
38
]
},
"dia": {
"B1": 25,
"B2": 25,
"B3": 19,
"B4": 25,
"B5": 29,
"B6": 29,
"B7": 19,
"B8": 29,
"B9": 16,
"B10": 19,
"B11": 16,
"B12": 16
},
"layer_z": {
"B2": 122,
"B4": 122,
"B6": 178,
"B8": 178,
"B3": 227.5,
"B7": 277,
"B1": 2073,
"B5": 2127
},
"rows": {
"Y_BOT": {
"ends": [
-5075,
5075
],
"start": -4875,
"pitch": 125,
"n": 79
},
"Y_250": {
"ends": [
-5075,
5075
],
"start": -4875,
"pitch": 250,
"n": 40
},
"X_BOT": {
"ends": [
-3800,
3800
],
"start": -3625,
"pitch": 125,
"n": 59
},
"X_250": {
"ends": [
-3800,
3800
],
"start": -3625,
"pitch": 250,
"n": 30
}
},
"b10_levels": {
"start": 350,
"pitch": 200,
"n": 9
},
"b10_size": [
10198,
7644
],
"b9_grid": {
"x": {
"start": -4625,
"pitch": 250,
"n": 38
},
"y": {
"start": -3500,
"pitch": 250,
"n": 29
}
},
"b9_erec": [
150,
2100
],
"b9_a": 1995,
"b9_c": 64,
"mid_levels": [
550,
950,
1350,
1750
],
"src": "D3 L·수량 (P2); D1 '100','200','78@125=9.750' / '39@250=9.750' / '100','175','58@125=7.250' / '29@250'; F1 층 높이(작도점, P1과 같음); '150','9@200=1.800'; '450','37@250=9.250' / '300','28@250=7.000'; EREC 150~2100; 중간층 작도점 [derived]"
},
"G4": {
"count": {
"C1": 12,
"C2": 12,
"C3": 12,
"C4": 12,
"C5": 12,
"C6": 12,
"C7": 12,
"C8": 12,
"C9": 60,
"C10": 21,
"C11": 60,
"C12": 18,
"C13": 9,
"C14": 41,
"C15": 13,
"C16": 13,
"S1": 50,
"S2": 105
},
"L": {
"C1": 14490,
"C2": 12082,
"C3": 12106,
"C4": 14490,
"C5": 12082,
"C6": 12106,
"C7": 13994,
"C8": 13994,
"C9": 8649,
"C10": 10314,
"C11": 8941,
"C12": 20513,
"C13": 29345,
"C14": 3600,
"C15": 2774,
"C16": 5605,
"S1": 3800,
"S2": 2500
},
"range": {
"C9": [
"b_sched",
2958,
1376
],
"C11": [
"b_sched",
2958,
1668
],
"C10": [
"b_sched",
3000,
3000
],
"C12": [
"a_sched",
12228,
3151
],
"C13": [
"a_sched",
12167,
12044
]
},
"range_convention": {
"b_sched": {
"a": 1407,
"c": 750,
"c_times": 2
},
"a_sched": {
"b": 1407,
"c": 580,
"c_times": 4
}
},
"dia": {
"C1": 29,
"C2": 29,
"C3": 25,
"C4": 29,
"C5": 29,
"C6": 25,
"C7": 29,
"C8": 29,
"C9": 25,
"C10": 25,
"C11": 25,
"C12": 25,
"C13": 25,
"C14": 19,
"C15": 19,
"C16": 19,
"S1": 19,
"S2": 19
},
"half_width": 1550,
"y24_chain": {
"start": [
100,
237
],
"pitch": 125,
"n": 21,
"end": 3000
},
"y13_chain": {
"start": [
100,
237
],
"pitch": 250,
"n": 10,
"end": 3000
},
"pairs": [
[
"C1",
"C4"
],
[
"C2",
"C5"
],
[
"C3",
"C6"
],
[
"C7",
"C8"
]
],
"tier_z": {
"C1": 42356,
"C4": 42356,
"C2": 42256,
"C5": 42256,
"C3": 42156,
"C6": 42156
},
"stirrup_x": {
"C10": [
-900,
-600,
-300,
0,
300,
600,
900
],
"C11": {
"start": 1150,
"pitch": 250,
"n": 20
},
"C9": {
"start": -1150,
"pitch": -250,
"n": 20
}
},
"stirrups_per_x": 3,
"c10_bottom": 39556,
"loop_z": {
"C12": {
"start": 39806,
"pitch": 250,
"n": 6
},
"C13": [
41306,
41556,
41806
]
},
"c15_top": 42647.8,
"c16_top": 42501.9,
"c14_levels": [
[
42133.5,
11
],
[
42233.5,
11
],
[
40056,
3
],
[
41056,
5
],
[
40556,
4
],
[
41556,
6
],
[
42489.5,
1
]
],
"s_per_girder": {
"S1": [
10,
50
],
"S2": [
21,
100
]
},
"step_top": {
"1": 42456,
"2": 42529,
"3": 42602,
"4": 42675,
"5": 42748
},
"src": "D3 (P2) 수량·L·a/b 범위; D1 A-A 사슬 '100','137','21@125','3000' / B-B '10@250'; 정면도 단 높이·스터럽 X·루프 EL; D2 '50','50'"
},
"G5": {
"el_x": {
"1": 42686,
"2": 42759,
"3": 42832,
"4": 42905,
"5": 42978,
"6": 42661,
"7": 42734,
"8": 42807,
"9": 42880,
"10": 42953
},
"S": {
"1": -1.91,
"2": -1.907,
"3": -1.905,
"4": -1.903,
"5": -1.901,
"6": -1.91,
"7": -1.907,
"8": -1.905,
"9": -1.903,
"10": -1.901
},
"W": {
"1": 640,
"2": 640,
"3": 750,
"4": 640,
"5": 640,
"6": 640,
"7": 640,
"8": 750,
"9": 640,
"10": 640
},
"L": 800,
"T": 30,
"h3": 165,
"bearing_shrink": 100,
"colours": {
"bearing": [
0,
0,
0
],
"sole_plate": [
150,
150,
150
]
},
"src": "D2 ELEVATION TABLE (EL.'X', h3), 솔플레이트 상세 TABLE (S, L, W, T); (L-100)x(W-100)·색 = P1 사용자 지시 준용"
},
"rebar_palette": {
"32": [
214,
39,
40
],
"29": [
255,
127,
14
],
"25": [
188,
60,
160
],
"19": [
44,
160,
44
],
"16": [
31,
119,
180
]
},
"rebar_palette_src": "디자인지침_경로.md R8 (2026-10-07)",
"planned_fail": [
{
"gate": "G4",
"item_prefix": "C9 original length vs L",
"reason": "작도 폭 채택(K1)",
"approved": "사용자 2026-10-07; P2 적용 사용자 확정 2026-10-12"
},
{
"gate": "G4",
"item_prefix": "C10 original length vs L",
"reason": "작도 폭 채택(K1)",
"approved": "사용자 2026-10-07; P2 적용 사용자 확정 2026-10-12"
},
{
"gate": "G4",
"item_prefix": "C11 original length vs L",
"reason": "작도 폭 채택(K1)",
"approved": "사용자 2026-10-07; P2 적용 사용자 확정 2026-10-12"
},
{
"gate": "G4",
"item_prefix": "C12 original length vs L",
"reason": "작도 폭 채택(C12·C13 drawn width)",
"approved": "사용자 2026-10-07; P2 적용 사용자 확정 2026-10-12"
},
{
"gate": "G4",
"item_prefix": "C13 original length vs L",
"reason": "작도 폭 채택(C12·C13 drawn width)",
"approved": "사용자 2026-10-07; P2 적용 사용자 확정 2026-10-12"
},
{
"gate": "G3",
"item": "B12 bar count vs schedule",
"reason": "작도 32본 채택 vs D3 38본 (P1 F2 규칙, P1도 28/34)",
"approved": "사용자 확정 2026-10-12 (P2, P1 F2 규칙 준용)"
},
{
"gate": "G3",
"item": "B9 bar count vs schedule",
"reason": "작도 551본(38×29 엇갈림) 채택 vs D3 493본(P1 값 그대로)",
"approved": "사용자 확정 2026-10-12 (P2, P1 F2 규칙 준용)"
}
]
}
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,6 @@
{
"name": "운곡교p2",
"type": "T형",
"created": "2026-10-12 14:37:31",
"template": "1234"
}
@@ -0,0 +1 @@
{"model": "C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\운곡교p2\\runs\\current\\G1.3dm", "units": "Millimeters", "tolerance": 0.001, "count": 54, "layers": {"P2::받침패드": [90, 160, 90, true], "P2::받침대좌": [190, 90, 90, true], "P2::말뚝": [110, 110, 110, true], "P2::코핑": [210, 180, 80, true], "P2::기둥": [200, 140, 90, true], "P2::기초": [120, 150, 200, true], "P2::버림콘크리트": [160, 160, 160, true]}, "objects": {"P2-BP10": {"layer": "P2::받침패드", "type": "Brep", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [4648.31, 136.95, 42902.8, 5416.09, 1059.65, 42952.8], "user": {"fck": "-", "id": "P2-BP10", "role": "bearing pad h2 NO.10 2800 kN 양방향", "source_views": "D1 평면도, D1 단면도, D2 교량받침 상세·ELEVATION TABLE"}, "faces": 6, "solid": true, "volume": 29366666.7}, "P2-BS10": {"layer": "P2::받침대좌", "type": "Brep", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [4412.8, -83.4, 42747.8, 5678.4, 1229.4, 42902.8], "user": {"fck": "40MPa", "id": "P2-BS10", "role": "bearing pedestal h1 NO.10 girder 5 rear", "source_views": "D1 평면도, D1 단면도, D2 ELEVATION TABLE"}, "faces": 6, "solid": true, "volume": 232501409.0}, "P2-BP09": {"layer": "P2::받침패드", "type": "Brep", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [2146.01, 136.95, 42829.8, 2913.79, 1059.65, 42879.8], "user": {"fck": "-", "id": "P2-BP09", "role": "bearing pad h2 NO.9 2800 kN 양방향", "source_views": "D1 평면도, D1 단면도, D2 교량받침 상세·ELEVATION TABLE"}, "faces": 6, "solid": true, "volume": 29366666.7}, "P2-BS09": {"layer": "P2::받침대좌", "type": "Brep", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [1910.47, -83.4, 42674.8, 3176.07, 1229.4, 42829.8], "user": {"fck": "40MPa", "id": "P2-BS09", "role": "bearing pedestal h1 NO.9 girder 4 rear", "source_views": "D1 평면도, D1 단면도, D2 ELEVATION TABLE"}, "faces": 6, "solid": true, "volume": 232501408.9}, "P2-BP08": {"layer": "P2::받침패드", "type": "Brep", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [-411.36, 135.23, 42756.9, 466.36, 1061.37, 42806.9], "user": {"fck": "-", "id": "P2-BP08", "role": "bearing pad h2 NO.8 2800 kN 교축방향", "source_views": "D1 평면도, D1 단면도, D2 교량받침 상세·ELEVATION TABLE"}, "faces": 6, "solid": true, "volume": 34041666.7}, "P2-BS08": {"layer": "P2::받침대좌", "type": "Brep", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [-591.87, -83.4, 42601.9, 673.73, 1229.4, 42756.9], "user": {"fck": "40MPa", "id": "P2-BS08", "role": "bearing pedestal h1 NO.8 girder 3 rear", "source_views": "D1 평면도, D1 단면도, D2 ELEVATION TABLE"}, "faces": 6, "solid": true, "volume": 232501408.9}, "P2-BP07": {"layer": "P2::받침패드", "type": "Brep", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [-2858.69, 136.95, 42683.9, -2090.91, 1059.65, 42733.9], "user": {"fck": "-", "id": "P2-BP07", "role": "bearing pad h2 NO.7 2800 kN 양방향 [추론: 평행 이동]", "source_views": "D1 평면도, D1 단면도, D2 교량받침 상세·ELEVATION TABLE"}, "faces": 6, "solid": true, "volume": 29366666.7}, "P2-BS07": {"layer": "P2::받침대좌", "type": "Brep", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [-3094.2, -83.4, 42528.9, -1828.6, 1229.4, 42683.9], "user": {"fck": "40MPa", "id": "P2-BS07", "role": "bearing pedestal h1 NO.7 girder 2 rear [추론: 평행 이동]", "source_views": "D1 평면도, D1 단면도, D2 ELEVATION TABLE"}, "faces": 6, "solid": true, "volume": 232501409.0}, "P2-BP06": {"layer": "P2::받침패드", "type": "Brep", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [-5360.99, 136.95, 42611.0, -4593.21, 1059.65, 42661.0], "user": {"fck": "-", "id": "P2-BP06", "role": "bearing pad h2 NO.6 2800 kN 양방향 [추론: 평행 이동]", "source_views": "D1 평면도, D1 단면도, D2 교량받침 상세·ELEVATION TABLE"}, "faces": 6, "solid": true, "volume": 29366666.7}, "P2-BS06": {"layer": "P2::받침대좌", "type": "Brep", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [-5596.53, -83.4, 42456.0, -4330.93, 1229.4, 42611.0], "user": {"fck": "40MPa", "id": "P2-BS06", "role": "bearing pedestal h1 NO.6 girder 1 rear [추론: 평행 이동]", "source_views": "D1 평면도, D1 단면도, D2 ELEVATION TABLE"}, "faces": 6, "solid": true, "volume": 232501408.9}, "P2-BP05": {"layer": "P2::받침패드", "type": "Brep", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [4583.2, -1169.48, 42927.8, 5370.6, -230.92, 42977.8], "user": {"fck": "-", "id": "P2-BP05", "role": "bearing pad h2 NO.5 2800 kN 양방향", "source_viLine truncated
@@ -0,0 +1,77 @@
{
"gate": "G1",
"checker": "g1_shape.py",
"verdict": "PASS",
"summary": {
"total": 171,
"passed": 171,
"failed": 0,
"volumes_m3": {
"lean": 7.592,
"footing": 177.606,
"column": 38.117,
"coping": 89.651
},
"pile_volume_each_m3": 7.323
},
"unplanned_fails": [],
"planned_fails": [],
"negative": {
"negH": {
"move": {
"id": "BS08",
"d": [
3,
0,
0
]
},
"new_fails": [
"rear pedestal pitch girder 2-3",
"rear pedestal pitch girder 3-4"
],
"detected": true
},
"negV": {
"move": {
"id": "BP03",
"d": [
0,
0,
2
]
},
"new_fails": [
"NO.3 pad top = EL.'X'"
],
"detected": true
}
},
"reload": {
"built": 54,
"reopened": 54,
"fingerprint": 54,
"ok": true
},
"unchanged": {
"compared": 0,
"diffs": [],
"missing": [],
"ok": true,
"against": null
},
"model": "C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\운곡교p2\\runs\\current\\G1.3dm",
"secs": 34.6,
"build_steps": [
{
"name": "G1:concrete.py",
"secs": 0.26
},
{
"name": "display.py",
"secs": 0.01
}
],
"inputs_sha": "7334f90ed2b05067",
"job_id": "8447a621200d"
}
@@ -0,0 +1,12 @@
{
"id": "8447a621200d",
"pid": 9656,
"state": "완료",
"at": "2026-10-12 16:31:21",
"log": [
"Rhino 작업 시작",
"[G1] build G1..G1",
"[G1] re-open, check, negative tests, fingerprint",
"[G1] PASS checks 171/171 (planned FAIL 0, unplanned 0) negative H/V True/True reload True unchanged True (0) 34.6s"
]
}
@@ -0,0 +1,425 @@
{
"summary": {
"total": 42,
"passed": 42,
"failed": 0,
"min_cover": {
"P1": 113.5,
"P2": 158.5,
"P3": 91.5,
"P4": 98.7,
"P5": 81.5,
"P6": 74.0
}
},
"results": [
{
"check": "C8",
"item": "P1 bar count",
"expected": 46,
"actual": 46,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 pipes closed & paired with centrelines",
"detail": "pipes 46 / centrelines 46",
"result": "PASS"
},
{
"check": "C8",
"item": "P2 bar count",
"expected": 46,
"actual": 46,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 pipes closed & paired with centrelines",
"detail": "pipes 46 / centrelines 46",
"result": "PASS"
},
{
"check": "C8",
"item": "P3 bar count",
"expected": 37,
"actual": 37,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 pipes closed & paired with centrelines",
"detail": "pipes 74 / centrelines 74",
"result": "PASS"
},
{
"check": "C8",
"item": "P4 bar count",
"expected": 9,
"actual": 9,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 pipes closed & paired with centrelines",
"detail": "pipes 18 / centrelines 18",
"result": "PASS"
},
{
"check": "C8",
"item": "P5 bar count",
"expected": 22,
"actual": 22,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 pipes closed & paired with centrelines",
"detail": "pipes 22 / centrelines 22",
"result": "PASS"
},
{
"check": "C8",
"item": "P6 bar count",
"expected": 36,
"actual": 36,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 pipes closed & paired with centrelines",
"detail": "pipes 36 / centrelines 36",
"result": "PASS"
},
{
"check": "C8",
"item": "P1 original length (+coupler b) vs schedule L (worst of 46)",
"expected": 0,
"actual": 0.071,
"diff": 0.071,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 curve length - L (record, fillets shorten hooks)",
"detail": "min 0.1 / max 0.1 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P1 curve length (+coupler b) vs L (no fillet)",
"expected": 0,
"actual": 0.071,
"diff": 0.071,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 original length (+coupler b) vs schedule L (worst of 46)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 curve length - L (record, fillets shorten hooks)",
"detail": "min 0.0 / max 0.0 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P2 curve length (+coupler b) vs L (no fillet)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 original length (+coupler b) vs schedule L (worst of 37)",
"expected": 0,
"actual": 1.0,
"diff": 1.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 curve length - L (record, fillets shorten hooks)",
"detail": "min -493.4 / max -493.4 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P4 original length (+coupler b) vs schedule L (worst of 9)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 curve length - L (record, fillets shorten hooks)",
"detail": "min -0.0 / max -0.0 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P4 curve length (+coupler b) vs L (no fillet)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 original length (+coupler b) vs schedule L (worst of 22)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 curve length - L (record, fillets shorten hooks)",
"detail": "min -0.0 / max -0.0 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P5 curve length (+coupler b) vs L (no fillet)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 original length (+coupler b) vs schedule L (worst of 36)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 curve length - L (record, fillets shorten hooks)",
"detail": "min -20.6 / max -20.6 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P1 top EL",
"expected": 42106,
"actual": 42106.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 radius (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 angle vs i*360/46 (worst, deg)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 top EL",
"expected": 42106,
"actual": 42106.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 radius (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 angle vs i*360/46 (worst, deg)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 hook leg EL (footing bottom + 300)",
"expected": 25423,
"actual": 25423.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 bottom EL",
"expected": 25423,
"actual": 25423.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 radius",
"expected": 904,
"actual": 904.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 radius",
"expected": 904,
"actual": 904.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "hoop level count 68",
"detail": "68",
"result": "PASS"
},
{
"check": "C8",
"item": "hoop levels vs dim chain (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "hoop marks by zone (P4 x9, P5 x22, P3 x37)",
"detail": "",
"result": "PASS"
},
{
"check": "C8",
"item": "tie levels vs chain + 22.5 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "concrete union for cover",
"detail": "1 brep",
"result": "INFO"
},
{
"check": "C8",
"item": "P1 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "min cover to concrete surface per mark (record)",
"detail": "{\"P1\": 113.5, \"P2\": 158.5, \"P3\": 91.5, \"P4\": 98.7, \"P5\": 81.5, \"P6\": 74.0}",
"result": "INFO"
},
{
"check": "C8",
"item": "clearance P1 outer surface vs hoop inner surface (record)",
"detail": "3.0 mm",
"result": "INFO"
}
]
}
@@ -0,0 +1 @@
{"model": "C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\운곡교p2\\runs\\current\\G2.3dm", "units": "Millimeters", "tolerance": 0.001, "count": 538, "layers": {"P2::철근::기둥::P6": [140, 60, 160, true], "P2::철근::중심선": [60, 60, 60, true], "P2::철근::기둥::P3": [40, 120, 200, true], "P2::철근::기둥::P5": [90, 90, 220, true], "P2::철근::기둥::P4": [40, 170, 170, true], "P2::철근::기둥::P2": [230, 120, 40, true], "P2::철근::기둥::P1": [200, 40, 40, true], "P2::받침패드": [90, 160, 90, true], "P2::받침대좌": [190, 90, 90, true], "P2::말뚝": [110, 110, 110, true], "P2::코핑": [210, 180, 80, true], "P2::기둥": [200, 140, 90, true], "P2::기초": [120, 150, 200, true], "P2::버림콘크리트": [160, 160, 160, true]}, "objects": {"P2-R-P6-L9-135": {"layer": "P2::철근::기둥::P6", "type": "Brep", "hidden": false, "locked": false, "colour_source": 1, "colour": [31, 119, 180], "bbox": [-657.12, -657.12, 40575.5, 657.12, 657.12, 40733.5], "user": {"anchor_hosts": "P2-CP", "coupler_length": "0.000", "design_length": "2136.000", "dia": "H16", "host": "P2-CL", "id": "P2-R-P6-L9-135", "mark": "P6", "occurrence": "L9-135", "shape": "III", "src": "EL 40.703 (+22.5 on hoop); angle 135 deg"}, "faces": 7, "solid": true, "volume": "skipped"}, "P2-RC-P6-L9-135": {"layer": "P2::철근::중심선", "type": "PolyCurve", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [-649.12, -649.12, 40575.5, 649.12, 649.12, 40725.5], "user": {"anchor_hosts": "P2-CP", "coupler_length": "0.000", "design_length": "2136.000", "dia": "H16", "host": "P2-CL", "id": "P2-RC-P6-L9-135", "mark": "P6", "occurrence": "L9-135", "shape": "III", "src": "EL 40.703 (+22.5 on hoop); angle 135 deg"}, "length": 2115.398}, "P2-R-P6-L9-090": {"layer": "P2::철근::기둥::P6", "type": "Brep", "hidden": false, "locked": false, "colour_source": 1, "colour": [31, 119, 180], "bbox": [-8.0, -926.0, 40575.5, 8.0, 926.0, 40733.5], "user": {"anchor_hosts": "P2-CP", "coupler_length": "0.000", "design_length": "2136.000", "dia": "H16", "host": "P2-CL", "id": "P2-R-P6-L9-090", "mark": "P6", "occurrence": "L9-090", "shape": "III", "src": "EL 40.703 (+22.5 on hoop); angle 90 deg"}, "faces": 7, "solid": true, "volume": "skipped"}, "P2-RC-P6-L9-090": {"layer": "P2::철근::중심선", "type": "PolyCurve", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [-0.0, -918.0, 40575.5, 0.0, 918.0, 40725.5], "user": {"anchor_hosts": "P2-CP", "coupler_length": "0.000", "design_length": "2136.000", "dia": "H16", "host": "P2-CL", "id": "P2-RC-P6-L9-090", "mark": "P6", "occurrence": "L9-090", "shape": "III", "src": "EL 40.703 (+22.5 on hoop); angle 90 deg"}, "length": 2115.398}, "P2-R-P6-L9-045": {"layer": "P2::철근::기둥::P6", "type": "Brep", "hidden": false, "locked": false, "colour_source": 1, "colour": [31, 119, 180], "bbox": [-657.12, -657.12, 40575.5, 657.12, 657.12, 40733.5], "user": {"anchor_hosts": "P2-CP", "coupler_length": "0.000", "design_length": "2136.000", "dia": "H16", "host": "P2-CL", "id": "P2-R-P6-L9-045", "mark": "P6", "occurrence": "L9-045", "shape": "III", "src": "EL 40.703 (+22.5 on hoop); angle 45 deg"}, "faces": 7, "solid": true, "volume": "skipped"}, "P2-RC-P6-L9-045": {"layer": "P2::철근::중심선", "type": "PolyCurve", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [-649.12, -649.12, 40575.5, 649.12, 649.12, 40725.5], "user": {"anchor_hosts": "P2-CP", "coupler_length": "0.000", "design_length": "2136.000", "dia": "H16", "host": "P2-CL", "id": "P2-RC-P6-L9-045", "mark": "P6", "occurrence": "L9-045", "shape": "III", "src": "EL 40.703 (+22.5 on hoop); angle 45 deg"}, "length": 2115.398}, "P2-R-P6-L9-000": {"layer": "P2::철근::기둥::P6", "type": "Brep", "hidden": false, "locked": false, "colour_source": 1, "colour": [31, 119, 180], "bbox": [-926.0, -8.0, 40575.5, 926.0, 8.0, 40733.5], "user": {"anchor_hosts": "P2-CP", "coupler_length": "0.000", "design_length": "2136.000", "dia": "H16", "host": "P2-CL", "id": "P2-R-P6-L9-000", "mark": "P6", "occurrence": "L9-000", "shape": "III", "src": "EL 40.703 (+22.5 on hoop); angle 0 deg"}, "faces": 7, "solid": true, "volume": "skipped"}, "P2-RC-P6-L9-000": {"layer": "P2::철근::중심선", "type": "PolyCurve", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [-918.0, 0.0, 40575.5, 918.0, 0.0, 40725.5], "user": {"anchor_hosts": "P2-CP", "coupler_length": "0.000", "design_length": "2136.000", "dia": "H16", "host": "P2-CL", "id": "P2-RC-P6-L9-000", "mark": "P6", "occurrence": "L9-000", "shape": "III", "src": "EL 40.703 (+22.5 on hoop); angle 0 deg"}, "length": 2115.398}, "P2-R-P6-L8-135": {"layer": "P2::철근::기둥::P6", "type": "Brep", "hidden": false, "locked": false, "colour_source": 1, "colour": [31, 119, 180], "bbox": [-657.12, -657.12, 38775.5, 657.12, 657.12, 38933.5], "user": {"coupler_lLine truncated
@@ -0,0 +1,87 @@
{
"gate": "G2",
"checker": "g2_column_rebar.py",
"verdict": "PASS",
"summary": {
"total": 42,
"passed": 42,
"failed": 0,
"min_cover": {
"P1": 113.5,
"P2": 158.5,
"P3": 91.5,
"P4": 98.7,
"P5": 81.5,
"P6": 74.0
}
},
"unplanned_fails": [],
"planned_fails": [],
"negative": {
"negH": {
"move": {
"mark": "P2",
"d": [
5,
0,
0
]
},
"new_fails": [
"P2 radius (worst)"
],
"detected": true
},
"negV": {
"move": {
"mark": "P3",
"d": [
0,
0,
5
]
},
"new_fails": [
"hoop level count 68",
"hoop levels vs dim chain (worst)",
"hoop marks by zone (P4 x9, P5 x22, P3 x37)"
],
"detected": true
}
},
"reload": {
"built": 538,
"reopened": 538,
"fingerprint": 538,
"ok": true
},
"unchanged": {
"compared": 54,
"diffs": [],
"missing": [],
"ok": true,
"against": "G1_fp.json"
},
"model": "C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\운곡교p2\\runs\\current\\G2.3dm",
"secs": 68.9,
"build_steps": [
{
"name": "G1:concrete.py",
"secs": 0.27
},
{
"name": "G2:column_rebar.py",
"secs": 0.89
},
{
"name": "G2:rebar_colours.py",
"secs": 0.04
},
{
"name": "display.py",
"secs": 0.04
}
],
"inputs_sha": "7334f90ed2b05067",
"job_id": "0cdfdd37054a"
}
@@ -0,0 +1,12 @@
{
"id": "0cdfdd37054a",
"pid": 9656,
"state": "완료",
"at": "2026-10-12 16:32:59",
"log": [
"Rhino 작업 시작",
"[G2] build G1..G2",
"[G2] re-open, check, negative tests, fingerprint",
"[G2] PASS checks 42/42 (planned FAIL 0, unplanned 0) negative H/V True/True reload True unchanged True (54) 68.9s"
]
}
@@ -0,0 +1,425 @@
{
"summary": {
"total": 42,
"passed": 41,
"failed": 1,
"min_cover": {
"P1": 113.5,
"P2": 153.5,
"P3": 91.5,
"P4": 98.7,
"P5": 81.5,
"P6": 74.0
}
},
"results": [
{
"check": "C8",
"item": "P1 bar count",
"expected": 46,
"actual": 46,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 pipes closed & paired with centrelines",
"detail": "pipes 46 / centrelines 46",
"result": "PASS"
},
{
"check": "C8",
"item": "P2 bar count",
"expected": 46,
"actual": 46,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 pipes closed & paired with centrelines",
"detail": "pipes 46 / centrelines 46",
"result": "PASS"
},
{
"check": "C8",
"item": "P3 bar count",
"expected": 37,
"actual": 37,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 pipes closed & paired with centrelines",
"detail": "pipes 74 / centrelines 74",
"result": "PASS"
},
{
"check": "C8",
"item": "P4 bar count",
"expected": 9,
"actual": 9,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 pipes closed & paired with centrelines",
"detail": "pipes 18 / centrelines 18",
"result": "PASS"
},
{
"check": "C8",
"item": "P5 bar count",
"expected": 22,
"actual": 22,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 pipes closed & paired with centrelines",
"detail": "pipes 22 / centrelines 22",
"result": "PASS"
},
{
"check": "C8",
"item": "P6 bar count",
"expected": 36,
"actual": 36,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 pipes closed & paired with centrelines",
"detail": "pipes 36 / centrelines 36",
"result": "PASS"
},
{
"check": "C8",
"item": "P1 original length (+coupler b) vs schedule L (worst of 46)",
"expected": 0,
"actual": 0.071,
"diff": 0.071,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 curve length - L (record, fillets shorten hooks)",
"detail": "min 0.1 / max 0.1 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P1 curve length (+coupler b) vs L (no fillet)",
"expected": 0,
"actual": 0.071,
"diff": 0.071,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 original length (+coupler b) vs schedule L (worst of 46)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 curve length - L (record, fillets shorten hooks)",
"detail": "min 0.0 / max 0.0 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P2 curve length (+coupler b) vs L (no fillet)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 original length (+coupler b) vs schedule L (worst of 37)",
"expected": 0,
"actual": 1.0,
"diff": 1.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 curve length - L (record, fillets shorten hooks)",
"detail": "min -493.4 / max -493.4 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P4 original length (+coupler b) vs schedule L (worst of 9)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 curve length - L (record, fillets shorten hooks)",
"detail": "min -0.0 / max -0.0 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P4 curve length (+coupler b) vs L (no fillet)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 original length (+coupler b) vs schedule L (worst of 22)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 curve length - L (record, fillets shorten hooks)",
"detail": "min -0.0 / max -0.0 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P5 curve length (+coupler b) vs L (no fillet)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 original length (+coupler b) vs schedule L (worst of 36)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 curve length - L (record, fillets shorten hooks)",
"detail": "min -20.6 / max -20.6 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P1 top EL",
"expected": 42106,
"actual": 42106.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 radius (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 angle vs i*360/46 (worst, deg)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 top EL",
"expected": 42106,
"actual": 42106.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 radius (worst)",
"expected": 0,
"actual": 5.0,
"diff": 5.0,
"tol": 0.5,
"result": "FAIL"
},
{
"check": "C8",
"item": "P2 angle vs i*360/46 (worst, deg)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 hook leg EL (footing bottom + 300)",
"expected": 25423,
"actual": 25423.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 bottom EL",
"expected": 25423,
"actual": 25423.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 radius",
"expected": 904,
"actual": 904.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 radius",
"expected": 904,
"actual": 904.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "hoop level count 68",
"detail": "68",
"result": "PASS"
},
{
"check": "C8",
"item": "hoop levels vs dim chain (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "hoop marks by zone (P4 x9, P5 x22, P3 x37)",
"detail": "",
"result": "PASS"
},
{
"check": "C8",
"item": "tie levels vs chain + 22.5 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "concrete union for cover",
"detail": "1 brep",
"result": "INFO"
},
{
"check": "C8",
"item": "P1 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "min cover to concrete surface per mark (record)",
"detail": "{\"P1\": 113.5, \"P2\": 153.5, \"P3\": 91.5, \"P4\": 98.7, \"P5\": 81.5, \"P6\": 74.0}",
"result": "INFO"
},
{
"check": "C8",
"item": "clearance P1 outer surface vs hoop inner surface (record)",
"detail": "3.0 mm",
"result": "INFO"
}
]
}
@@ -0,0 +1,425 @@
{
"summary": {
"total": 42,
"passed": 39,
"failed": 3,
"min_cover": {
"P1": 113.5,
"P2": 158.5,
"P3": 91.5,
"P4": 98.7,
"P5": 81.5,
"P6": 74.0
}
},
"results": [
{
"check": "C8",
"item": "P1 bar count",
"expected": 46,
"actual": 46,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 pipes closed & paired with centrelines",
"detail": "pipes 46 / centrelines 46",
"result": "PASS"
},
{
"check": "C8",
"item": "P2 bar count",
"expected": 46,
"actual": 46,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 pipes closed & paired with centrelines",
"detail": "pipes 46 / centrelines 46",
"result": "PASS"
},
{
"check": "C8",
"item": "P3 bar count",
"expected": 37,
"actual": 37,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 pipes closed & paired with centrelines",
"detail": "pipes 74 / centrelines 74",
"result": "PASS"
},
{
"check": "C8",
"item": "P4 bar count",
"expected": 9,
"actual": 9,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 pipes closed & paired with centrelines",
"detail": "pipes 18 / centrelines 18",
"result": "PASS"
},
{
"check": "C8",
"item": "P5 bar count",
"expected": 22,
"actual": 22,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 pipes closed & paired with centrelines",
"detail": "pipes 22 / centrelines 22",
"result": "PASS"
},
{
"check": "C8",
"item": "P6 bar count",
"expected": 36,
"actual": 36,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 pipes closed & paired with centrelines",
"detail": "pipes 36 / centrelines 36",
"result": "PASS"
},
{
"check": "C8",
"item": "P1 original length (+coupler b) vs schedule L (worst of 46)",
"expected": 0,
"actual": 0.071,
"diff": 0.071,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 curve length - L (record, fillets shorten hooks)",
"detail": "min 0.1 / max 0.1 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P1 curve length (+coupler b) vs L (no fillet)",
"expected": 0,
"actual": 0.071,
"diff": 0.071,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 original length (+coupler b) vs schedule L (worst of 46)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 curve length - L (record, fillets shorten hooks)",
"detail": "min 0.0 / max 0.0 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P2 curve length (+coupler b) vs L (no fillet)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 original length (+coupler b) vs schedule L (worst of 37)",
"expected": 0,
"actual": 1.0,
"diff": 1.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 curve length - L (record, fillets shorten hooks)",
"detail": "min -493.4 / max -493.4 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P4 original length (+coupler b) vs schedule L (worst of 9)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 curve length - L (record, fillets shorten hooks)",
"detail": "min -0.0 / max -0.0 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P4 curve length (+coupler b) vs L (no fillet)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 original length (+coupler b) vs schedule L (worst of 22)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 curve length - L (record, fillets shorten hooks)",
"detail": "min -0.0 / max -0.0 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P5 curve length (+coupler b) vs L (no fillet)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 original length (+coupler b) vs schedule L (worst of 36)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 curve length - L (record, fillets shorten hooks)",
"detail": "min -20.6 / max -20.6 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P1 top EL",
"expected": 42106,
"actual": 42106.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 radius (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 angle vs i*360/46 (worst, deg)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 top EL",
"expected": 42106,
"actual": 42106.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 radius (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 angle vs i*360/46 (worst, deg)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 0.01,
"result": "PASS"
},
{
"check": "C8",
"item": "P1 hook leg EL (footing bottom + 300)",
"expected": 25423,
"actual": 25423.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 bottom EL",
"expected": 25423,
"actual": 25423.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 radius",
"expected": 904,
"actual": 904.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 radius",
"expected": 904,
"actual": 904.0,
"diff": -0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "hoop level count 68",
"detail": "69",
"result": "FAIL"
},
{
"check": "C8",
"item": "hoop levels vs dim chain (worst)",
"expected": 0,
"actual": 300.0,
"diff": 300.0,
"tol": 1.0,
"result": "FAIL"
},
{
"check": "C8",
"item": "hoop marks by zone (P4 x9, P5 x22, P3 x37)",
"detail": "",
"result": "FAIL"
},
{
"check": "C8",
"item": "tie levels vs chain + 22.5 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "concrete union for cover",
"detail": "1 brep",
"result": "INFO"
},
{
"check": "C8",
"item": "P1 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "min cover to concrete surface per mark (record)",
"detail": "{\"P1\": 113.5, \"P2\": 158.5, \"P3\": 91.5, \"P4\": 98.7, \"P5\": 81.5, \"P6\": 74.0}",
"result": "INFO"
},
{
"check": "C8",
"item": "clearance P1 outer surface vs hoop inner surface (record)",
"detail": "3.0 mm",
"result": "INFO"
}
]
}
@@ -0,0 +1,707 @@
{
"summary": {
"total": 73,
"passed": 71,
"failed": 2,
"cover": {
"B1": 87.5,
"B2": 87.5,
"B3": 90.5,
"B4": 87.5,
"B5": 58.5,
"B6": 57.5,
"B7": 90.5,
"B8": 85.5,
"B9": 69.5,
"B10": 66.5,
"B11": 92.0,
"B12": 92.0
}
},
"results": [
{
"check": "C9",
"item": "B1 bar count vs schedule",
"expected": 42,
"actual": 42,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B1 pipes closed & paired",
"detail": "42/42",
"result": "PASS"
},
{
"check": "C9",
"item": "B1 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B1 curve length - L (bend fillets)",
"detail": "min -48.3 / max -48.3",
"result": "INFO"
},
{
"check": "C9",
"item": "B2 bar count vs schedule",
"expected": 42,
"actual": 42,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 pipes closed & paired",
"detail": "42/42",
"result": "PASS"
},
{
"check": "C9",
"item": "B2 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 curve length - L (bend fillets)",
"detail": "min -48.3 / max -48.3",
"result": "INFO"
},
{
"check": "C9",
"item": "B3 bar count vs schedule",
"expected": 42,
"actual": 42,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 pipes closed & paired",
"detail": "42/42",
"result": "PASS"
},
{
"check": "C9",
"item": "B3 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 curve length - L (bend fillets)",
"detail": "min -36.7 / max -36.7",
"result": "INFO"
},
{
"check": "C9",
"item": "B4 bar count vs schedule",
"expected": 39,
"actual": 39,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B4 pipes closed & paired",
"detail": "39/39",
"result": "PASS"
},
{
"check": "C9",
"item": "B4 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B4 curve length - L (bend fillets)",
"detail": "min 0.0 / max 0.0",
"result": "INFO"
},
{
"check": "C9",
"item": "B5 bar count vs schedule",
"expected": 32,
"actual": 32,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 pipes closed & paired",
"detail": "32/32",
"result": "PASS"
},
{
"check": "C9",
"item": "B5 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 curve length - L (bend fillets)",
"detail": "min -56.0 / max -56.0",
"result": "INFO"
},
{
"check": "C9",
"item": "B6 bar count vs schedule",
"expected": 32,
"actual": 32,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B6 pipes closed & paired",
"detail": "32/32",
"result": "PASS"
},
{
"check": "C9",
"item": "B6 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B6 curve length - L (bend fillets)",
"detail": "min -56.0 / max -56.0",
"result": "INFO"
},
{
"check": "C9",
"item": "B7 bar count vs schedule",
"expected": 32,
"actual": 32,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 pipes closed & paired",
"detail": "32/32",
"result": "PASS"
},
{
"check": "C9",
"item": "B7 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 curve length - L (bend fillets)",
"detail": "min -36.7 / max -36.7",
"result": "INFO"
},
{
"check": "C9",
"item": "B8 bar count vs schedule",
"expected": 29,
"actual": 29,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B8 pipes closed & paired",
"detail": "29/29",
"result": "PASS"
},
{
"check": "C9",
"item": "B8 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B8 curve length - L (bend fillets)",
"detail": "min 0.0 / max 0.0",
"result": "INFO"
},
{
"check": "C9",
"item": "B9 bar count vs schedule",
"expected": 493,
"actual": 551,
"diff": 58,
"tol": 0,
"result": "FAIL"
},
{
"check": "C9",
"item": "B9 pipes closed & paired",
"detail": "551/551",
"result": "PASS"
},
{
"check": "C9",
"item": "B9 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 curve length - L (bend fillets)",
"detail": "min -10.3 / max -10.3",
"result": "INFO"
},
{
"check": "C9",
"item": "B10 bar count vs schedule",
"expected": 9,
"actual": 9,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 pipes closed & paired",
"detail": "9/9",
"result": "PASS"
},
{
"check": "C9",
"item": "B10 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 curve length - L (bend fillets)",
"detail": "min -73.4 / max -73.4",
"result": "INFO"
},
{
"check": "C9",
"item": "B11 bar count vs schedule",
"expected": 28,
"actual": 28,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B11 pipes closed & paired",
"detail": "28/28",
"result": "PASS"
},
{
"check": "C9",
"item": "B11 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B11 curve length - L (bend fillets)",
"detail": "min -20.6 / max -20.6",
"result": "INFO"
},
{
"check": "C9",
"item": "B12 bar count vs schedule",
"expected": 38,
"actual": 32,
"diff": -6,
"tol": 0,
"result": "FAIL"
},
{
"check": "C9",
"item": "B12 pipes closed & paired",
"detail": "32/32",
"result": "PASS"
},
{
"check": "C9",
"item": "B12 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B12 curve length - L (bend fillets)",
"detail": "min -20.6 / max -20.6",
"result": "INFO"
},
{
"check": "C9",
"item": "B1 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B4 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B6 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B8 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "bottom Y-bars B2+B4 positions vs chain (worst, n=81/81)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "bottom X-bars B6+B8 positions vs chain (worst, n=61/61)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 positions vs chain (worst, n=42/42)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B1 positions vs chain (worst, n=42/42)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 positions vs chain (worst, n=32/32)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 positions vs chain (worst, n=32/32)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 at ends and alternate from -4875",
"detail": "",
"result": "PASS"
},
{
"check": "C9",
"item": "B6 at ends and alternate from -3625",
"detail": "",
"result": "PASS"
},
{
"check": "C9",
"item": "B11 mid levels 550/950/1350/1750 [derived]",
"detail": "[550, 950, 1350, 1750]",
"result": "PASS"
},
{
"check": "C9",
"item": "B12 mid levels 550/950/1350/1750 [derived]",
"detail": "[550, 950, 1350, 1750]",
"result": "PASS"
},
{
"check": "C9",
"item": "B10 levels vs chain (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 centreline size X",
"expected": 10198,
"actual": 10198.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 centreline size Y",
"expected": 7644,
"actual": 7644.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 positions = checkerboard of 38x29 grid",
"detail": "551 / 551",
"result": "PASS"
},
{
"check": "C9",
"item": "B9 bottom z (worst of all)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 vertical extent a (bottom leg z to top of straight)",
"expected": 1995,
"actual": 1995.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B1 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B4 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B6 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B8 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B11 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B12 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "min cover to concrete exterior per mark",
"detail": "{\"B1\": 87.5, \"B2\": 87.5, \"B3\": 90.5, \"B4\": 87.5, \"B5\": 58.5, \"B6\": 57.5, \"B7\": 90.5, \"B8\": 85.5, \"B9\": 69.5, \"B10\": 66.5, \"B11\": 92.0, \"B12\": 92.0}",
"result": "INFO"
},
{
"check": "C9",
"item": "rebar pipe colour by diameter mismatches (all rebar)",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
}
]
}
@@ -0,0 +1 @@
{"model": "C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\운곡교p2\\runs\\current\\G3.3dm", "units": "Millimeters", "tolerance": 0.001, "count": 2358, "layers": {"P2::철근::기초::B9": [150, 110, 60, true], "P2::철근::중심선": [60, 60, 60, true], "P2::철근::기초::B10": [150, 110, 60, true], "P2::철근::기초::B12": [150, 110, 60, true], "P2::철근::기초::B11": [150, 110, 60, true], "P2::철근::기초::B5": [150, 110, 60, true], "P2::철근::기초::B1": [150, 110, 60, true], "P2::철근::기초::B7": [150, 110, 60, true], "P2::철근::기초::B3": [150, 110, 60, true], "P2::철근::기초::B6": [150, 110, 60, true], "P2::철근::기초::B8": [150, 110, 60, true], "P2::철근::기초::B2": [150, 110, 60, true], "P2::철근::기초::B4": [150, 110, 60, true], "P2::철근::기둥::P6": [140, 60, 160, true], "P2::철근::기둥::P3": [40, 120, 200, true], "P2::철근::기둥::P5": [90, 90, 220, true], "P2::철근::기둥::P4": [40, 170, 170, true], "P2::철근::기둥::P2": [230, 120, 40, true], "P2::철근::기둥::P1": [200, 40, 40, true], "P2::받침패드": [90, 160, 90, true], "P2::받침대좌": [190, 90, 90, true], "P2::말뚝": [110, 110, 110, true], "P2::코핑": [210, 180, 80, true], "P2::기둥": [200, 140, 90, true], "P2::기초": [120, 150, 200, true], "P2::버림콘크리트": [160, 160, 160, true]}, "objects": {"P2-R-B9-x+4625y+3250": {"layer": "P2::철근::기초::B9", "type": "Brep", "hidden": false, "locked": false, "colour_source": 1, "colour": [31, 119, 180], "bbox": [4617.0, 3242.0, 25242.5, 4721.0, 3258.0, 27265.87], "user": {"coupler_length": "0.000", "design_length": "2155.000", "dia": "H16", "host": "P2-FT", "id": "P2-R-B9-x+4625y+3250", "mark": "B9", "occurrence": "x+4625y+3250", "shape": "XI", "src": "D1 EREC grid @250 checker (i+j even) [추론]; count 493 [역산]"}, "faces": 6, "solid": true, "volume": "skipped"}, "P2-RC-B9-x+4625y+3250": {"layer": "P2::철근::중심선", "type": "PolyCurve", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [4625.0, 3250.0, 25250.5, 4721.0, 3250.0, 27265.87], "user": {"coupler_length": "0.000", "design_length": "2155.000", "dia": "H16", "host": "P2-FT", "id": "P2-RC-B9-x+4625y+3250", "mark": "B9", "occurrence": "x+4625y+3250", "shape": "XI", "src": "D1 EREC grid @250 checker (i+j even) [추론]; count 493 [역산]"}, "length": 2144.699}, "P2-R-B9-x+4625y+2750": {"layer": "P2::철근::기초::B9", "type": "Brep", "hidden": false, "locked": false, "colour_source": 1, "colour": [31, 119, 180], "bbox": [4617.0, 2742.0, 25242.5, 4721.0, 2758.0, 27265.87], "user": {"coupler_length": "0.000", "design_length": "2155.000", "dia": "H16", "host": "P2-FT", "id": "P2-R-B9-x+4625y+2750", "mark": "B9", "occurrence": "x+4625y+2750", "shape": "XI", "src": "D1 EREC grid @250 checker (i+j even) [추론]; count 493 [역산]"}, "faces": 6, "solid": true, "volume": "skipped"}, "P2-RC-B9-x+4625y+2750": {"layer": "P2::철근::중심선", "type": "PolyCurve", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [4625.0, 2750.0, 25250.5, 4721.0, 2750.0, 27265.87], "user": {"coupler_length": "0.000", "design_length": "2155.000", "dia": "H16", "host": "P2-FT", "id": "P2-RC-B9-x+4625y+2750", "mark": "B9", "occurrence": "x+4625y+2750", "shape": "XI", "src": "D1 EREC grid @250 checker (i+j even) [추론]; count 493 [역산]"}, "length": 2144.699}, "P2-R-B9-x+4625y+2250": {"layer": "P2::철근::기초::B9", "type": "Brep", "hidden": false, "locked": false, "colour_source": 1, "colour": [31, 119, 180], "bbox": [4617.0, 2242.0, 25242.5, 4721.0, 2258.0, 27265.87], "user": {"coupler_length": "0.000", "design_length": "2155.000", "dia": "H16", "host": "P2-FT", "id": "P2-R-B9-x+4625y+2250", "mark": "B9", "occurrence": "x+4625y+2250", "shape": "XI", "src": "D1 EREC grid @250 checker (i+j even) [추론]; count 493 [역산]"}, "faces": 6, "solid": true, "volume": "skipped"}, "P2-RC-B9-x+4625y+2250": {"layer": "P2::철근::중심선", "type": "PolyCurve", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [4625.0, 2250.0, 25250.5, 4721.0, 2250.0, 27265.87], "user": {"coupler_length": "0.000", "design_length": "2155.000", "dia": "H16", "host": "P2-FT", "id": "P2-RC-B9-x+4625y+2250", "mark": "B9", "occurrence": "x+4625y+2250", "shape": "XI", "src": "D1 EREC grid @250 checker (i+j even) [추론]; count 493 [역산]"}, "length": 2144.699}, "P2-R-B9-x+4625y+1750": {"layer": "P2::철근::기초::B9", "type": "Brep", "hidden": false, "locked": false, "colour_source": 1, "colour": [31, 119, 180], "bbox": [4617.0, 1742.0, 25242.5, 4721.0, 1758.0, 27265.87], "user": {"coupler_length": "0.000", "design_length": "2155.000", "dia": "H16", "host": "P2-FT", "id": "P2-R-B9-x+4625y+1750", "mark": "B9", "occurrence": "x+4625y+1750", "shape": "XI", "src": "D1 EREC grid @250 checker (i+j even) [추론]; count 493 [역산]"}, "faces": 6, "solid": true, "voluLine truncated
@@ -0,0 +1,104 @@
{
"gate": "G3",
"checker": "g3_footing_rebar.py",
"verdict": "PASS",
"summary": {
"total": 73,
"passed": 71,
"failed": 2,
"cover": {
"B1": 87.5,
"B2": 87.5,
"B3": 90.5,
"B4": 87.5,
"B5": 58.5,
"B6": 57.5,
"B7": 90.5,
"B8": 85.5,
"B9": 69.5,
"B10": 66.5,
"B11": 92.0,
"B12": 92.0
}
},
"unplanned_fails": [],
"planned_fails": [
{
"item": "B9 bar count vs schedule",
"reason": "작도 551본(38×29 엇갈림) 채택 vs D3 493본(P1 값 그대로)"
},
{
"item": "B12 bar count vs schedule",
"reason": "작도 32본 채택 vs D3 38본 (P1 F2 규칙, P1도 28/34)"
}
],
"negative": {
"negH": {
"move": {
"mark": "B4",
"d": [
5,
0,
0
]
},
"new_fails": [
"bottom Y-bars B2+B4 positions vs chain (worst, n=81/81)"
],
"detected": true
},
"negV": {
"move": {
"mark": "B9",
"d": [
0,
0,
5
]
},
"new_fails": [
"B9 bottom z (worst of all)"
],
"detected": true
}
},
"reload": {
"built": 2358,
"reopened": 2358,
"fingerprint": 2358,
"ok": true
},
"unchanged": {
"compared": 538,
"diffs": [],
"missing": [],
"ok": true,
"against": "G2_fp.json"
},
"model": "C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\운곡교p2\\runs\\current\\G3.3dm",
"secs": 73.1,
"build_steps": [
{
"name": "G1:concrete.py",
"secs": 0.26
},
{
"name": "G2:column_rebar.py",
"secs": 0.92
},
{
"name": "G3:footing_rebar.py",
"secs": 2.78
},
{
"name": "G3:rebar_colours.py",
"secs": 0.11
},
{
"name": "display.py",
"secs": 0.05
}
],
"inputs_sha": "7334f90ed2b05067",
"job_id": "d3f8a9bf3b0b"
}
@@ -0,0 +1,12 @@
{
"id": "d3f8a9bf3b0b",
"pid": 9656,
"state": "완료",
"at": "2026-10-12 16:36:16",
"log": [
"Rhino 작업 시작",
"[G3] build G1..G3",
"[G3] re-open, check, negative tests, fingerprint",
"[G3] PASS checks 71/73 (planned FAIL 2, unplanned 0) negative H/V True/True reload True unchanged True (538) 73.1s"
]
}
@@ -0,0 +1,707 @@
{
"summary": {
"total": 73,
"passed": 70,
"failed": 3,
"cover": {
"B1": 87.5,
"B2": 87.5,
"B3": 90.5,
"B4": 87.5,
"B5": 58.5,
"B6": 57.5,
"B7": 90.5,
"B8": 85.5,
"B9": 69.5,
"B10": 66.5,
"B11": 92.0,
"B12": 92.0
}
},
"results": [
{
"check": "C9",
"item": "B1 bar count vs schedule",
"expected": 42,
"actual": 42,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B1 pipes closed & paired",
"detail": "42/42",
"result": "PASS"
},
{
"check": "C9",
"item": "B1 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B1 curve length - L (bend fillets)",
"detail": "min -48.3 / max -48.3",
"result": "INFO"
},
{
"check": "C9",
"item": "B2 bar count vs schedule",
"expected": 42,
"actual": 42,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 pipes closed & paired",
"detail": "42/42",
"result": "PASS"
},
{
"check": "C9",
"item": "B2 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 curve length - L (bend fillets)",
"detail": "min -48.3 / max -48.3",
"result": "INFO"
},
{
"check": "C9",
"item": "B3 bar count vs schedule",
"expected": 42,
"actual": 42,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 pipes closed & paired",
"detail": "42/42",
"result": "PASS"
},
{
"check": "C9",
"item": "B3 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 curve length - L (bend fillets)",
"detail": "min -36.7 / max -36.7",
"result": "INFO"
},
{
"check": "C9",
"item": "B4 bar count vs schedule",
"expected": 39,
"actual": 39,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B4 pipes closed & paired",
"detail": "39/39",
"result": "PASS"
},
{
"check": "C9",
"item": "B4 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B4 curve length - L (bend fillets)",
"detail": "min 0.0 / max 0.0",
"result": "INFO"
},
{
"check": "C9",
"item": "B5 bar count vs schedule",
"expected": 32,
"actual": 32,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 pipes closed & paired",
"detail": "32/32",
"result": "PASS"
},
{
"check": "C9",
"item": "B5 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 curve length - L (bend fillets)",
"detail": "min -56.0 / max -56.0",
"result": "INFO"
},
{
"check": "C9",
"item": "B6 bar count vs schedule",
"expected": 32,
"actual": 32,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B6 pipes closed & paired",
"detail": "32/32",
"result": "PASS"
},
{
"check": "C9",
"item": "B6 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B6 curve length - L (bend fillets)",
"detail": "min -56.0 / max -56.0",
"result": "INFO"
},
{
"check": "C9",
"item": "B7 bar count vs schedule",
"expected": 32,
"actual": 32,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 pipes closed & paired",
"detail": "32/32",
"result": "PASS"
},
{
"check": "C9",
"item": "B7 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 curve length - L (bend fillets)",
"detail": "min -36.7 / max -36.7",
"result": "INFO"
},
{
"check": "C9",
"item": "B8 bar count vs schedule",
"expected": 29,
"actual": 29,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B8 pipes closed & paired",
"detail": "29/29",
"result": "PASS"
},
{
"check": "C9",
"item": "B8 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B8 curve length - L (bend fillets)",
"detail": "min 0.0 / max 0.0",
"result": "INFO"
},
{
"check": "C9",
"item": "B9 bar count vs schedule",
"expected": 493,
"actual": 551,
"diff": 58,
"tol": 0,
"result": "FAIL"
},
{
"check": "C9",
"item": "B9 pipes closed & paired",
"detail": "551/551",
"result": "PASS"
},
{
"check": "C9",
"item": "B9 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 curve length - L (bend fillets)",
"detail": "min -10.3 / max -10.3",
"result": "INFO"
},
{
"check": "C9",
"item": "B10 bar count vs schedule",
"expected": 9,
"actual": 9,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 pipes closed & paired",
"detail": "9/9",
"result": "PASS"
},
{
"check": "C9",
"item": "B10 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 curve length - L (bend fillets)",
"detail": "min -73.4 / max -73.4",
"result": "INFO"
},
{
"check": "C9",
"item": "B11 bar count vs schedule",
"expected": 28,
"actual": 28,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B11 pipes closed & paired",
"detail": "28/28",
"result": "PASS"
},
{
"check": "C9",
"item": "B11 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B11 curve length - L (bend fillets)",
"detail": "min -20.6 / max -20.6",
"result": "INFO"
},
{
"check": "C9",
"item": "B12 bar count vs schedule",
"expected": 38,
"actual": 32,
"diff": -6,
"tol": 0,
"result": "FAIL"
},
{
"check": "C9",
"item": "B12 pipes closed & paired",
"detail": "32/32",
"result": "PASS"
},
{
"check": "C9",
"item": "B12 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B12 curve length - L (bend fillets)",
"detail": "min -20.6 / max -20.6",
"result": "INFO"
},
{
"check": "C9",
"item": "B1 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B4 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B6 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B8 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "bottom Y-bars B2+B4 positions vs chain (worst, n=81/81)",
"expected": 0,
"actual": 5.0,
"diff": 5.0,
"tol": 1.0,
"result": "FAIL"
},
{
"check": "C9",
"item": "bottom X-bars B6+B8 positions vs chain (worst, n=61/61)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 positions vs chain (worst, n=42/42)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B1 positions vs chain (worst, n=42/42)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 positions vs chain (worst, n=32/32)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 positions vs chain (worst, n=32/32)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 at ends and alternate from -4875",
"detail": "",
"result": "PASS"
},
{
"check": "C9",
"item": "B6 at ends and alternate from -3625",
"detail": "",
"result": "PASS"
},
{
"check": "C9",
"item": "B11 mid levels 550/950/1350/1750 [derived]",
"detail": "[550, 950, 1350, 1750]",
"result": "PASS"
},
{
"check": "C9",
"item": "B12 mid levels 550/950/1350/1750 [derived]",
"detail": "[550, 950, 1350, 1750]",
"result": "PASS"
},
{
"check": "C9",
"item": "B10 levels vs chain (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 centreline size X",
"expected": 10198,
"actual": 10198.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 centreline size Y",
"expected": 7644,
"actual": 7644.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 positions = checkerboard of 38x29 grid",
"detail": "551 / 551",
"result": "PASS"
},
{
"check": "C9",
"item": "B9 bottom z (worst of all)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 vertical extent a (bottom leg z to top of straight)",
"expected": 1995,
"actual": 1995.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B1 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B4 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B6 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B8 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B11 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B12 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "min cover to concrete exterior per mark",
"detail": "{\"B1\": 87.5, \"B2\": 87.5, \"B3\": 90.5, \"B4\": 87.5, \"B5\": 58.5, \"B6\": 57.5, \"B7\": 90.5, \"B8\": 85.5, \"B9\": 69.5, \"B10\": 66.5, \"B11\": 92.0, \"B12\": 92.0}",
"result": "INFO"
},
{
"check": "C9",
"item": "rebar pipe colour by diameter mismatches (all rebar)",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
}
]
}
@@ -0,0 +1,707 @@
{
"summary": {
"total": 73,
"passed": 70,
"failed": 3,
"cover": {
"B1": 87.5,
"B2": 87.5,
"B3": 90.5,
"B4": 87.5,
"B5": 58.5,
"B6": 57.5,
"B7": 90.5,
"B8": 85.5,
"B9": 64.5,
"B10": 66.5,
"B11": 92.0,
"B12": 92.0
}
},
"results": [
{
"check": "C9",
"item": "B1 bar count vs schedule",
"expected": 42,
"actual": 42,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B1 pipes closed & paired",
"detail": "42/42",
"result": "PASS"
},
{
"check": "C9",
"item": "B1 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B1 curve length - L (bend fillets)",
"detail": "min -48.3 / max -48.3",
"result": "INFO"
},
{
"check": "C9",
"item": "B2 bar count vs schedule",
"expected": 42,
"actual": 42,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 pipes closed & paired",
"detail": "42/42",
"result": "PASS"
},
{
"check": "C9",
"item": "B2 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 curve length - L (bend fillets)",
"detail": "min -48.3 / max -48.3",
"result": "INFO"
},
{
"check": "C9",
"item": "B3 bar count vs schedule",
"expected": 42,
"actual": 42,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 pipes closed & paired",
"detail": "42/42",
"result": "PASS"
},
{
"check": "C9",
"item": "B3 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 curve length - L (bend fillets)",
"detail": "min -36.7 / max -36.7",
"result": "INFO"
},
{
"check": "C9",
"item": "B4 bar count vs schedule",
"expected": 39,
"actual": 39,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B4 pipes closed & paired",
"detail": "39/39",
"result": "PASS"
},
{
"check": "C9",
"item": "B4 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B4 curve length - L (bend fillets)",
"detail": "min 0.0 / max 0.0",
"result": "INFO"
},
{
"check": "C9",
"item": "B5 bar count vs schedule",
"expected": 32,
"actual": 32,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 pipes closed & paired",
"detail": "32/32",
"result": "PASS"
},
{
"check": "C9",
"item": "B5 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 curve length - L (bend fillets)",
"detail": "min -56.0 / max -56.0",
"result": "INFO"
},
{
"check": "C9",
"item": "B6 bar count vs schedule",
"expected": 32,
"actual": 32,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B6 pipes closed & paired",
"detail": "32/32",
"result": "PASS"
},
{
"check": "C9",
"item": "B6 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B6 curve length - L (bend fillets)",
"detail": "min -56.0 / max -56.0",
"result": "INFO"
},
{
"check": "C9",
"item": "B7 bar count vs schedule",
"expected": 32,
"actual": 32,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 pipes closed & paired",
"detail": "32/32",
"result": "PASS"
},
{
"check": "C9",
"item": "B7 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 curve length - L (bend fillets)",
"detail": "min -36.7 / max -36.7",
"result": "INFO"
},
{
"check": "C9",
"item": "B8 bar count vs schedule",
"expected": 29,
"actual": 29,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B8 pipes closed & paired",
"detail": "29/29",
"result": "PASS"
},
{
"check": "C9",
"item": "B8 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B8 curve length - L (bend fillets)",
"detail": "min 0.0 / max 0.0",
"result": "INFO"
},
{
"check": "C9",
"item": "B9 bar count vs schedule",
"expected": 493,
"actual": 551,
"diff": 58,
"tol": 0,
"result": "FAIL"
},
{
"check": "C9",
"item": "B9 pipes closed & paired",
"detail": "551/551",
"result": "PASS"
},
{
"check": "C9",
"item": "B9 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 curve length - L (bend fillets)",
"detail": "min -10.3 / max -10.3",
"result": "INFO"
},
{
"check": "C9",
"item": "B10 bar count vs schedule",
"expected": 9,
"actual": 9,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 pipes closed & paired",
"detail": "9/9",
"result": "PASS"
},
{
"check": "C9",
"item": "B10 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 curve length - L (bend fillets)",
"detail": "min -73.4 / max -73.4",
"result": "INFO"
},
{
"check": "C9",
"item": "B11 bar count vs schedule",
"expected": 28,
"actual": 28,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B11 pipes closed & paired",
"detail": "28/28",
"result": "PASS"
},
{
"check": "C9",
"item": "B11 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B11 curve length - L (bend fillets)",
"detail": "min -20.6 / max -20.6",
"result": "INFO"
},
{
"check": "C9",
"item": "B12 bar count vs schedule",
"expected": 38,
"actual": 32,
"diff": -6,
"tol": 0,
"result": "FAIL"
},
{
"check": "C9",
"item": "B12 pipes closed & paired",
"detail": "32/32",
"result": "PASS"
},
{
"check": "C9",
"item": "B12 original length vs L (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B12 curve length - L (bend fillets)",
"detail": "min -20.6 / max -20.6",
"result": "INFO"
},
{
"check": "C9",
"item": "B1 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B4 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B6 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B8 layer z (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "bottom Y-bars B2+B4 positions vs chain (worst, n=81/81)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "bottom X-bars B6+B8 positions vs chain (worst, n=61/61)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 positions vs chain (worst, n=42/42)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B1 positions vs chain (worst, n=42/42)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 positions vs chain (worst, n=32/32)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 positions vs chain (worst, n=32/32)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 at ends and alternate from -4875",
"detail": "",
"result": "PASS"
},
{
"check": "C9",
"item": "B6 at ends and alternate from -3625",
"detail": "",
"result": "PASS"
},
{
"check": "C9",
"item": "B11 mid levels 550/950/1350/1750 [derived]",
"detail": "[550, 950, 1350, 1750]",
"result": "PASS"
},
{
"check": "C9",
"item": "B12 mid levels 550/950/1350/1750 [derived]",
"detail": "[550, 950, 1350, 1750]",
"result": "PASS"
},
{
"check": "C9",
"item": "B10 levels vs chain (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 centreline size X",
"expected": 10198,
"actual": 10198.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 centreline size Y",
"expected": 7644,
"actual": 7644.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 positions = checkerboard of 38x29 grid",
"detail": "551 / 551",
"result": "PASS"
},
{
"check": "C9",
"item": "B9 bottom z (worst of all)",
"expected": 0,
"actual": 5.0,
"diff": 5.0,
"tol": 1.0,
"result": "FAIL"
},
{
"check": "C9",
"item": "B9 vertical extent a (bottom leg z to top of straight)",
"expected": 1995,
"actual": 1995.0,
"diff": -0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B1 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B2 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B3 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B4 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B6 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B8 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B10 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B11 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B12 sample points outside footing",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "min cover to concrete exterior per mark",
"detail": "{\"B1\": 87.5, \"B2\": 87.5, \"B3\": 90.5, \"B4\": 87.5, \"B5\": 58.5, \"B6\": 57.5, \"B7\": 90.5, \"B8\": 85.5, \"B9\": 64.5, \"B10\": 66.5, \"B11\": 92.0, \"B12\": 92.0}",
"result": "INFO"
},
{
"check": "C9",
"item": "rebar pipe colour by diameter mismatches (all rebar)",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
}
]
}
@@ -0,0 +1 @@
{"model": "C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\운곡교p2\\runs\\current\\G4.3dm", "units": "Millimeters", "tolerance": 0.001, "count": 3330, "layers": {"P2::철근::코핑::S2": [120, 120, 160, true], "P2::철근::중심선": [60, 60, 60, true], "P2::철근::코핑::S1": [120, 120, 160, true], "P2::철근::코핑::C16": [120, 120, 160, true], "P2::철근::코핑::C15": [120, 120, 160, true], "P2::철근::코핑::C14": [120, 120, 160, true], "P2::철근::코핑::C13": [120, 120, 160, true], "P2::철근::코핑::C12": [120, 120, 160, true], "P2::철근::코핑::C9": [120, 120, 160, true], "P2::철근::코핑::C11": [120, 120, 160, true], "P2::철근::코핑::C10": [120, 120, 160, true], "P2::철근::코핑::C8": [120, 120, 160, true], "P2::철근::코핑::C7": [120, 120, 160, true], "P2::철근::코핑::C6": [120, 120, 160, true], "P2::철근::코핑::C3": [120, 120, 160, true], "P2::철근::코핑::C5": [120, 120, 160, true], "P2::철근::코핑::C2": [120, 120, 160, true], "P2::철근::코핑::C4": [120, 120, 160, true], "P2::철근::코핑::C1": [120, 120, 160, true], "P2::철근::기초::B9": [150, 110, 60, true], "P2::철근::기초::B10": [150, 110, 60, true], "P2::철근::기초::B12": [150, 110, 60, true], "P2::철근::기초::B11": [150, 110, 60, true], "P2::철근::기초::B5": [150, 110, 60, true], "P2::철근::기초::B1": [150, 110, 60, true], "P2::철근::기초::B7": [150, 110, 60, true], "P2::철근::기초::B3": [150, 110, 60, true], "P2::철근::기초::B6": [150, 110, 60, true], "P2::철근::기초::B8": [150, 110, 60, true], "P2::철근::기초::B2": [150, 110, 60, true], "P2::철근::기초::B4": [150, 110, 60, true], "P2::철근::기둥::P6": [140, 60, 160, true], "P2::철근::기둥::P3": [40, 120, 200, true], "P2::철근::기둥::P5": [90, 90, 220, true], "P2::철근::기둥::P4": [40, 170, 170, true], "P2::철근::기둥::P2": [230, 120, 40, true], "P2::철근::기둥::P1": [200, 40, 40, true], "P2::받침패드": [90, 160, 90, true], "P2::받침대좌": [190, 90, 90, true], "P2::말뚝": [110, 110, 110, true], "P2::코핑": [210, 180, 80, true], "P2::기둥": [200, 140, 90, true], "P2::기초": [120, 150, 200, true], "P2::버림콘크리트": [160, 160, 160, true]}, "objects": {"P2-R-S2-g5a+1200": {"layer": "P2::철근::코핑::S2", "type": "Brep", "hidden": false, "locked": false, "colour_source": 1, "colour": [44, 160, 44], "bbox": [4517.88, 1108.02, 41947.8, 5635.28, 1186.27, 42657.3], "user": {"coupler_length": "0.000", "design_length": "2500.000", "dia": "H19", "host": "P2-CP", "id": "P2-R-S2-g5a+1200", "mark": "S2", "occurrence": "g5a+1200", "shape": "III", "src": "girder 5 pedestal; lower layer"}, "faces": 7, "solid": true, "volume": "skipped"}, "P2-RC-S2-g5a+1200": {"layer": "P2::철근::중심선", "type": "PolyCurve", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [4527.38, 1117.52, 41947.8, 5625.78, 1176.77, 42647.8], "user": {"coupler_length": "0.000", "design_length": "2500.000", "dia": "H19", "host": "P2-CP", "id": "P2-RC-S2-g5a+1200", "mark": "S2", "occurrence": "g5a+1200", "shape": "III", "src": "girder 5 pedestal; lower layer"}, "length": 2463.303}, "P2-R-S2-g5a+1125": {"layer": "P2::철근::코핑::S2", "type": "Brep", "hidden": false, "locked": false, "colour_source": 1, "colour": [44, 160, 44], "bbox": [4513.84, 1033.13, 41947.8, 5631.24, 1111.38, 42657.3], "user": {"coupler_length": "0.000", "design_length": "2500.000", "dia": "H19", "host": "P2-CP", "id": "P2-R-S2-g5a+1125", "mark": "S2", "occurrence": "g5a+1125", "shape": "III", "src": "girder 5 pedestal; lower layer"}, "faces": 7, "solid": true, "volume": "skipped"}, "P2-RC-S2-g5a+1125": {"layer": "P2::철근::중심선", "type": "PolyCurve", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [4523.34, 1042.63, 41947.8, 5621.74, 1101.88, 42647.8], "user": {"coupler_length": "0.000", "design_length": "2500.000", "dia": "H19", "host": "P2-CP", "id": "P2-RC-S2-g5a+1125", "mark": "S2", "occurrence": "g5a+1125", "shape": "III", "src": "girder 5 pedestal; lower layer"}, "length": 2463.303}, "P2-R-S2-g5a+1000": {"layer": "P2::철근::코핑::S2", "type": "Brep", "hidden": false, "locked": false, "colour_source": 1, "colour": [44, 160, 44], "bbox": [4507.11, 908.31, 41947.8, 5624.51, 986.56, 42657.3], "user": {"coupler_length": "0.000", "design_length": "2500.000", "dia": "H19", "host": "P2-CP", "id": "P2-R-S2-g5a+1000", "mark": "S2", "occurrence": "g5a+1000", "shape": "III", "src": "girder 5 pedestal; lower layer"}, "faces": 7, "solid": true, "volume": "skipped"}, "P2-RC-S2-g5a+1000": {"layer": "P2::철근::중심선", "type": "PolyCurve", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [4516.61, 917.81, 41947.8, 5615.01, 977.06, 42647.8], "user": {"coupler_length": "0.000", "design_length": "2500.000", "dia": "H19", "host": "P2-CP", "id": "P2-RC-S2-g5a+1000", "mark"Line truncated
@@ -0,0 +1,127 @@
{
"gate": "G4",
"checker": "g4_coping_rebar.py",
"verdict": "PASS",
"summary": {
"total": 116,
"passed": 111,
"failed": 5,
"cover": {
"C1": 85.2,
"C2": 85.4,
"C3": 87.1,
"C4": 85.2,
"C5": 85.4,
"C6": 87.1,
"C7": 84.4,
"C8": 84.4,
"C9": 87.4,
"C10": 87.4,
"C11": 87.5,
"C12": 87.4,
"C13": 87.4,
"C14": 90.5,
"C15": 90.5,
"C16": 90.5,
"S1": 40.5,
"S2": 90.5
}
},
"unplanned_fails": [],
"planned_fails": [
{
"item": "C9 original length vs L (drawn widths ['1160.0', '1740.0'], K1 decision)",
"reason": "작도 폭 채택(K1)"
},
{
"item": "C10 original length vs L (drawn widths ['1160.0', '1740.0'], K1 decision)",
"reason": "작도 폭 채택(K1)"
},
{
"item": "C11 original length vs L (drawn widths ['1160.0', '1740.0'], K1 decision)",
"reason": "작도 폭 채택(K1)"
},
{
"item": "C12 original length vs L (drawn widths ['1106.0', '1686.0'], K1 decision)",
"reason": "작도 폭 채택(C12·C13 drawn width)"
},
{
"item": "C13 original length vs L (drawn widths ['1106.0', '1686.0'], K1 decision)",
"reason": "작도 폭 채택(C12·C13 drawn width)"
}
],
"negative": {
"negH": {
"move": {
"mark": "C11",
"d": [
5,
0,
0
]
},
"new_fails": [
"C11 stirrup X positions",
"C11 3 stirrups per position"
],
"detected": true
},
"negV": {
"move": {
"mark": "S1",
"d": [
0,
0,
5
]
},
"new_fails": [
"S1 EL = step top - 50 (worst)"
],
"detected": true
}
},
"reload": {
"built": 3330,
"reopened": 3330,
"fingerprint": 3330,
"ok": true
},
"unchanged": {
"compared": 2358,
"diffs": [],
"missing": [],
"ok": true,
"against": "G3_fp.json"
},
"model": "C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\운곡교p2\\runs\\current\\G4.3dm",
"secs": 87.1,
"build_steps": [
{
"name": "G1:concrete.py",
"secs": 0.25
},
{
"name": "G2:column_rebar.py",
"secs": 0.91
},
{
"name": "G3:footing_rebar.py",
"secs": 2.76
},
{
"name": "G4:coping_rebar.py",
"secs": 2.61
},
{
"name": "G4:rebar_colours.py",
"secs": 0.17
},
{
"name": "display.py",
"secs": 0.06
}
],
"inputs_sha": "7334f90ed2b05067",
"job_id": "150bc2e9ace0"
}
@@ -0,0 +1,12 @@
{
"id": "150bc2e9ace0",
"pid": 9656,
"state": "완료",
"at": "2026-10-12 16:54:14",
"log": [
"Rhino 작업 시작",
"[G4] build G1..G4",
"[G4] re-open, check, negative tests, fingerprint",
"[G4] PASS checks 111/116 (planned FAIL 5, unplanned 0) negative H/V True/True reload True unchanged True (2358) 87.1s"
]
}
@@ -0,0 +1 @@
{"model": "C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\운곡교p2\\runs\\current\\G5.3dm", "units": "Millimeters", "tolerance": 0.001, "count": 3350, "layers": {"P2::솔플레이트": [150, 150, 150, true], "P2::교량받침": [0, 0, 0, true], "P2::철근::코핑::S2": [120, 120, 160, true], "P2::철근::중심선": [60, 60, 60, true], "P2::철근::코핑::S1": [120, 120, 160, true], "P2::철근::코핑::C16": [120, 120, 160, true], "P2::철근::코핑::C15": [120, 120, 160, true], "P2::철근::코핑::C14": [120, 120, 160, true], "P2::철근::코핑::C13": [120, 120, 160, true], "P2::철근::코핑::C12": [120, 120, 160, true], "P2::철근::코핑::C9": [120, 120, 160, true], "P2::철근::코핑::C11": [120, 120, 160, true], "P2::철근::코핑::C10": [120, 120, 160, true], "P2::철근::코핑::C8": [120, 120, 160, true], "P2::철근::코핑::C7": [120, 120, 160, true], "P2::철근::코핑::C6": [120, 120, 160, true], "P2::철근::코핑::C3": [120, 120, 160, true], "P2::철근::코핑::C5": [120, 120, 160, true], "P2::철근::코핑::C2": [120, 120, 160, true], "P2::철근::코핑::C4": [120, 120, 160, true], "P2::철근::코핑::C1": [120, 120, 160, true], "P2::철근::기초::B9": [150, 110, 60, true], "P2::철근::기초::B10": [150, 110, 60, true], "P2::철근::기초::B12": [150, 110, 60, true], "P2::철근::기초::B11": [150, 110, 60, true], "P2::철근::기초::B5": [150, 110, 60, true], "P2::철근::기초::B1": [150, 110, 60, true], "P2::철근::기초::B7": [150, 110, 60, true], "P2::철근::기초::B3": [150, 110, 60, true], "P2::철근::기초::B6": [150, 110, 60, true], "P2::철근::기초::B8": [150, 110, 60, true], "P2::철근::기초::B2": [150, 110, 60, true], "P2::철근::기초::B4": [150, 110, 60, true], "P2::철근::기둥::P6": [140, 60, 160, true], "P2::철근::기둥::P3": [40, 120, 200, true], "P2::철근::기둥::P5": [90, 90, 220, true], "P2::철근::기둥::P4": [40, 170, 170, true], "P2::철근::기둥::P2": [230, 120, 40, true], "P2::철근::기둥::P1": [200, 40, 40, true], "P2::받침패드": [90, 160, 90, true], "P2::받침대좌": [190, 90, 90, true], "P2::말뚝": [110, 110, 110, true], "P2::코핑": [210, 180, 80, true], "P2::기둥": [200, 140, 90, true], "P2::기초": [120, 150, 200, true], "P2::버림콘크리트": [160, 160, 160, true]}, "objects": {"P2-SP10": {"layer": "P2::솔플레이트", "type": "Brep", "hidden": false, "locked": false, "colour_source": 1, "colour": [150, 150, 150], "bbox": [4699.85, 188.49, 43117.8, 5364.55, 1008.11, 43155.4], "user": {"L": "800", "S": "-1.901", "T": "30", "W": "640", "end_thick": "37.60/22.40", "id": "P2-SP10", "no": "10", "role": "sole plate", "src": "D2 솔플레이트 상세 TABLE; slope along pad axis, thick end -Y [HITL]"}, "faces": 6, "solid": true, "volume": 15360000.0}, "P2-BB10": {"layer": "P2::교량받침", "type": "Brep", "hidden": false, "locked": false, "colour_source": 1, "colour": [0, 0, 0], "bbox": [4751.39, 240.03, 42952.8, 5313.01, 956.57, 43117.8], "user": {"el_x": "42953", "id": "P2-BB10", "no": "10", "role": "bridge bearing", "size": "700x540x165", "src": "D2 ELEVATION TABLE h3, (L-100)x(W-100) per user 2026-10-08"}, "faces": 6, "solid": true, "volume": 62370000.0}, "P2-SP09": {"layer": "P2::솔플레이트", "type": "Brep", "hidden": false, "locked": false, "colour_source": 1, "colour": [150, 150, 150], "bbox": [2197.55, 188.49, 43044.8, 2862.25, 1008.11, 43082.41], "user": {"L": "800", "S": "-1.903", "T": "30", "W": "640", "end_thick": "37.61/22.39", "id": "P2-SP09", "no": "9", "role": "sole plate", "src": "D2 솔플레이트 상세 TABLE; slope along pad axis, thick end -Y [HITL]"}, "faces": 6, "solid": true, "volume": 15360000.0}, "P2-BB09": {"layer": "P2::교량받침", "type": "Brep", "hidden": false, "locked": false, "colour_source": 1, "colour": [0, 0, 0], "bbox": [2249.09, 240.03, 42879.8, 2810.71, 956.57, 43044.8], "user": {"el_x": "42880", "id": "P2-BB09", "no": "9", "role": "bridge bearing", "size": "700x540x165", "src": "D2 ELEVATION TABLE h3, (L-100)x(W-100) per user 2026-10-08"}, "faces": 6, "solid": true, "volume": 62370000.0}, "P2-SP08": {"layer": "P2::솔플레이트", "type": "Brep", "hidden": false, "locked": false, "colour_source": 1, "colour": [150, 150, 150], "bbox": [-359.83, 186.77, 42971.9, 414.83, 1009.83, 43009.52], "user": {"L": "800", "S": "-1.905", "T": "30", "W": "750", "end_thick": "37.62/22.38", "id": "P2-SP08", "no": "8", "role": "sole plate", "src": "D2 솔플레이트 상세 TABLE; slope along pad axis, thick end -Y [HITL]"}, "faces": 6, "solid": true, "volume": 18000000.0}, "P2-BB08": {"layer": "P2::교량받침", "type": "Brep", "hidden": false, "locked": false, "colour_source": 1, "colour": [0, 0, 0], "bbox": [-308.29, 238.31, 42806.9, 363.29, 958.29, 42971.9], "user": {"el_x": "42807", "id": "P2-BB08", "no": "8", "role": "bridge bearing", "size": "700x650x165", "src": "D2 ELEVATION TABLE h3, (L-100)x(W-100) per user 2026-1Line truncated
@@ -0,0 +1,89 @@
{
"gate": "G5",
"checker": "g5_bearings.py",
"verdict": "PASS",
"summary": {
"total": 183,
"passed": 183,
"failed": 0
},
"unplanned_fails": [],
"planned_fails": [],
"negative": {
"negH": {
"move": {
"id": "BB05",
"d": [
5,
0,
0
]
},
"new_fails": [
"NO.5 bearing plan centre offset from pad (mm)"
],
"detected": true
},
"negV": {
"move": {
"id": "SP08",
"d": [
0,
0,
5
]
},
"new_fails": [
"NO.8 sole plate bottom = bearing top"
],
"detected": true
}
},
"reload": {
"built": 3350,
"reopened": 3350,
"fingerprint": 3350,
"ok": true
},
"unchanged": {
"compared": 3330,
"diffs": [],
"missing": [],
"ok": true,
"against": "G4_fp.json"
},
"model": "C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\운곡교p2\\runs\\current\\G5.3dm",
"secs": 39.0,
"build_steps": [
{
"name": "G1:concrete.py",
"secs": 0.28
},
{
"name": "G2:column_rebar.py",
"secs": 0.93
},
{
"name": "G3:footing_rebar.py",
"secs": 2.76
},
{
"name": "G4:coping_rebar.py",
"secs": 2.62
},
{
"name": "G4:rebar_colours.py",
"secs": 0.15
},
{
"name": "G5:bearings.py",
"secs": 0.04
},
{
"name": "display.py",
"secs": 0.04
}
],
"inputs_sha": "7334f90ed2b05067",
"job_id": "5cb220c49479"
}
@@ -0,0 +1,12 @@
{
"id": "5cb220c49479",
"pid": 9656,
"state": "완료",
"at": "2026-10-12 17:00:42",
"log": [
"Rhino 작업 시작",
"[G5] build G1..G5",
"[G5] re-open, check, negative tests, fingerprint",
"[G5] PASS checks 183/183 (planned FAIL 0, unplanned 0) negative H/V True/True reload True unchanged True (3330) 39.0s"
]
}
@@ -0,0 +1,37 @@
{
"G1": {
"decision": "승인",
"by": "심영표",
"note": "",
"at": "2026-10-12 16:31:42",
"inputs_sha": "7334f90ed2b05067"
},
"G2": {
"decision": "승인",
"by": "심영표",
"note": "",
"at": "2026-10-12 16:33:12",
"inputs_sha": "7334f90ed2b05067"
},
"G3": {
"decision": "승인",
"by": "심영표",
"note": "",
"at": "2026-10-12 16:52:42",
"inputs_sha": "7334f90ed2b05067"
},
"G4": {
"decision": "승인",
"by": "심영표",
"note": "",
"at": "2026-10-12 16:59:57",
"inputs_sha": "7334f90ed2b05067"
},
"G5": {
"decision": "승인",
"by": "심영표",
"note": "일괄 실행 자동 승인",
"at": "2026-10-12 17:41:24",
"inputs_sha": "7334f90ed2b05067"
}
}
@@ -0,0 +1,9 @@
{
"state": "완료",
"by": "심영표",
"pid": 15560,
"at": "2026-10-12 17:41:24",
"log": [
"G5 기존 PASS 결과 183/183 (계획 FAIL 0) → 승인 (재실행 없음)"
]
}
@@ -0,0 +1,10 @@
{
"chapters_missing": [],
"vocab_bad": [],
"finding_rows": 7,
"finding_rows_without_source": 0,
"schedule_rows": 37,
"schedule_marks": 37,
"gate_rows": 5,
"ok": true
}
@@ -0,0 +1,178 @@
# 운곡교p2 교각 모델링 검토보고서 (초안)
> 앱이 게이트 결과·도면 표·승인 기록으로 자동 작성한 **초안**입니다. '오류'·'불일치' 판정과 3~5장의 서술은 담당자가 확인·확정해야 합니다. 작성일 2026-10-12 · 작성 심영표.
## 1. 개요
- 교각: 운곡교p2 (T형) · 좌표: 로컬(교각 중심 원점, X 교축직각, Y 교축, Z = EL×1000, mm) · 산출: .3dm
- 게이트 진행: 5/5 실행, **미완료 — 실행·승인되지 않은 게이트가 있음**
### 1.1 입력 도면
| 구분 | DWG | SHA-256(앞 16자) |
| :--- | :--- | :--- |
| D1 | C0050205-028-운곡교 교각도(1)(완도방향 P2).dwg | 0efe55ad5b922918 |
| D2 | C0050205-029-운곡교 교각도(2)(완도방향 P2).dwg | 7ad905aa4b32aa1d |
| D3 | C0050205-030-운곡교 교각도(3)(완도방향 P2).dwg | edce7e03d79f3378 |
### 1.2 게이트 결과
| 게이트 | 내용 | 판정 | 검사 PASS | 승인 | 의견 |
| :--- | :--- | :--- | :--- | :--- | :--- |
| G1 | 형상(콘크리트·말뚝·받침대좌·패드) | PASS | 171/171 | 승인 심영표 2026-10-12 16:31:42 | - |
| G2 | 기둥 철근 | PASS | 42/42 | 승인 심영표 2026-10-12 16:33:12 | - |
| G3 | 확대기초 철근 | PASS | 71/73 | 승인 심영표 2026-10-12 16:52:42 | - |
| G4 | 코핑 철근 | PASS | 111/116 | 승인 심영표 2026-10-12 16:59:57 | - |
| G5 | 교량받침·솔플레이트 | PASS | 183/183 | - | - |
## 2. 도면 오류·불일치
자동 등재 기준: 승인된 계획 FAIL → '불일치', 계획되지 않은 FAIL과 도면 표 값·입력값 차이 → '확인 필요'.
| 판정 | 게이트 | 항목 | 내용 | 근거 |
| :--- | :--- | :--- | :--- | :--- |
| 불일치 | G3 | B9 bar count vs schedule | 작도 551본(38×29 엇갈림) 채택 vs D3 493본(P1 값 그대로) | 예외 승인: 사용자 확정 2026-10-12 (P2, P1 F2 규칙 준용) |
| 불일치 | G3 | B12 bar count vs schedule | 작도 32본 채택 vs D3 38본 (P1 F2 규칙, P1도 28/34) | 예외 승인: 사용자 확정 2026-10-12 (P2, P1 F2 규칙 준용) |
| 불일치 | G4 | C9 original length vs L (drawn widths ['1160.0', '1740.0'], K1 decision) | 작도 폭 채택(K1) | 예외 승인: 사용자 2026-10-07; P2 적용 사용자 확정 2026-10-12 |
| 불일치 | G4 | C10 original length vs L (drawn widths ['1160.0', '1740.0'], K1 decision) | 작도 폭 채택(K1) | 예외 승인: 사용자 2026-10-07; P2 적용 사용자 확정 2026-10-12 |
| 불일치 | G4 | C11 original length vs L (drawn widths ['1160.0', '1740.0'], K1 decision) | 작도 폭 채택(K1) | 예외 승인: 사용자 2026-10-07; P2 적용 사용자 확정 2026-10-12 |
| 불일치 | G4 | C12 original length vs L (drawn widths ['1106.0', '1686.0'], K1 decision) | 작도 폭 채택(C12·C13 drawn width) | 예외 승인: 사용자 2026-10-07; P2 적용 사용자 확정 2026-10-12 |
| 불일치 | G4 | C13 original length vs L (drawn widths ['1106.0', '1686.0'], K1 decision) | 작도 폭 채택(C12·C13 drawn width) | 예외 승인: 사용자 2026-10-07; P2 적용 사용자 확정 2026-10-12 |
## 3. 개선방안
[담당자 작성] 2장 항목별로 도면 수정·설계자 확인 방안을 적습니다.
## 4. 추가되어야 할 사항
[담당자 작성] 도면에 없어 추정·가정으로 모델링한 사항(입력 묶음의 `[추론]` 표기)을 정리합니다.
- 자동 확인: `[추론]` 표기가 있는 입력 묶음 — coping_rebar
## 5. 누락사항
[담당자 작성] 도면에서 빠진 치수·표·상세를 적습니다.
- 자동 확인: 재료표에 있으나 모델 대상이 아닌 마크 — UA1 (범위 결정 확인)
## 6. 철근재료표 (원본 vs 모델)
원본 = 도면 재료표 판독값(동일 기호 " 해석 포함), 모델 = 게이트 검사의 본수 실측값.
| 마크 | 형식 | 직경 | 재료표 수량 | 재료표 L(mm) | 모델 본수 | 대조 | 근거 |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| P1 | XIV | S32 | 46 | 17377 | 46 | 일치 | D3 철근재료표 (SD500) P1 |
| P2 | XVI | S32 | 46 | 16683 | 46 | 일치 | D3 철근재료표 (SD500) P2 |
| B5 | XII | S29 | 32 | 10550 | 32 | 일치 | D3 철근재료표 (SD500) B5 |
| B6 | XII | S29 | 32 | 14050 | 32 | 일치 | D3 철근재료표 (SD500) B6 |
| B8 | XVI | S29 | 29 | 10150 | 29 | 일치 | D3 철근재료표 (SD500) B8 |
| B1 | III | S25 | 42 | 8000 | 42 | 일치 | D3 철근재료표 (SD500) B1 |
| B2 | XII | S25 | 42 | 11500 | 42 | 일치 | D3 철근재료표 (SD500) B2 |
| B4 | I | S25 | 39 | 7600 | 39 | 일치 | D3 철근재료표 (SD500) B4 |
| B3 | III | S19 | 42 | 8000 | 42 | 일치 | D3 철근재료표 (SD500) B3 |
| B7 | XII | S19 | 32 | 10550 | 32 | 일치 | D3 철근재료표 (SD500) B7 |
| B10 | XIII | S19 | 9 | 35684 | 9 | 일치 | D3 철근재료표 (SD500) B10 |
| B11 | XII | S16 | 28 | 10350 | 28 | 일치 | D3 철근재료표 (SD500) B11 |
| B12 | III | S16 | 38 | 7800 | 32 | 불일치 | D3 철근재료표 (SD500) B12 |
| UA1 | - | S16 | - | - | 모델 외 | - | D3 철근재료표 (SD500) UA1 |
| C1 | VIII | H29 | 12 | 14490 | 12 | 일치 | D3 철근재료표 (SD400) C1 |
| C2 | VIII | H29 | 12 | 12082 | 12 | 일치 | D3 철근재료표 (SD400) C2 |
| C4 | VIII | H29 | 12 | 14490 | 12 | 일치 | D3 철근재료표 (SD400) C4 |
| C5 | VIII | H29 | 12 | 12082 | 12 | 일치 | D3 철근재료표 (SD400) C5 |
| C7 | VII | H29 | 12 | 13994 | 12 | 일치 | D3 철근재료표 (SD400) C7 |
| C8 | VII | H29 | 12 | 13994 | 12 | 일치 | D3 철근재료표 (SD400) C8 |
| P4 | V | H29 | 9 | 5680 | 9 | 일치 | D3 철근재료표 (SD400) P4 |
| P5 | IX | H29 | 22 | 5680 | 22 | 일치 | D3 철근재료표 (SD400) P5 |
| C3 | VIII | H25 | 12 | 12106 | 12 | 일치 | D3 철근재료표 (SD400) C3 |
| C6 | VIII | H25 | 12 | 12106 | 12 | 일치 | D3 철근재료표 (SD400) C6 |
| C9 | IV | H25 | 60 | 8649 | 60 | 일치 | D3 철근재료표 (SD400) C9 |
| C10 | IV | H25 | 21 | 10314 | 21 | 일치 | D3 철근재료표 (SD400) C10 |
| C11 | IV | H25 | 60 | 8941 | 60 | 일치 | D3 철근재료표 (SD400) C11 |
| C12 | X | H25 | 18 | 20513 | 18 | 일치 | D3 철근재료표 (SD400) C12 |
| C13 | X | H25 | 9 | 29345 | 9 | 일치 | D3 철근재료표 (SD400) C13 |
| C14 | III | H19 | 41 | 3600 | 41 | 일치 | D3 철근재료표 (SD400) C14 |
| C15 | III | H19 | 13 | 2774 | 13 | 일치 | D3 철근재료표 (SD400) C15 |
| C16 | II | H19 | 13 | 5605 | 13 | 일치 | D3 철근재료표 (SD400) C16 |
| P3 | VI | H19 | 37 | 6449 | 37 | 일치 | D3 철근재료표 (SD400) P3 |
| S1 | III | H19 | 50 | 3800 | 50 | 일치 | D3 철근재료표 (SD400) S1 |
| S2 | III | H19 | 105 | 2500 | 105 | 일치 | D3 철근재료표 (SD400) S2 |
| B9 | XI | H16 | 493 | 2155 | 551 | 불일치 | D3 철근재료표 (SD400) B9 |
| P6 | III | H16 | 36 | 2136 | 36 | 일치 | D3 철근재료표 (SD400) P6 |
## 7. 철근상세 (기록)
원길이·곡선길이·피복은 판정이 아닌 기록 값입니다(요구사항 §6.2).
### 7.1 기둥 (G2)
| 항목 | 값 |
| :--- | :--- |
| P1 curve length - L (record, fillets shorten hooks) | min 0.1 / max 0.1 mm |
| P2 curve length - L (record, fillets shorten hooks) | min 0.0 / max 0.0 mm |
| P3 curve length - L (record, fillets shorten hooks) | min -493.4 / max -493.4 mm |
| P4 curve length - L (record, fillets shorten hooks) | min -0.0 / max -0.0 mm |
| P5 curve length - L (record, fillets shorten hooks) | min -0.0 / max -0.0 mm |
| P6 curve length - L (record, fillets shorten hooks) | min -20.6 / max -20.6 mm |
| concrete union for cover | 1 brep |
| min cover to concrete surface per mark (record) | {"P1": 113.5, "P2": 158.5, "P3": 91.5, "P4": 98.7, "P5": 81.5, "P6": 74.0} |
### 7.2 확대기초 (G3)
| 항목 | 값 |
| :--- | :--- |
| B1 curve length - L (bend fillets) | min -48.3 / max -48.3 |
| B2 curve length - L (bend fillets) | min -48.3 / max -48.3 |
| B3 curve length - L (bend fillets) | min -36.7 / max -36.7 |
| B4 curve length - L (bend fillets) | min 0.0 / max 0.0 |
| B5 curve length - L (bend fillets) | min -56.0 / max -56.0 |
| B6 curve length - L (bend fillets) | min -56.0 / max -56.0 |
| B7 curve length - L (bend fillets) | min -36.7 / max -36.7 |
| B8 curve length - L (bend fillets) | min 0.0 / max 0.0 |
| B9 curve length - L (bend fillets) | min -10.3 / max -10.3 |
| B10 curve length - L (bend fillets) | min -73.4 / max -73.4 |
| B11 curve length - L (bend fillets) | min -20.6 / max -20.6 |
| B12 curve length - L (bend fillets) | min -20.6 / max -20.6 |
| min cover to concrete exterior per mark | {"B1": 87.5, "B2": 87.5, "B3": 90.5, "B4": 87.5, "B5": 58.5, "B6": 57.5, "B7": 90.5, "B8": 85.5, "B9": 69.5, "B10": 66.5, "B11": 92.0, "B12": 92.0} |
### 7.3 코핑 (G4)
| 항목 | 값 |
| :--- | :--- |
| C1 curve - original length | -41.9 / -41.9 |
| C2 curve - original length | -41.9 / -41.9 |
| C3 curve - original length | -36.1 / -36.1 |
| C4 curve - original length | -41.9 / -41.9 |
| C5 curve - original length | -41.9 / -41.9 |
| C6 curve - original length | -36.1 / -36.1 |
| C7 curve - original length | -0.0 / -0.0 |
| C8 curve - original length | -0.0 / -0.0 |
| C9 curve - original length | -1705.2 / -1705.2 |
| C10 curve - original length | -1705.2 / -1705.2 |
| C11 curve - original length | -1705.2 / -1705.2 |
| C12 curve - original length | -2525.2 / -2525.2 |
| C13 curve - original length | -2525.2 / -2525.2 |
| C14 curve - original length | -36.7 / -36.7 |
| C15 curve - original length | -36.7 / -36.7 |
| C16 curve - original length | -18.3 / -18.3 |
| S1 curve - original length | -36.7 / -36.7 |
| S2 curve - original length | -36.7 / -36.7 |
| min cover to coping surface per mark (top face under pedestals counted) | {"C1": 85.2, "C2": 85.4, "C3": 87.1, "C4": 85.2, "C5": 85.4, "C6": 87.1, "C7": 84.4, "C8": 84.4, "C9": 87.4, "C10": 87.4, "C11": 87.5, "C12": 87.4, "C13": 87.4, "C14": 90.5, "C15": 90.5, "C16": 90.5, "S1": 40.5, "S2": 90.5} |
## 8. 검증 방법
- 검사기는 생성 입력(params)이 아니라 도면 문자·표에서 옮긴 독립 기대값(expected)만 읽습니다.
- 게이트마다 G1부터 새로 생성 → 저장 파일을 다시 열어 검사(재로드) → 객체를 수평·수직으로 옮겨 FAIL이 나는지 확인(음성 시험) → 앞 게이트 객체 지문 비교.
| 게이트 | 재로드 | 음성 시험 | 앞 게이트 객체 |
| :--- | :--- | :--- | :--- |
| G1 | 일치 | 수평 검출 / 수직 검출 | 불변 (0) |
| G2 | 일치 | 수평 검출 / 수직 검출 | 불변 (54) |
| G3 | 일치 | 수평 검출 / 수직 검출 | 불변 (538) |
| G4 | 일치 | 수평 검출 / 수직 검출 | 불변 (2358) |
| G5 | 일치 | 수평 검출 / 수직 검출 | 불변 (3330) |
## 변경 이력
| 버전 | 일자 | 내용 |
| :--- | :--- | :--- |
| v0.1.00 | 2026-10-12 | 앱 자동 생성 초안 |