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

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

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

No files matched your search

File diff suppressed because it is too large. Load diff
@@ -0,0 +1,163 @@
{
"expected:G1": {
"sha": "ebd00116a06211a5",
"by": "테스트",
"at": "2026-10-20 14:01:27",
"why": "시험",
"app_st": "g"
},
"expected:G2": {
"sha": "12df59aa062bde7a",
"by": "테스트",
"at": "2026-10-20 14:01:27",
"why": "시험",
"app_st": "g"
},
"expected:G3": {
"sha": "378eee3b312640dd",
"by": "테스트",
"at": "2026-10-20 14:01:27",
"why": "시험",
"app_st": "g"
},
"expected:G4": {
"sha": "9d14cf310e66f7cf",
"by": "테스트",
"at": "2026-10-20 14:01:27",
"why": "시험",
"app_st": "g"
},
"expected:G5": {
"sha": "4dd5a0aacc7137e4",
"by": "테스트",
"at": "2026-10-20 14:01:27",
"why": "시험",
"app_st": "g"
},
"expected:pier_id": {
"sha": "97086571f822df69",
"by": "테스트",
"at": "2026-10-20 14:01:27",
"why": "시험",
"app_st": "g"
},
"expected:planned_fail": {
"sha": "1c2024ffeca8d63f",
"by": "테스트",
"at": "2026-10-20 14:01:27",
"why": "시험",
"app_st": "x"
},
"expected:rebar_palette": {
"sha": "c41013bf3e985022",
"by": "테스트",
"at": "2026-10-20 14:01:27",
"why": "시험",
"app_st": "x"
},
"expected:tol_mm": {
"sha": "d0ff5974b6aa52cf",
"by": "테스트",
"at": "2026-10-20 14:01:27",
"why": "시험",
"app_st": "x"
},
"params:bearing_seats": {
"sha": "f212a2858946a702",
"by": "테스트",
"at": "2026-10-20 14:01:27",
"why": "시험",
"app_st": "g"
},
"params:column": {
"sha": "74c090c09f61aa42",
"by": "테스트",
"at": "2026-10-20 14:01:27",
"why": "시험",
"app_st": "n"
},
"params:column_rebar": {
"sha": "6e5cd384a1c43c80",
"by": "테스트",
"at": "2026-10-20 14:01:27",
"why": "시험",
"app_st": "n"
},
"params:coping": {
"sha": "9e3209026614e2d9",
"by": "테스트",
"at": "2026-10-20 14:01:27",
"why": "시험",
"app_st": "n"
},
"params:coping_rebar": {
"sha": "c98e1cc7779f604b",
"by": "테스트",
"at": "2026-10-20 14:01:27",
"why": "시험",
"app_st": "n"
},
"params:display": {
"sha": "b1b126034742709b",
"by": "테스트",
"at": "2026-10-20 14:01:27",
"why": "시험",
"app_st": "g"
},
"params:footing": {
"sha": "b7c5056daeed1f8b",
"by": "테스트",
"at": "2026-10-20 14:01:27",
"why": "시험",
"app_st": "n"
},
"params:footing_rebar": {
"sha": "3d11859aa672975b",
"by": "테스트",
"at": "2026-10-20 14:01:27",
"why": "시험",
"app_st": "n"
},
"params:lean_concrete": {
"sha": "8c9222a4b2112cbd",
"by": "테스트",
"at": "2026-10-20 14:01:27",
"why": "시험",
"app_st": "n"
},
"params:materials": {
"sha": "84f210201086bd7c",
"by": "테스트",
"at": "2026-10-20 14:01:27",
"why": "시험",
"app_st": "n"
},
"params:pier_id": {
"sha": "97086571f822df69",
"by": "테스트",
"at": "2026-10-20 14:01:27",
"why": "시험",
"app_st": "g"
},
"params:piles": {
"sha": "16b4cdea037fa977",
"by": "테스트",
"at": "2026-10-20 14:01:27",
"why": "시험",
"app_st": "n"
},
"params:rebar_marks": {
"sha": "c5d7818e0137ed86",
"by": "테스트",
"at": "2026-10-20 14:01:27",
"why": "시험",
"app_st": "g"
},
"params:sole_plates": {
"sha": "8cc6a2a1a125311c",
"by": "테스트",
"at": "2026-10-20 14:01:27",
"why": "시험",
"app_st": "g"
}
}
@@ -0,0 +1,26 @@
[
{
"source": "C0050205-025-운곡교 교각도(1)(완도방향 P1).dwg",
"source_sha256": "d275fc3541eb2598c67563a366be893183f0a86063bf80fbad22bc4a41ad0694",
"dxf": "C0050205-025-운곡교 교각도(1)(완도방향 P1).dxf",
"dxf_sha256": "dfdf13ec2d006f20ec9d75f11cfb21177f7525c608b621fd50ce0f9dd04eaac5",
"engine": "ODA File Converter 27.1.0",
"label": "D1"
},
{
"source": "C0050205-026-운곡교 교각도(2)(완도방향 P1).dwg",
"source_sha256": "0aa03f2145935b1a2d91ac6f50ed8f37269ada03ec69c22fc8a94e6a3b0584e1",
"dxf": "C0050205-026-운곡교 교각도(2)(완도방향 P1).dxf",
"dxf_sha256": "3b85340056dab77de59e6a9f541f9a9083117409487eba1a199207b575c52993",
"engine": "ODA File Converter 27.1.0",
"label": "D2"
},
{
"source": "C0050205-027-운곡교 교각도(3)(완도방향 P1).dwg",
"source_sha256": "f77980c5f8592d50be0b22c72b626154af1f492884ad2803e310771643e442b5",
"dxf": "C0050205-027-운곡교 교각도(3)(완도방향 P1).dxf",
"dxf_sha256": "492735eb2ffc143ef918aed169fbda5f94f1fd4bcb11aadbcdb31eeb0d8ed391",
"engine": "ODA File Converter 27.1.0",
"label": "D3"
}
]
@@ -0,0 +1 @@
[{"dwg": "D1", "layer": "CS-DIMT", "x": 43035.4, "y": 27654.4, "h": 150.0, "text": "137", "handle": "1BC7F"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 45797.9, "y": 27654.4, "h": 150.0, "text": "138", "handle": "1BC80"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 46137.4, "y": 27605.8, "h": 150.0, "text": "(1~3단)", "handle": "1BC81"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43035.4, "y": 20658.1, "h": 150.0, "text": "137", "handle": "1BC82"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 45797.9, "y": 20658.1, "h": 150.0, "text": "138", "handle": "1BC83"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44314.7, "y": 20268.1, "h": 150.0, "text": "3.100", "handle": "1BC84"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 42641.9, "y": 20868.1, "h": 150.0, "text": "100", "handle": "1BC85"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43956.2, "y": 20868.1, "h": 150.0, "text": "21@125=2.625", "handle": "1BC86"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 46341.9, "y": 20868.1, "h": 150.0, "text": "100", "handle": "1BC87"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44314.7, "y": 28464.4, "h": 150.0, "text": "3.100", "handle": "1BC88"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 42641.9, "y": 27864.4, "h": 150.0, "text": "100", "handle": "1BC89"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43956.2, "y": 27864.4, "h": 150.0, "text": "21@125=2.625", "handle": "1BC8A"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 46341.9, "y": 27864.4, "h": 150.0, "text": "100", "handle": "1BC8B"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 42641.9, "y": 21468.1, "h": 150.0, "text": "100", "handle": "1BC8C"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43256.9, "y": 21468.1, "h": 150.0, "text": "580", "handle": "1BC8D"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43836.9, "y": 21468.1, "h": 150.0, "text": "580", "handle": "1BC8E"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44416.9, "y": 21468.1, "h": 150.0, "text": "580", "handle": "1BC8F"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44996.9, "y": 21468.1, "h": 150.0, "text": "580", "handle": "1BC90"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 45576.9, "y": 21468.1, "h": 150.0, "text": "580", "handle": "1BC91"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 46266.9, "y": 21468.1, "h": 150.0, "text": "100", "handle": "1BC92"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44479.7, "y": 7438.8, "h": 150.0, "text": "3.100", "handle": "1BC93"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 42807.0, "y": 8038.8, "h": 150.0, "text": "100", "handle": "1BC94"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44121.3, "y": 8038.8, "h": 150.0, "text": "21@125=2.625", "handle": "1BC95"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 46507.0, "y": 8038.8, "h": 150.0, "text": "100", "handle": "1BC96"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44479.7, "y": 17682.6, "h": 150.0, "text": "3.100", "handle": "1BC97"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 46582.0, "y": 17082.6, "h": 150.0, "text": "100", "handle": "1BC98"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44058.8, "y": 17082.6, "h": 150.0, "text": "10@250=2.500", "handle": "1BC99"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 42807.0, "y": 17082.6, "h": 150.0, "text": "100", "handle": "1BC9A"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 42807.0, "y": 16482.6, "h": 150.0, "text": "100", "handle": "1BC9B"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44121.3, "y": 16482.6, "h": 150.0, "text": "21@125=2.625", "handle": "1BC9C"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 46507.0, "y": 16482.6, "h": 150.0, "text": "100", "handle": "1BC9D"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 42807.0, "y": 8638.8, "h": 150.0, "text": "100", "handle": "1BC9E"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43422.0, "y": 8638.8, "h": 150.0, "text": "580", "handle": "1BC9F"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44002.0, "y": 8638.8, "h": 150.0, "text": "580", "handle": "1BCA0"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44582.0, "y": 8638.8, "h": 150.0, "text": "580", "handle": "1BCA1"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 45162.0, "y": 8638.8, "h": 150.0, "text": "580", "handle": "1BCA2"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 45742.0, "y": 8638.8, "h": 150.0, "text": "580", "handle": "1BCA3"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 46432.0, "y": 8638.8, "h": 150.0, "text": "100", "handle": "1BCA4"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 40260.3, "y": 10101.8, "h": 150.0, "text": "100", "handle": "1BCA5"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 40260.3, "y": 11142.7, "h": 150.0, "text": "9@250=2.250", "handle": "1BCA6"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 40260.3, "y": 13017.5, "h": 150.0, "text": "694", "handle": "1BCA7"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 40260.3, "y": 13770.8, "h": 150.0, "text": "100", "handle": "1BCA8"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 39660.3, "y": 11790.2, "h": 150.0, "text": "3.144", "handle": "1BCA9"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43200.5, "y": 16272.6, "h": 150.0, "text": "137", "handle": "1BCAA"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 45963.0, "y": 16272.6, "h": 150.0, "text": "138", "handle": "1BCAB"}, {"dwg": "D1", "layer": "CS-DIMT", "xLine truncated
@@ -0,0 +1,840 @@
{
"_schema": "pier-T-expected/1",
"_note": "독립 기대값: 도면 치수 문자·표(D1~D3)에서 직접 옮긴 값. 생성용 params.json과 별도로 관리하며 검사기는 params를 읽지 않는다. 원출처: Code/교각모델링/verify_*.py (검증서 v0.1.05).",
"pier_id": "P1",
"tol_mm": 1.0,
"G1": {
"footing": {
"dx": 9350,
"dy": 7800,
"z0": 26208,
"thickness": 2200,
"src": "D1 '9.350' '7.800' 'EL. 26.208' '2.200'"
},
"lean": {
"margin": 100,
"thickness": 100,
"src": "D1 footing +100 each side, 100 thick"
},
"column": {
"d": 2000,
"height": 12003,
"src": "D1 '2.000' '12.003'"
},
"coping": {
"dx": 12400,
"dy": 3100,
"z_top_left": 43411,
"rise_upper": 1500,
"rise_lower": 1500,
"z_top_right": 43698,
"z_top_center": 43555,
"flat_from_tip": 5100,
"end_inset": 200,
"radius": 12000,
"src": "D1 '12.400' '3.100' 'EL. 43.411' '1.500' x2 'EL. 43.698' 'EL. 43.555' '5.100' '200' 'R=12.000'"
},
"coping_outline": [
[
-1100,
40411
],
[
1100,
40411
],
[
6200,
41911
],
[
6000,
43698
],
[
3715,
43698
],
[
3715,
43627
],
[
1210,
43627
],
[
1210,
43555
],
[
-1296,
43555
],
[
-1296,
43483
],
[
-3801,
43483
],
[
-3801,
43411
],
[
-6000,
43411
],
[
-6200,
41911
]
],
"coping_outline_src": "D1 정면도 외형 (원호는 현으로 대체 후 활꼴 2개 차감)",
"dxf_arc_centres": {
"datum_x": 12159.4,
"datum_y": 16515.6,
"datum_el": 40411,
"left": [
5207.5,
6039.2
],
"right": [
19111.2,
6039.2
],
"src": "DXF ARC 1C4BF centre; datum CS-CNTL 1C546 / coping bottom line 1C4BD"
},
"piles": {
"nx": 6,
"ny": 5,
"pitch": 1550,
"edge": 800,
"d": 600,
"length": 24400,
"head_embedment": 100,
"src": "D1 '5@1.550' '4@1.550' '800' 'Ø600' 'L=24.4M'; 매입 100 (CS-CNTL)"
},
"seats": {
"table": {
"1": [
43625,
164,
50,
700,
640
],
"2": [
43697,
164,
50,
700,
640
],
"3": [
43768,
164,
50,
700,
790
],
"4": [
43840,
164,
50,
700,
640
],
"5": [
43912,
164,
50,
700,
640
],
"6": [
43600,
139,
50,
700,
540
],
"7": [
43672,
139,
50,
700,
540
],
"8": [
43744,
139,
50,
700,
650
],
"9": [
43816,
139,
50,
700,
540
],
"10": [
43887,
139,
50,
700,
540
]
},
"table_columns": [
"EL.'X'",
"h1",
"h2",
"A",
"B"
],
"girders": 5,
"step_top": {
"1": 43411,
"2": 43483,
"3": 43555,
"4": 43627,
"5": 43698
},
"step_x": {
"1": [
-6000,
-3801
],
"2": [
-3801,
-1296
],
"3": [
-1296,
1210
],
"4": [
1210,
3715
],
"5": [
3715,
6000
]
},
"row_y": {
"front": -698,
"rear": 600
},
"pitch_chain": [
3,
7516
],
"pedestal_plan": [
1250,
1200
],
"pad_margin": [
200,
100
],
"rear_first_from_tip": 1232,
"src": "D2 ELEVATION TABLE; D1 EL texts + drawn steps; D1 평면도 S1/S2 + D2 TABLE S1 (1550-852 / 1550-950); '3@2.505=7.516'; 대좌 2500x1200 반쪽; '1.232'"
}
},
"G2": {
"schedule_L": {
"P1": 17247,
"P2": 16553,
"P3": 6436,
"P4": 5636,
"P5": 5636,
"P6": 2136
},
"schedule_n": {
"P1": 46,
"P2": 46,
"P3": 36,
"P4": 9,
"P5": 22,
"P6": 36
},
"dia": {
"P1": 32,
"P2": 32,
"P3": 19,
"P4": 19,
"P5": 19,
"P6": 16
},
"hoop_chain": {
"start": [
150,
1030
],
"groups": [
[
8,
120
],
[
22,
120
],
[
36,
300
]
]
},
"hoop_marks_by_zone": [
[
"P4",
9
],
[
"P5",
22
],
[
"P3",
36
]
],
"tie_chain": {
"start": [
150,
1030
],
"groups": [
[
8,
1800
]
]
},
"tie_offset": 17.5,
"r_outer": 870.5,
"r_inner": 825.5,
"r_hoop": 897,
"main_divisions": 46,
"bottom_above_footing": 300,
"p1_top_parts": [
300,
340,
16213
],
"no_fillet_marks": [
"P1",
"P2",
"P4",
"P5"
],
"src": "D3 L·수량; D1 '150','1.030','8@120=960','22@120=2.640','36@300=10.800','8@1.800=14.400'; HITL H2 반지름(단면 CAD)·D3 R"
},
"G3": {
"schedule": {
"B1": [
8000,
38
],
"B2": [
11500,
38
],
"B3": [
8000,
38
],
"B4": [
7600,
35
],
"B5": [
9550,
32
],
"B6": [
13050,
32
],
"B7": [
9550,
32
],
"B8": [
9150,
29
],
"B9": [
2155,
493
],
"B10": [
33684,
9
],
"B11": [
9350,
28
],
"B12": [
7800,
34
]
},
"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": [
-4575,
4575
],
"start": -4375,
"pitch": 125,
"n": 71
},
"Y_250": {
"ends": [
-4575,
4575
],
"start": -4375,
"pitch": 250,
"n": 36
},
"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": [
9198,
7644
],
"b9_grid": {
"x": {
"start": -4125,
"pitch": 250,
"n": 34
},
"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·수량; D1/D2 '100','200','70@125=8.750' / '35@250' / '100','175','58@125=7.250' / '29@250'; F1 층 높이(작도점); '150','9@200=1.800'; '450','33@250=8.250' / '300','28@250=7.000'; EREC 150~2100; 중간층 작도점 [derived]"
},
"G4": {
"count": {
"C1": 12,
"C2": 12,
"C3": 12,
"C4": 12,
"C5": 12,
"C6": 12,
"C7": 12,
"C8": 12,
"C9": 60,
"C10": 21,
"C11": 60,
"C12": 18,
"C13": 9,
"C14": 41,
"C15": 13,
"C16": 13,
"S1": 50,
"S2": 105
},
"L": {
"C1": 14490,
"C2": 12081,
"C3": 12106,
"C4": 14490,
"C5": 12081,
"C6": 12106,
"C7": 13994,
"C8": 13994,
"C9": 8647,
"C10": 10310,
"C11": 8934,
"C12": 20513,
"C13": 29345,
"C14": 3600,
"C15": 2784,
"C16": 5611,
"S1": 3800,
"S2": 2500
},
"range": {
"C9": [
"b_sched",
2956,
1376
],
"C11": [
"b_sched",
2956,
1664
],
"C10": [
"b_sched",
2998,
2998
],
"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": 29,
"C4": 29,
"C5": 29,
"C6": 29,
"C7": 29,
"C8": 29,
"C9": 25,
"C10": 25,
"C11": 25,
"C12": 25,
"C13": 25,
"C14": 19,
"C15": 19,
"C16": 19,
"S1": 19,
"S2": 19
},
"half_width": 1550,
"y24_chain": {
"start": [
100,
237
],
"pitch": 125,
"n": 21,
"end": 3000
},
"y13_chain": {
"start": [
100,
237
],
"pitch": 250,
"n": 10,
"end": 3000
},
"pairs": [
[
"C1",
"C4"
],
[
"C2",
"C5"
],
[
"C3",
"C6"
],
[
"C7",
"C8"
]
],
"tier_z": {
"C1": 43311,
"C4": 43311,
"C2": 43211,
"C5": 43211,
"C3": 43111,
"C6": 43111
},
"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": 40511,
"loop_z": {
"C12": {
"start": 40761,
"pitch": 250,
"n": 6
},
"C13": [
42261,
42511,
42761
]
},
"c15_top": 43598.4,
"c16_top": 43454.7,
"c14_levels": [
[
43088.5,
11
],
[
43188.5,
11
],
[
41011,
3
],
[
42011,
5
],
[
41511,
4
],
[
42511,
6
],
[
43442.4,
1
]
],
"s_per_girder": {
"S1": [
10,
50
],
"S2": [
21,
100
]
},
"step_top": {
"1": 43411,
"2": 43483,
"3": 43555,
"4": 43627,
"5": 43698
},
"src": "D3 수량·L·a/b 범위; D1 A-A 사슬 '100','137','21@125','3000' / B-B '10@250'; 정면도 단 높이·스터럽 X·루프 EL; D2 '50','50'"
},
"G5": {
"el_x": {
"1": 43625,
"2": 43697,
"3": 43768,
"4": 43840,
"5": 43912,
"6": 43600,
"7": 43672,
"8": 43744,
"9": 43816,
"10": 43887
},
"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": 740,
"2": 740,
"3": 890,
"4": 740,
"5": 740,
"6": 640,
"7": 640,
"8": 750,
"9": 640,
"10": 640
},
"L": 800,
"T": 30,
"h3": 181,
"bearing_shrink": 100,
"colours": {
"bearing": [
0,
0,
0
],
"sole_plate": [
150,
150,
150
]
},
"src": "D2 ELEVATION TABLE (EL.'X', h3), 솔플레이트 상세 TABLE (S, L, W, T); (L-100)x(W-100)·색 = 사용자 지시 2026-10-08"
},
"rebar_palette": {
"32": [
214,
39,
40
],
"29": [
255,
127,
14
],
"25": [
188,
60,
160
],
"19": [
44,
160,
44
],
"16": [
31,
119,
180
]
},
"rebar_palette_src": "디자인지침_경로.md R8 (2026-10-07)",
"planned_fail": [
{
"gate": "G3",
"item": "B12 bar count vs schedule",
"reason": "작도 28본 채택(F2) vs D3 34본 — OPEN #9",
"approved": "사용자 2026-10-07"
},
{
"gate": "G4",
"item_prefix": "C9 original length vs L",
"reason": "작도 폭 채택(K1)",
"approved": "사용자 2026-10-07"
},
{
"gate": "G4",
"item_prefix": "C10 original length vs L",
"reason": "작도 폭 채택(K1)",
"approved": "사용자 2026-10-07"
},
{
"gate": "G4",
"item_prefix": "C11 original length vs L",
"reason": "작도 폭 채택(K1)",
"approved": "사용자 2026-10-07"
},
{
"gate": "G4",
"item_prefix": "C12 original length vs L",
"reason": "작도 폭 채택(C12·C13 drawn width)",
"approved": "사용자 2026-10-07"
},
{
"gate": "G4",
"item_prefix": "C13 original length vs L",
"reason": "작도 폭 채택(C12·C13 drawn width)",
"approved": "사용자 2026-10-07"
}
]
}
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,109 @@
{
"name": "테스트P1",
"type": "T형",
"created": "2026-10-20 14:01:22",
"template": "운곡교P1",
"origin": {
"label": "운곡교P1",
"at": "2026-10-20 14:01:22",
"sha": {
"params:_meta": "68466a4e497800d6",
"params:lean_concrete": "8c9222a4b2112cbd",
"params:footing": "b7c5056daeed1f8b",
"params:column": "74c090c09f61aa42",
"params:coping": "9e3209026614e2d9",
"params:piles": "16b4cdea037fa977",
"params:hitl_decisions_2026_10_07": "1a6acbe25bc01948",
"params:bearing_seats": "f212a2858946a702",
"params:column_rebar": "6e5cd384a1c43c80",
"params:footing_rebar": "3d11859aa672975b",
"params:coping_rebar": "c98e1cc7779f604b",
"params:sole_plates": "8cc6a2a1a125311c",
"params:_schema": "78a2cba5e3555141",
"params:pier_id": "97086571f822df69",
"params:rebar_marks": "c5d7818e0137ed86",
"params:rebar_marks_src": "a7a01d0421958fc4",
"params:materials": "84f210201086bd7c",
"params:display": "b1b126034742709b",
"expected:_schema": "21dc6d01b07f7ac8",
"expected:_note": "624c308bbfcdf519",
"expected:pier_id": "97086571f822df69",
"expected:tol_mm": "d0ff5974b6aa52cf",
"expected:G1": "ebd00116a06211a5",
"expected:G2": "12df59aa062bde7a",
"expected:G3": "378eee3b312640dd",
"expected:G4": "9d14cf310e66f7cf",
"expected:G5": "4dd5a0aacc7137e4",
"expected:rebar_palette": "c41013bf3e985022",
"expected:rebar_palette_src": "249b3cde71fb0eb8",
"expected:planned_fail": "1c2024ffeca8d63f"
},
"fixed": {
"params:column": {
"shape": "\"circular\""
},
"params:coping": {
"form": "null"
},
"params:piles": {
"kind": "\"composite pile\""
},
"params:bearing_seats": {
"pedestal": "null",
"pedestals": "null"
},
"params:column_rebar": {
"form": "null"
},
"params:footing_rebar": {
"form": "null"
},
"params:coping_rebar": {
"form": "null",
"host": "null",
"group": "null"
},
"params:sole_plates": {
"bearing_size": "null"
},
"params:rebar_marks": {
"P1.shape": "\"XIV\"",
"P2.shape": "\"XVI\"",
"P3.shape": "\"VI\"",
"P4.shape": "\"V\"",
"P5.shape": "\"IX\"",
"P6.shape": "\"III\"",
"B1.shape": "\"III\"",
"B2.shape": "\"XII\"",
"B3.shape": "\"III\"",
"B4.shape": "\"I\"",
"B5.shape": "\"XII\"",
"B6.shape": "\"XII\"",
"B7.shape": "\"XII\"",
"B8.shape": "\"XVI\"",
"B9.shape": "\"XI\"",
"B10.shape": "\"XIII\"",
"B11.shape": "\"XII\"",
"B12.shape": "\"III\"",
"C1.shape": "\"VIII\"",
"C2.shape": "\"VIII\"",
"C3.shape": "\"VIII\"",
"C4.shape": "\"VIII\"",
"C5.shape": "\"VIII\"",
"C6.shape": "\"VIII\"",
"C7.shape": "\"VII\"",
"C8.shape": "\"VII\"",
"C9.shape": "\"IV\"",
"C10.shape": "\"IV\"",
"C11.shape": "\"IV\"",
"C12.shape": "\"X\"",
"C13.shape": "\"X\"",
"C14.shape": "\"III\"",
"C15.shape": "\"III\"",
"C16.shape": "\"II\"",
"S1.shape": "\"III\"",
"S2.shape": "\"III\""
}
}
}
}
File diff suppressed because it is too large. Load diff
@@ -0,0 +1 @@
{"model": "C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\검증\\web_test_data\\테스트P1\\runs\\current\\G1.3dm", "units": "Millimeters", "tolerance": 0.001, "count": 54, "layers": {"P1::받침패드": [90, 160, 90, true], "P1::받침대좌": [190, 90, 90, true], "P1::말뚝": [110, 110, 110, true], "P1::코핑": [210, 180, 80, true], "P1::기둥": [200, 140, 90, true], "P1::기초": [120, 150, 200, true], "P1::버림콘크리트": [160, 160, 160, true]}, "objects": {"P1-BP10": {"layer": "P1::받침패드", "type": "Brep", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [4659.59, 130.44, 43837.0, 5447.21, 1069.16, 43887.0], "user": {"fck": "-", "id": "P1-BP10", "role": "bearing pad h2 NO.10 2800 kN 양방향", "source_views": "D1 평면도, D1 단면도, D2 교량받침 상세·ELEVATION TABLE"}, "faces": 6, "solid": true, "volume": 29366666.7}, "P1-BS10": {"layer": "P1::받침대좌", "type": "Brep", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [4420.0, -95.8, 43698.0, 5712.5, 1242.6, 43837.0], "user": {"fck": "40MPa", "id": "P1-BS10", "role": "bearing pedestal h1 NO.10 girder 5 rear", "source_views": "D1 평면도, D1 단면도, D2 ELEVATION TABLE"}, "faces": 6, "solid": true, "volume": 208505497.5}, "P1-BP09": {"layer": "P1::받침패드", "type": "Brep", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [2154.29, 130.44, 43766.0, 2941.91, 1069.16, 43816.0], "user": {"fck": "-", "id": "P1-BP09", "role": "bearing pad h2 NO.9 2800 kN 양방향", "source_views": "D1 평면도, D1 단면도, D2 교량받침 상세·ELEVATION TABLE"}, "faces": 6, "solid": true, "volume": 29366666.7}, "P1-BS09": {"layer": "P1::받침대좌", "type": "Brep", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [1914.67, -95.8, 43627.0, 3207.17, 1242.6, 43766.0], "user": {"fck": "40MPa", "id": "P1-BS09", "role": "bearing pedestal h1 NO.9 girder 4 rear", "source_views": "D1 평면도, D1 단면도, D2 ELEVATION TABLE"}, "faces": 6, "solid": true, "volume": 208505497.4}, "P1-BP08": {"layer": "P1::받침패드", "type": "Brep", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [-406.03, 127.46, 43694.0, 491.43, 1072.14, 43744.0], "user": {"fck": "-", "id": "P1-BP08", "role": "bearing pad h2 NO.8 2800 kN 교축방향", "source_views": "D1 평면도, D1 단면도, D2 교량받침 상세·ELEVATION TABLE"}, "faces": 6, "solid": true, "volume": 34041666.7}, "P1-BS08": {"layer": "P1::받침대좌", "type": "Brep", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [-590.67, -95.8, 43555.0, 701.83, 1242.6, 43694.0], "user": {"fck": "40MPa", "id": "P1-BS08", "role": "bearing pedestal h1 NO.8 girder 3 rear", "source_views": "D1 평면도, D1 단면도, D2 ELEVATION TABLE"}, "faces": 6, "solid": true, "volume": 208505497.4}, "P1-BP07": {"layer": "P1::받침패드", "type": "Brep", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [-2856.41, 130.44, 43622.0, -2068.79, 1069.16, 43672.0], "user": {"fck": "-", "id": "P1-BP07", "role": "bearing pad h2 NO.7 2800 kN 양방향 [추론: 평행 이동]", "source_views": "D1 평면도, D1 단면도, D2 교량받침 상세·ELEVATION TABLE"}, "faces": 6, "solid": true, "volume": 29366666.7}, "P1-BS07": {"layer": "P1::받침대좌", "type": "Brep", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [-3096.0, -95.8, 43483.0, -1803.5, 1242.6, 43622.0], "user": {"fck": "40MPa", "id": "P1-BS07", "role": "bearing pedestal h1 NO.7 girder 2 rear [추론: 평행 이동]", "source_views": "D1 평면도, D1 단면도, D2 ELEVATION TABLE"}, "faces": 6, "solid": true, "volume": 208505497.5}, "P1-BP06": {"layer": "P1::받침패드", "type": "Brep", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [-5361.71, 130.44, 43550.0, -4574.09, 1069.16, 43600.0], "user": {"fck": "-", "id": "P1-BP06", "role": "bearing pad h2 NO.6 2800 kN 양방향 [추론: 평행 이동]", "source_views": "D1 평면도, D1 단면도, D2 교량받침 상세·ELEVATION TABLE"}, "faces": 6, "solid": true, "volume": 29366666.7}, "P1-BS06": {"layer": "P1::받침대좌", "type": "Brep", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [-5601.33, -95.8, 43411.0, -4308.83, 1242.6, 43550.0], "user": {"fck": "40MPa", "id": "P1-BS06", "role": "bearing pedestal h1 NO.6 girder 1 rear [추론: 평행 이동]", "source_views": "D1 평면도, D1 단면도, D2 ELEVATION TABLE"}, "faces": 6, "solid": true, "volume": 208505497.4}, "P1-BP05": {"layer": "P1::받침패드", "type": "Brep", "hidden": false, "locked": false, "colour_source": 0, "colour": [0, 0, 0], "bbox": [4514.99, -1178.72, 43862.0, 5421.61, -216.88, 43912.0], "user": {"fck": "-", "id": "P1-BP05", "role": "bearing pad h2 NO.5 3500 kN 양Line truncated
@@ -0,0 +1,78 @@
{
"gate": "G1",
"checker": "g1_shape.py",
"verdict": "PASS",
"summary": {
"total": 171,
"passed": 171,
"failed": 0,
"volumes_m3": {
"lean": 6.792,
"footing": 160.446,
"column": 37.709,
"coping": 89.586
},
"pile_volume_each_m3": 6.899
},
"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\\교각모델링앱\\검증\\web_test_data\\테스트P1\\runs\\current\\G1.3dm",
"mode": "single",
"secs": 28.6,
"build_steps": [
{
"name": "G1:concrete.py",
"secs": 0.38
},
{
"name": "display.py",
"secs": 0.02
}
],
"inputs_sha": "a07fc78446227a14",
"job_id": "1978149fef91"
}
@@ -0,0 +1,12 @@
{
"id": "1978149fef91",
"pid": 9436,
"state": "완료",
"at": "2026-10-20 14:01:56",
"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) 28.6s"
]
}
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,425 @@
{
"summary": {
"total": 42,
"passed": 42,
"failed": 0,
"min_cover": {
"P1": 113.5,
"P2": 158.5,
"P3": 93.5,
"P4": 109.7,
"P5": 93.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": 36,
"actual": 36,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 pipes closed & paired with centrelines",
"detail": "pipes 72 / centrelines 72",
"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 36)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 curve length - L (record, fillets shorten hooks)",
"detail": "min -493.1 / max -493.1 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P4 original length (+coupler b) vs schedule L (worst of 9)",
"expected": 0,
"actual": 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.017,
"diff": 0.017,
"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.017,
"diff": 0.017,
"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": 43061,
"actual": 43061.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": 43061,
"actual": 43061.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": 26508,
"actual": 26508.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 bottom EL",
"expected": 26508,
"actual": 26508.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 radius",
"expected": 897,
"actual": 897.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 radius",
"expected": 897,
"actual": 897.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "hoop level count 67",
"detail": "67",
"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 x36)",
"detail": "",
"result": "PASS"
},
{
"check": "C8",
"item": "tie levels vs chain + 17.5 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "concrete union for cover",
"detail": "1 brep",
"result": "INFO"
},
{
"check": "C8",
"item": "P1 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "min cover to concrete surface per mark (record)",
"detail": "{\"P1\": 113.5, \"P2\": 158.5, \"P3\": 93.5, \"P4\": 109.7, \"P5\": 93.5, \"P6\": 74.0}",
"result": "INFO"
},
{
"check": "C8",
"item": "clearance P1 outer surface vs hoop inner surface (record)",
"detail": "1.0 mm",
"result": "INFO"
}
]
}
@@ -0,0 +1,11 @@
{
"id": "a136d9b52980",
"pid": 9436,
"state": "실행 중",
"at": "2026-10-20 14:02:10",
"log": [
"Rhino 작업 시작",
"[G2] build G1..G2",
"[G2] re-open, check, negative tests, fingerprint"
]
}
@@ -0,0 +1,425 @@
{
"summary": {
"total": 42,
"passed": 41,
"failed": 1,
"min_cover": {
"P1": 113.5,
"P2": 153.5,
"P3": 93.5,
"P4": 109.7,
"P5": 93.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": 36,
"actual": 36,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 pipes closed & paired with centrelines",
"detail": "pipes 72 / centrelines 72",
"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 36)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 curve length - L (record, fillets shorten hooks)",
"detail": "min -493.1 / max -493.1 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P4 original length (+coupler b) vs schedule L (worst of 9)",
"expected": 0,
"actual": 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.017,
"diff": 0.017,
"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.017,
"diff": 0.017,
"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": 43061,
"actual": 43061.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": 43061,
"actual": 43061.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": 26508,
"actual": 26508.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 bottom EL",
"expected": 26508,
"actual": 26508.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 radius",
"expected": 897,
"actual": 897.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 radius",
"expected": 897,
"actual": 897.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "hoop level count 67",
"detail": "67",
"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 x36)",
"detail": "",
"result": "PASS"
},
{
"check": "C8",
"item": "tie levels vs chain + 17.5 (worst)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "concrete union for cover",
"detail": "1 brep",
"result": "INFO"
},
{
"check": "C8",
"item": "P1 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 sample points outside concrete",
"expected": 0,
"actual": 0,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "min cover to concrete surface per mark (record)",
"detail": "{\"P1\": 113.5, \"P2\": 153.5, \"P3\": 93.5, \"P4\": 109.7, \"P5\": 93.5, \"P6\": 74.0}",
"result": "INFO"
},
{
"check": "C8",
"item": "clearance P1 outer surface vs hoop inner surface (record)",
"detail": "1.0 mm",
"result": "INFO"
}
]
}
@@ -0,0 +1,9 @@
{
"G1": {
"decision": "승인",
"by": "테스트",
"note": "",
"at": "2026-10-20 14:01:58",
"inputs_sha": "a07fc78446227a14"
}
}
@@ -0,0 +1,309 @@
{
"_schema": "variability/1",
"status": "초안 — 템플릿 담당자 확정 전",
"grades": {
"V1": "값 변수",
"V2": "목록 변수",
"V3": "생성 변수",
"F": "고정"
},
"sections": {
"params:_meta": {
"grade": "F",
"source": [
"템플릿 고정"
],
"fixed_fields": [],
"note": "참고 정보(게이트가 쓰지 않음)",
"info": true
},
"params:lean_concrete": {
"grade": "V1",
"source": [
"표 밖 치수"
],
"fixed_fields": [],
"note": "버림콘크리트 치수·EL",
"info": false
},
"params:footing": {
"grade": "V1",
"source": [
"표 밖 치수"
],
"fixed_fields": [],
"note": "기초 치수·EL (rot_deg = 기초 회전 각도 값)",
"info": false
},
"params:column": {
"grade": "V1",
"source": [
"표 밖 치수"
],
"fixed_fields": [
"shape"
],
"note": "기둥 지름·높이 (단면 형식 shape는 고정)",
"info": false
},
"params:coping": {
"grade": "V2",
"source": [
"표 밖 치수"
],
"fixed_fields": [
"form"
],
"note": "코핑 외곽·치수 (형식 form은 고정)",
"info": false
},
"params:piles": {
"grade": "V1",
"source": [
"표 밖 치수"
],
"fixed_fields": [
"kind"
],
"note": "말뚝 개수·간격·길이 (말뚝 유무는 템플릿 형식)",
"info": false
},
"params:hitl_decisions_2026_10_07": {
"grade": "F",
"source": [
"템플릿 고정"
],
"fixed_fields": [],
"note": "참고 정보(게이트가 쓰지 않음)",
"info": true
},
"params:bearing_seats": {
"grade": "V1",
"source": [
"표",
"표 밖 치수"
],
"fixed_fields": [
"pedestal",
"pedestals"
],
"note": "받침 표 값 + 평면 위치 (대좌 구조는 고정)",
"info": false
},
"params:column_rebar": {
"grade": "V2",
"source": [
"표 밖 치수"
],
"fixed_fields": [
"form"
],
"note": "기둥 철근 사슬·위치",
"info": false
},
"params:footing_rebar": {
"grade": "V2",
"source": [
"표 밖 치수"
],
"fixed_fields": [
"form"
],
"note": "기초 철근 위치 사슬",
"info": false
},
"params:coping_rebar": {
"grade": "V2",
"source": [
"표 밖 치수"
],
"fixed_fields": [
"form",
"host",
"group"
],
"note": "코핑 철근",
"info": false
},
"params:sole_plates": {
"grade": "V1",
"source": [
"표"
],
"fixed_fields": [
"bearing_size"
],
"note": "솔플레이트 표 값 (받침 크기 규칙은 고정)",
"info": false
},
"params:_schema": {
"grade": "F",
"source": [
"템플릿 고정"
],
"fixed_fields": [],
"note": "참고 정보(게이트가 쓰지 않음)",
"info": true
},
"params:pier_id": {
"grade": "F",
"source": [
"템플릿 고정"
],
"fixed_fields": [],
"note": "교각 식별자",
"info": false
},
"params:rebar_marks": {
"grade": "V1",
"source": [
"표"
],
"fixed_fields": [
"*.shape"
],
"note": "재료표 직경·형상 (마크 체계의 형상은 고정)",
"info": false
},
"params:rebar_marks_src": {
"grade": "F",
"source": [
"템플릿 고정"
],
"fixed_fields": [],
"note": "참고 정보(게이트가 쓰지 않음)",
"info": true
},
"params:materials": {
"grade": "V1",
"source": [
"표 밖 치수"
],
"fixed_fields": [],
"note": "재료 강도 주기",
"info": false
},
"params:display": {
"grade": "F",
"source": [
"템플릿 고정"
],
"fixed_fields": [],
"note": "표시·색 설정",
"info": false
},
"expected:_schema": {
"grade": "F",
"source": [
"템플릿 고정"
],
"fixed_fields": [],
"note": "참고 정보(게이트가 쓰지 않음)",
"info": true
},
"expected:_note": {
"grade": "F",
"source": [
"템플릿 고정"
],
"fixed_fields": [],
"note": "참고 정보(게이트가 쓰지 않음)",
"info": true
},
"expected:pier_id": {
"grade": "F",
"source": [
"템플릿 고정"
],
"fixed_fields": [],
"note": "교각 식별자",
"info": false
},
"expected:tol_mm": {
"grade": "V1",
"source": [
"사람 입력"
],
"fixed_fields": [],
"note": "허용 오차",
"info": false
},
"expected:G1": {
"grade": "V2",
"source": [
"표",
"표 밖 치수"
],
"fixed_fields": [],
"note": "독립 기대값 (params와 따로 도면에서 옮긴 값)",
"info": false
},
"expected:G2": {
"grade": "V2",
"source": [
"표",
"표 밖 치수"
],
"fixed_fields": [],
"note": "독립 기대값 (params와 따로 도면에서 옮긴 값)",
"info": false
},
"expected:G3": {
"grade": "V2",
"source": [
"표",
"표 밖 치수"
],
"fixed_fields": [],
"note": "독립 기대값 (params와 따로 도면에서 옮긴 값)",
"info": false
},
"expected:G4": {
"grade": "V2",
"source": [
"표",
"표 밖 치수"
],
"fixed_fields": [],
"note": "독립 기대값 (params와 따로 도면에서 옮긴 값)",
"info": false
},
"expected:G5": {
"grade": "V2",
"source": [
"표",
"표 밖 치수"
],
"fixed_fields": [],
"note": "독립 기대값 (params와 따로 도면에서 옮긴 값)",
"info": false
},
"expected:rebar_palette": {
"grade": "V1",
"source": [
"사람 입력"
],
"fixed_fields": [],
"note": "철근 직경별 색 (사람 결정 기록)",
"info": false
},
"expected:rebar_palette_src": {
"grade": "F",
"source": [
"템플릿 고정"
],
"fixed_fields": [],
"note": "참고 정보(게이트가 쓰지 않음)",
"info": true
},
"expected:planned_fail": {
"grade": "V1",
"source": [
"사람 입력"
],
"fixed_fields": [],
"note": "계획된 FAIL (사람 결정 기록)",
"info": false
}
}
}