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
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,163 @@
{
"expected:G1": {
"sha": "5f5fa222917824b6",
"by": "심영표",
"at": "2026-10-20 15:19:59",
"why": "[검토 요약 일괄 확정] 앱 확인 일치 — C2 표 후보 10건이 현재 값과 모두 같다 | 변경: 생성 시점 대비 85/150개 값이 바뀜 — column.height: 12003 → 10029; coping.z_top_center: 43555 → 40697; coping.z_top_left: 43411 → 40547 … | 출처: 도면에서 읽기 27건 반영 (2026-10-20 15:19 심영표)",
"app_st": "g"
},
"expected:G2": {
"sha": "97443ee6a4a95666",
"by": "심영표",
"at": "2026-10-20 15:19:59",
"why": "[검토 요약 일괄 확정] 사용자가 도면과 대조했다고 표시함. 앱 확인 주의 — C2b 앵커 필드 9개 중 5개만 같다 (A 3 · B 2) — 대조 범위 56% | 변경: 생성 시점 대비 14/50개 값이 바뀜 — dia.P4: 19 → 29; dia.P5: 19 → 29; hoop_chain.groups.2.0: 36 → 30 … | 출처: 도면에서 읽기 13건 반영 (2026-10-20 15:19 심영표)",
"app_st": "w"
},
"expected:G3": {
"sha": "c9f4bb140a943b51",
"by": "심영표",
"at": "2026-10-20 15:19:59",
"why": "[검토 요약 일괄 확정] 사용자가 도면과 대조했다고 표시함. 앱 확인 주의 — C2b 앵커 필드 19개 중 11개만 같다 (A 11 · B 0) — 대조 범위 58% | 변경: 생성 시점 대비 44/84개 값이 바뀜 — b10_size.0: 9198 → 10198; b10_size.1: 7644 → 8144; b9_grid.x.n: 34 → 38 … | 출처: 도면에서 읽기 15건 반영 (2026-10-20 15:19 심영표)",
"app_st": "w"
},
"expected:G4": {
"sha": "17b1ed4903744fc7",
"by": "심영표",
"at": "2026-10-20 15:19:59",
"why": "[검토 요약 일괄 확정] 사용자가 도면과 대조했다고 표시함. 앱 확인 주의 — C2b 앵커 필드 26개 중 8개만 같다 (A 3 · B 5) — 대조 범위 31% | 변경: 생성 시점 대비 51/147개 값이 바뀜 — L.C1: 14490 → 14491.0; L.C10: 10310 → 10323.0; L.C11: 8934 → 8954.0 … | 출처: 도면에서 읽기 21건 반영 (2026-10-20 15:19 심영표)",
"app_st": "w"
},
"expected:G5": {
"sha": "b240c3c9d9873f65",
"by": "심영표",
"at": "2026-10-20 15:19:59",
"why": "[검토 요약 일괄 확정] 앱 확인 일치 — C2 표 후보 60건이 현재 값과 모두 같다 | 변경: 생성 시점 대비 32/51개 값이 바뀜 — L: 800 → null; L.1: null → 700; L.10: null → 800 … | 출처: 도면에서 읽기 35건 반영 (2026-10-20 15:19 심영표)",
"app_st": "g"
},
"expected:pier_id": {
"sha": "2d88755373001ece",
"by": "심영표",
"at": "2026-10-20 15:19:59",
"why": "[검토 요약 일괄 확정] 사용자가 도면과 대조했다고 표시함. 앱 확인 주의 — C7 고정(F) 항목이 원본과 다르다 — 사유 기록: 도면에서 읽기 반영(심영표): pier_id | 변경: 생성 시점 대비 1/1개 값이 바뀜 — : P1 → P4",
"app_st": "w"
},
"expected:planned_fail": {
"sha": "e2f80d493d702c9a",
"by": "심영표",
"at": "2026-10-20 15:19:59",
"why": "[검토 요약 일괄 확정] 사용자가 도면과 대조했다고 표시함. 앱 확인 해당 없음 — 사람 결정 기록 또는 참고 정보 — 앱이 도면과 대조하지 않는다 | 변경: 생성 시점 대비 10/32개 값이 바뀜 — 0.approved: 사용자 2026-10-07 → 읽기 도구 제안 — 사용자 승인 필요; 0.reason: 작도 28본 채택(F2) vs D3 3… → 작도 32본 채택(좌우 대칭) vs D…; 6.approved: null → 읽기 도구 제안 — 사용자 승인 필요 … | 주의 표시: 설계자 확인 전 임시 등록 포함",
"app_st": "x"
},
"expected:rebar_palette": {
"sha": "c41013bf3e985022",
"by": "심영표",
"at": "2026-10-20 15:19:59",
"why": "[검토 요약 일괄 확정] 사용자가 도면과 대조했다고 표시함. 앱 확인 해당 없음 — 사람 결정 기록 또는 참고 정보 — 앱이 도면과 대조하지 않는다 | 변경: 생성 시점 값 그대로(15개 값)",
"app_st": "x"
},
"expected:tol_mm": {
"sha": "d0ff5974b6aa52cf",
"by": "심영표",
"at": "2026-10-20 15:19:59",
"why": "[검토 요약 일괄 확정] 사용자가 도면과 대조했다고 표시함. 앱 확인 해당 없음 — 사람 결정 기록 또는 참고 정보 — 앱이 도면과 대조하지 않는다 | 변경: 생성 시점 값 그대로(1개 값)",
"app_st": "x"
},
"params:bearing_seats": {
"sha": "8e964984e226bbea",
"by": "심영표",
"at": "2026-10-20 15:19:59",
"why": "[검토 요약 일괄 확정] 앱 확인 일치 — C2 표 후보 50건이 현재 값과 모두 같다 | 변경: 생성 시점 대비 89/200개 값이 바뀜 — bearings.0.A: 700 → 600; bearings.0.B: 640 → 510; bearings.0.centre.0: -5053.0 → -4998.3 … | 출처: 도면에서 읽기 63건 반영 (2026-10-20 15:19 심영표)",
"app_st": "g"
},
"params:column": {
"sha": "5eab80c855c7fefc",
"by": "심영표",
"at": "2026-10-20 15:19:59",
"why": "[검토 요약 일괄 확정] 앱 확인 일치 — C2b A등급 1건·B등급 0건이 현재 값과 같다 (앵커가 있는 1개 필드의 100%) | 변경: 생성 시점 대비 1/5개 값이 바뀜 — height: 12003 → 10029 | 출처: 도면에서 읽기 1건 반영 (2026-10-20 15:19 심영표)",
"app_st": "g"
},
"params:column_rebar": {
"sha": "f6f4e2173c11dd92",
"by": "심영표",
"at": "2026-10-20 15:19:59",
"why": "[검토 요약 일괄 확정] 사용자가 도면과 대조했다고 표시함. 앱 확인 근거 없음 — 앱이 독립적으로 대조할 근거가 없다 — 도면과 직접 대조한 뒤 사유와 함께 확정 | 변경: 생성 시점 대비 103/227개 값이 바뀜 — hoops.levels.0: 27388 → 26498; hoops.levels.1: 27508 → 26618; hoops.levels.10: 28588 → 27698 … | 출처: 도면에서 읽기 16건 반영 (2026-10-20 15:19 심영표)",
"app_st": "n"
},
"params:coping": {
"sha": "96483ffb02ce6e98",
"by": "심영표",
"at": "2026-10-20 15:19:59",
"why": "[검토 요약 일괄 확정] 앱 확인 일치 — C2b A등급 1건·B등급 3건이 현재 값과 같다 (앵커가 있는 5개 필드의 80%) | 변경: 생성 시점 대비 14/31개 값이 바뀜 — top_steps.0.x1: -3801 → -3748.0; top_steps.0.z: 43411 → 40547; top_steps.1.x0: -3801 → -3748.0 … | 출처: 도면에서 읽기 14건 반영 (2026-10-20 15:19 심영표)",
"app_st": "g"
},
"params:coping_rebar": {
"sha": "81bc5776db14cedf",
"by": "심영표",
"at": "2026-10-20 15:19:59",
"why": "[검토 요약 일괄 확정] 사용자가 도면과 대조했다고 표시함. 앱 확인 근거 없음 — 앱이 독립적으로 대조할 근거가 없다 — 도면과 직접 대조한 뒤 사유와 함께 확정 | 변경: 생성 시점 대비 113/322개 값이 바뀜 — bottom.z_flat: 40511 → 37647; c14.hooks_up.0.1: 41011 → 38146.6; c14.hooks_up.1.1: 41011 → 38146.6 … | 출처: 도면에서 읽기 18건 반영 (2026-10-20 15:19 심영표); 도면에서 읽기 1건 반영 (2026-10-20 15:19 심영표)",
"app_st": "n"
},
"params:display": {
"sha": "64150d0763b23484",
"by": "심영표",
"at": "2026-10-20 15:19:59",
"why": "[검토 요약 일괄 확정] 사용자가 도면과 대조했다고 표시함. 앱 확인 주의 — C7 고정(F) 항목이 원본과 다르다 — 사유 기록: 도면에서 읽기 반영(심영표): display.hidden_ids | 변경: 생성 시점 대비 2/73개 값이 바뀜 — hidden_ids.0: P1-FT → P4-FT; hidden_ids.1: P1-CP → P4-CP | 출처: 도면에서 읽기 1건 반영 (2026-10-20 15:19 심영표)",
"app_st": "w"
},
"params:footing": {
"sha": "52f670b4162e65e2",
"by": "심영표",
"at": "2026-10-20 15:19:59",
"why": "[검토 요약 일괄 확정] 사용자가 도면과 대조했다고 표시함. 앱 확인 근거 없음 — 앱이 독립적으로 대조할 근거가 없다 — 도면과 직접 대조한 뒤 사유와 함께 확정 | 변경: 생성 시점 대비 3/9개 값이 바뀜 — size_x: 9350 → 10350.0; size_y: 7800 → 8300.0; z_bottom: 26208 → 25318 | 출처: 도면에서 읽기 3건 반영 (2026-10-20 15:19 심영표)",
"app_st": "n"
},
"params:footing_rebar": {
"sha": "e904819c5b59e66e",
"by": "심영표",
"at": "2026-10-20 15:19:59",
"why": "[검토 요약 일괄 확정] 사용자가 도면과 대조했다고 표시함. 앱 확인 근거 없음 — 앱이 독립적으로 대조할 근거가 없다 — 도면과 직접 대조한 뒤 사유와 함께 확정 | 변경: 생성 시점 대비 466/597개 값이 바뀜 — a_x: 9150.0 → 10150; a_y: 7600.0 → 8100; b10.size_x: 9198 → 10198.0 … | 출처: 도면에서 읽기 28건 반영 (2026-10-20 15:19 심영표)",
"app_st": "n"
},
"params:lean_concrete": {
"sha": "ca8b08a04034f361",
"by": "심영표",
"at": "2026-10-20 15:19:59",
"why": "[검토 요약 일괄 확정] 사용자가 도면과 대조했다고 표시함. 앱 확인 근거 없음 — 앱이 독립적으로 대조할 근거가 없다 — 도면과 직접 대조한 뒤 사유와 함께 확정 | 변경: 생성 시점 대비 4/8개 값이 바뀜 — size_x: 9550 → 10550.0; size_y: 8000 → 8500.0; z_bottom: 26108 → 25218 … | 출처: 도면에서 읽기 4건 반영 (2026-10-20 15:19 심영표)",
"app_st": "n"
},
"params:materials": {
"sha": "84f210201086bd7c",
"by": "심영표",
"at": "2026-10-20 15:19:59",
"why": "[검토 요약 일괄 확정] 사용자가 도면과 대조했다고 표시함. 앱 확인 근거 없음 — C3 현재 값이 템플릿 원본 그대로이고 새 도면 근거가 없다 | 변경: 생성 시점 값 그대로(6개 값) | 주의 표시: 템플릿 원본 그대로(새 도면 근거 없음)",
"app_st": "n"
},
"params:pier_id": {
"sha": "2d88755373001ece",
"by": "심영표",
"at": "2026-10-20 15:19:59",
"why": "[검토 요약 일괄 확정] 사용자가 도면과 대조했다고 표시함. 앱 확인 주의 — C7 고정(F) 항목이 원본과 다르다 — 사유 기록: 도면에서 읽기 반영(심영표): pier_id | 변경: 생성 시점 대비 1/1개 값이 바뀜 — : P1 → P4",
"app_st": "w"
},
"params:piles": {
"sha": "8c0b59c8f4fcc2db",
"by": "심영표",
"at": "2026-10-20 15:19:59",
"why": "[검토 요약 일괄 확정] 사용자가 도면과 대조했다고 표시함. 앱 확인 근거 없음 — 앱이 독립적으로 대조할 근거가 없다 — 도면과 직접 대조한 뒤 사유와 함께 확정 | 변경: 생성 시점 대비 3/15개 값이 바뀜 — length: 24400 → 26200; pitch_x: null → 1750.0; pitch_y: null → 1675.0 | 출처: 도면에서 읽기 3건 반영 (2026-10-20 15:19 심영표)",
"app_st": "n"
},
"params:rebar_marks": {
"sha": "e4ad42a5f585d89a",
"by": "심영표",
"at": "2026-10-20 15:19:59",
"why": "[검토 요약 일괄 확정] 앱 확인 일치 — C2 표 후보 36건이 현재 값과 모두 같다 | 변경: 생성 시점 대비 4/72개 값이 바뀜 — C3.dia: H29 → H25; C6.dia: H29 → H25; P4.dia: H19 → H29 … | 출처: 도면에서 읽기 4건 반영 (2026-10-20 15:19 심영표)",
"app_st": "g"
},
"params:sole_plates": {
"sha": "87e3fa796cd78fff",
"by": "심영표",
"at": "2026-10-20 15:19:59",
"why": "[검토 요약 일괄 확정] 앱 확인 일치 — C2 표 후보 41건이 현재 값과 모두 같다 | 변경: 생성 시점 대비 16/161개 값이 바뀜 — h3: 181 → 165; table.0.L: 800 → 700; table.0.W: 740 → 610 … | 출처: 도면에서 읽기 16건 반영 (2026-10-20 15:19 심영표)",
"app_st": "g"
}
}
@@ -0,0 +1,26 @@
[
{
"source": "C0050205-034-운곡교 교각도(1)(완도방향 P4).dwg",
"source_sha256": "fff0eebf1728b23d2657263ccd145cd71718fb6062c02fe87e5376ba4ab08323",
"dxf": "C0050205-034-운곡교 교각도(1)(완도방향 P4).dxf",
"dxf_sha256": "fab989b336883c1e4a06950ea1648082f46c1bfbc79374826244f7923563fb4d",
"engine": "ODA File Converter 27.1.0",
"label": "D1"
},
{
"source": "C0050205-035-운곡교 교각도(2)(완도방향 P4).dwg",
"source_sha256": "2ea47f8d81b1f4bba068fa167477562c312ef4a9c14bbcee042037fe87031a33",
"dxf": "C0050205-035-운곡교 교각도(2)(완도방향 P4).dxf",
"dxf_sha256": "35a6dbde4ad39e0a4f01a0b3f04e4b60234209f7eabb6c8abe093be3ff4e7ad3",
"engine": "ODA File Converter 27.1.0",
"label": "D2"
},
{
"source": "C0050205-036-운곡교 교각도(3)(완도방향 P4).dwg",
"source_sha256": "fd1ee8d7f57579f8b094cad2f1e64037dba1daa187280fdfe547339d1c492d47",
"dxf": "C0050205-036-운곡교 교각도(3)(완도방향 P4).dxf",
"dxf_sha256": "ee6a9d326f887d20a2eb6fb100ea33cd18f024438401ffa67482fb2dbafaec22",
"engine": "ODA File Converter 27.1.0",
"label": "D3"
}
]
@@ -0,0 +1 @@
[{"dwg": "D1", "layer": "CS-DIMT", "x": 43035.4, "y": 28049.9, "h": 150.0, "text": "137", "handle": "2ABB1"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 45797.9, "y": 28049.9, "h": 150.0, "text": "138", "handle": "2ABB2"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43035.4, "y": 21053.6, "h": 150.0, "text": "137", "handle": "2ABB3"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44314.7, "y": 20663.6, "h": 150.0, "text": "3.100", "handle": "2ABB4"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 46137.4, "y": 28001.3, "h": 150.0, "text": "(1~3단)", "handle": "2ABB5"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 45797.9, "y": 21053.6, "h": 150.0, "text": "138", "handle": "2ABB6"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43956.2, "y": 21263.6, "h": 150.0, "text": "21@125=2.625", "handle": "2ABB7"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 42641.9, "y": 21263.6, "h": 150.0, "text": "100", "handle": "2ABB8"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44314.7, "y": 28859.9, "h": 150.0, "text": "3.100", "handle": "2ABB9"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 42641.9, "y": 28259.9, "h": 150.0, "text": "100", "handle": "2ABBA"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 46341.9, "y": 21263.6, "h": 150.0, "text": "100", "handle": "2ABBB"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43956.2, "y": 28259.9, "h": 150.0, "text": "21@125=2.625", "handle": "2ABBC"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 42641.9, "y": 21863.6, "h": 150.0, "text": "100", "handle": "2ABBD"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43256.9, "y": 21863.6, "h": 150.0, "text": "580", "handle": "2ABBE"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 46341.9, "y": 28259.9, "h": 150.0, "text": "100", "handle": "2ABBF"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44996.9, "y": 21863.6, "h": 150.0, "text": "580", "handle": "2ABC0"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43836.9, "y": 21863.6, "h": 150.0, "text": "580", "handle": "2ABC1"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44416.9, "y": 21863.6, "h": 150.0, "text": "580", "handle": "2ABC2"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 46266.9, "y": 21863.6, "h": 150.0, "text": "100", "handle": "2ABC3"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 42641.9, "y": 8459.9, "h": 150.0, "text": "100", "handle": "2ABC4"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 45576.9, "y": 21863.6, "h": 150.0, "text": "580", "handle": "2ABC5"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43956.2, "y": 8459.9, "h": 150.0, "text": "21@125=2.625", "handle": "2ABC6"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44314.7, "y": 7859.9, "h": 150.0, "text": "3.100", "handle": "2ABC7"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 46416.9, "y": 17509.7, "h": 150.0, "text": "100", "handle": "2ABC8"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 46341.9, "y": 8459.9, "h": 150.0, "text": "100", "handle": "2ABC9"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 42641.9, "y": 17509.7, "h": 150.0, "text": "100", "handle": "2ABCA"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44314.7, "y": 18109.7, "h": 150.0, "text": "3.100", "handle": "2ABCB"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43893.7, "y": 17509.7, "h": 150.0, "text": "10@250=2.500", "handle": "2ABCC"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 42641.9, "y": 16909.7, "h": 150.0, "text": "100", "handle": "2ABCD"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 46341.9, "y": 16909.7, "h": 150.0, "text": "100", "handle": "2ABCE"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43956.2, "y": 16909.7, "h": 150.0, "text": "21@125=2.625", "handle": "2ABCF"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 42641.9, "y": 9059.9, "h": 150.0, "text": "100", "handle": "2ABD0"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43256.9, "y": 9059.9, "h": 150.0, "text": "580", "handle": "2ABD1"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44996.9, "y": 9059.9, "h": 150.0, "text": "580", "handle": "2ABD2"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43836.9, "y": 9059.9, "h": 150.0, "text": "580", "handle": "2ABD3"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 44416.9, "y": 9059.9, "h": 150.0, "text": "580", "handle": "2ABD4"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 45576.9, "y": 9059.9, "h": 150.0, "text": "580", "handle": "2ABD5"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 40095.3, "y": 10522.9, "h": 150.0, "text": "100", "handle": "2ABD6"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 46266.9, "y": 9059.9, "h": 150.0, "text": "100", "handle": "2ABD7"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 40095.3, "y": 14197.9, "h": 150.0, "text": "100", "handle": "2ABD8"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 40095.3, "y": 11563.8, "h": 150.0, "text": "9@250=2.250", "handle": "2ABD9"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 43035.4, "y": 16699.7, "h": 150.0, "text": "137", "handle": "2ABDA"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 40095.3, "y": 13438.6, "h": 150.0, "text": "700", "handle": "2ABDB"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 39495.3, "y": 12211.3, "h": 150.0, "text": "3.150", "handle": "2ABDC"}, {"dwg": "D1", "layer": "CS-DIMT", "x": 45797.9, "y": 16699.7, "h": 150.0, "text": "138", "handle": "2ABDD"}, {"dwg": "D1", "layer": "CS-DIMT", "xLine truncated
@@ -0,0 +1,26 @@
[
{
"at": "2026-10-20 15:19:37",
"section": "params:display",
"fixed_fields": [
"display.hidden_ids"
],
"reason": "도면에서 읽기 반영(심영표): display.hidden_ids"
},
{
"at": "2026-10-20 15:19:37",
"section": "expected:pier_id",
"fixed_fields": [
"pier_id"
],
"reason": "도면에서 읽기 반영(심영표): pier_id"
},
{
"at": "2026-10-20 15:19:37",
"section": "params:pier_id",
"fixed_fields": [
"pier_id"
],
"reason": "도면에서 읽기 반영(심영표): pier_id"
}
]
@@ -0,0 +1,865 @@
{
"_schema": "pier-T-expected/1",
"_note": "독립 기대값: 도면 치수 문자·표(D1~D3)에서 직접 옮긴 값. 생성용 params.json과 별도로 관리하며 검사기는 params를 읽지 않는다. 원출처: Code/교각모델링/verify_*.py (검증서 v0.1.05).",
"pier_id": "P4",
"tol_mm": 1.0,
"G1": {
"footing": {
"dx": 10350,
"dy": 8300,
"z0": 25318,
"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": 10029,
"src": "D1 '2.000' '12.003'"
},
"coping": {
"dx": 12400,
"dy": 3100,
"z_top_left": 40547,
"rise_upper": 1500,
"rise_lower": 1500,
"z_top_right": 40847,
"z_top_center": 40697,
"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,
37547
],
[
1100,
37547
],
[
6200,
39047
],
[
6000,
40847
],
[
3752,
40847
],
[
3752,
40772
],
[
1252,
40772
],
[
1252,
40697
],
[
-1248,
40697
],
[
-1248,
40622
],
[
-3748,
40622
],
[
-3748,
40547
],
[
-6000,
40547
],
[
-6200,
39047
]
],
"coping_outline_src": "D1 정면도 외형 (원호는 현으로 대체 후 활꼴 2개 차감)",
"dxf_arc_centres": {
"datum_x": 12159.4,
"datum_y": 16515.6,
"datum_el": 37547,
"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": 26200,
"head_embedment": 100,
"src": "D1 '5@1.550' '4@1.550' '800' 'Ø600' 'L=24.4M'; 매입 100 (CS-CNTL)",
"pitch_x": 1750,
"pitch_y": 1675
},
"seats": {
"table": {
"1": [
40777,
180,
50,
600,
510
],
"2": [
40852,
180,
50,
600,
510
],
"3": [
40927,
180,
50,
600,
650
],
"4": [
41002,
180,
50,
600,
510
],
"5": [
41077,
180,
50,
600,
510
],
"6": [
40752,
155,
50,
700,
640
],
"7": [
40827,
155,
50,
700,
640
],
"8": [
40902,
155,
50,
700,
790
],
"9": [
40977,
155,
50,
700,
640
],
"10": [
41052,
155,
50,
700,
640
]
},
"table_columns": [
"EL.'X'",
"h1",
"h2",
"A",
"B"
],
"girders": 5,
"step_top": {
"1": 40547,
"2": 40622,
"3": 40697,
"4": 40772,
"5": 40847
},
"step_x": {
"1": [
-6000,
-3748
],
"2": [
-3748,
-1248
],
"3": [
-1248,
1252
],
"4": [
1252,
3752
],
"5": [
3752,
6000
]
},
"row_y": {
"front": -701,
"rear": 599
},
"pitch_chain": [
3,
7500
],
"pedestal_plan": [
1250,
1200
],
"pad_margin": [
200,
100
],
"rear_first_from_tip": 1198,
"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": 15273.0,
"P2": 14579.0,
"P3": 6436,
"P4": 5667.0,
"P5": 5667.0,
"P6": 2136
},
"schedule_n": {
"P1": 46,
"P2": 46,
"P3": 30,
"P4": 9,
"P5": 22,
"P6": 28
},
"dia": {
"P1": 32,
"P2": 32,
"P3": 19,
"P4": 29,
"P5": 29,
"P6": 16
},
"hoop_chain": {
"start": [
150,
1030
],
"groups": [
[
8,
120
],
[
22,
120
],
[
30,
300
]
]
},
"hoop_marks_by_zone": [
[
"P4",
9
],
[
"P5",
22
],
[
"P3",
30
]
],
"tie_chain": {
"start": [
150,
1030
],
"groups": [
[
6,
1800
]
]
},
"tie_offset": 22.5,
"r_outer": 870.5,
"r_inner": 825.5,
"r_hoop": 902,
"main_divisions": 46,
"bottom_above_footing": 300,
"p1_top_parts": [
300,
340,
14239
],
"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": [
8500.0,
42
],
"B2": [
12000.0,
42
],
"B3": [
8500.0,
42
],
"B4": [
8100.0,
39
],
"B5": [
10550.0,
34
],
"B6": [
14050.0,
34
],
"B7": [
10550.0,
34
],
"B8": [
10150.0,
31
],
"B9": [
2155.0,
589
],
"B10": [
36684.0,
9
],
"B11": [
10350.0,
30
],
"B12": [
8300.0,
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": [
-4050,
4050
],
"start": -3875,
"pitch": 125,
"n": 63
},
"X_250": {
"ends": [
-4050,
4050
],
"start": -3875,
"pitch": 250,
"n": 32
}
},
"b10_levels": {
"start": 350,
"pitch": 200,
"n": 9
},
"b10_size": [
10198,
8144
],
"b9_grid": {
"x": {
"start": -4625,
"pitch": 250,
"n": 38
},
"y": {
"start": -3750,
"pitch": 250,
"n": 31
}
},
"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": 14491.0,
"C2": 12082.0,
"C3": 12107.0,
"C4": 14491.0,
"C5": 12082.0,
"C6": 12107.0,
"C7": 13994,
"C8": 13994,
"C9": 8503.0,
"C10": 10323.0,
"C11": 8954.0,
"C12": 20513,
"C13": 28966.0,
"C14": 3600,
"C15": 2748.0,
"C16": 5600.0,
"S1": 3800,
"S2": 2500
},
"range": {
"C9": [
"b_sched",
2812,
1376
],
"C11": [
"b_sched",
2962,
1677
],
"C10": [
"b_sched",
3004,
3004
],
"C12": [
"a_sched",
12228,
3151
],
"C13": [
"a_sched",
12167,
12045
]
},
"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": 40447,
"C4": 40447,
"C2": 40347,
"C5": 40347,
"C3": 40247,
"C6": 40247
},
"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": 37647,
"loop_z": {
"C12": {
"start": 37897,
"pitch": 250,
"n": 6
},
"C13": [
39397,
39647,
39897
]
},
"c15_top": 40747,
"c16_top": 40597,
"c14_levels": [
[
40596.8,
1
],
[
40324.1,
11
],
[
40224.1,
11
],
[
39646.6,
6
],
[
39146.6,
5
],
[
38646.6,
4
],
[
38146.6,
3
]
],
"s_per_girder": {
"S1": [
10,
50
],
"S2": [
21,
100
]
},
"step_top": {
"1": 40547,
"2": 40622,
"3": 40697,
"4": 40772,
"5": 40847
},
"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": 40777,
"2": 40852,
"3": 40927,
"4": 41002,
"5": 41077,
"6": 40752,
"7": 40827,
"8": 40902,
"9": 40977,
"10": 41052
},
"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": 610,
"2": 610,
"3": 750,
"4": 610,
"5": 610,
"6": 740,
"7": 740,
"8": 890,
"9": 740,
"10": 740
},
"L": {
"1": 700,
"2": 700,
"3": 700,
"4": 700,
"5": 700,
"6": 800,
"7": 800,
"8": 800,
"9": 800,
"10": 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)·색 = 사용자 지시 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": "작도 32본 채택(좌우 대칭) vs D3 38본 — 설계자 확인 대기",
"approved": "읽기 도구 제안 — 사용자 승인 필요"
},
{
"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"
},
{
"gate": "G3",
"item": "B11 bar count vs schedule",
"reason": "작도 32본 채택(좌우 대칭) vs D3 30본 — 설계자 확인 대기",
"approved": "읽기 도구 제안 — 사용자 승인 필요"
},
{
"gate": "G4",
"item": "C13 schedule L reproduced by convention (max+min)/2",
"reason": "재료표 C13 L 28.966이 규칙 (max+min)/2 = 29.346과 380 mm 다름 — 재료표 자체 불일치, 설계자 확인 대기",
"approved": "읽기 도구 제안 — 사용자 승인 필요"
}
]
}
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,120 @@
{
"name": "운곡교P4",
"type": "T형",
"created": "2026-10-20 15:19:20",
"template": "템플릿: 운곡교P1형",
"origin": {
"label": "템플릿: 운곡교P1형",
"at": "2026-10-20 15:19:20",
"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\""
}
}
},
"fit_answers": {
"foundation": "기초판+말뚝",
"soffit": "곡선",
"bearings": "10",
"rebar_shape": "미확인",
"rebar_method": "미확인",
"skew_deg": "",
"bearing_rot_deg": "",
"footing_rot_deg": ""
},
"fit_mismatch": []
}
@@ -0,0 +1,304 @@
[
{
"at": "2026-10-20 15:19:37",
"by": "심영표",
"count": 285,
"backup": "before_geomread_20261020_151937",
"fields": [
"params:coping.top_steps.0.x1",
"params:coping.top_steps.0.z",
"params:coping.top_steps.1.x0",
"params:coping.top_steps.1.x1",
"params:coping.top_steps.1.z",
"params:coping.top_steps.2.x0",
"params:coping.top_steps.2.x1",
"params:coping.top_steps.2.z",
"params:coping.top_steps.3.x0",
"params:coping.top_steps.3.x1",
"params:coping.top_steps.3.z",
"params:coping.top_steps.4.x0",
"params:coping.top_steps.4.z",
"params:coping.z_bottom_flat",
"params:coping_rebar.soffit_arc_centre",
"params:coping_rebar.top.tiers.1.z",
"params:coping_rebar.top.tiers.2.z",
"params:coping_rebar.top.tiers.3.z",
"params:coping_rebar.c15.z",
"params:coping_rebar.c15.x0",
"params:coping_rebar.c16.z",
"params:coping_rebar.c16.x1",
"params:coping_rebar.bottom.z_flat",
"params:coping_rebar.loops.levels",
"params:coping_rebar.stirrups.top_right",
"params:coping_rebar.stirrups.bottom",
"params:coping_rebar.c14.points",
"params:coping_rebar.c14.hooks_up",
"params:footing.size_x",
"params:footing.size_y",
"params:footing.z_bottom",
"params:lean_concrete.size_x",
"params:lean_concrete.size_y",
"params:lean_concrete.z_bottom",
"params:lean_concrete.z_top",
"params:column.height",
"params:piles.length",
"params:piles.pitch_x",
"params:piles.pitch_y",
"params:bearing_seats.pitch_x",
"params:bearing_seats.pad_rows.front.centre_rel_girder5",
"params:bearing_seats.pad_rows.front.rotation_deg",
"params:bearing_seats.pad_rows.rear.centre_rel_girder5",
"params:bearing_seats.pad_rows.rear.rotation_deg",
"params:bearing_seats.bearings.0.centre",
"params:bearing_seats.bearings.0.rotation_deg",
"params:bearing_seats.bearings.1.centre",
"params:bearing_seats.bearings.1.rotation_deg",
"params:bearing_seats.bearings.2.centre",
"params:bearing_seats.bearings.2.rotation_deg",
"params:bearing_seats.bearings.3.centre",
"params:bearing_seats.bearings.3.rotation_deg",
"params:bearing_seats.bearings.4.centre",
"params:bearing_seats.bearings.4.rotation_deg",
"params:bearing_seats.bearings.5.centre",
"params:bearing_seats.bearings.5.rotation_deg",
"params:bearing_seats.bearings.6.centre",
"params:bearing_seats.bearings.6.rotation_deg",
"params:bearing_seats.bearings.7.centre",
"params:bearing_seats.bearings.7.rotation_deg",
"params:bearing_seats.bearings.8.centre",
"params:bearing_seats.bearings.8.rotation_deg",
"params:bearing_seats.bearings.9.centre",
"params:bearing_seats.bearings.9.rotation_deg",
"params:bearing_seats.pedestal_girder5.front_half",
"params:bearing_seats.pedestal_girder5.rear_half",
"params:bearing_seats.pedestal_girder5.rotation_deg",
"params:column_rebar.schedule.P1",
"params:column_rebar.schedule.P2",
"params:column_rebar.schedule.P3",
"params:column_rebar.schedule.P4",
"params:column_rebar.schedule.P5",
"params:column_rebar.schedule.P6",
"params:footing_rebar.schedule.B1",
"params:footing_rebar.schedule.B2",
"params:footing_rebar.schedule.B3",
"params:footing_rebar.schedule.B4",
"params:footing_rebar.schedule.B5",
"params:footing_rebar.schedule.B6",
"params:footing_rebar.schedule.B7",
"params:footing_rebar.schedule.B8",
"params:footing_rebar.schedule.B9",
"params:footing_rebar.schedule.B10",
"params:footing_rebar.schedule.B11",
"params:footing_rebar.schedule.B12",
"params:coping_rebar.top.tiers.1.a",
"params:coping_rebar.top.tiers.2.a",
"params:coping_rebar.top.tiers.3.a",
"params:coping_rebar.c16.x0",
"params:footing_rebar.a_x",
"params:footing_rebar.a_y",
"params:footing_rebar.layers.bottom_Y1.pos",
"params:footing_rebar.layers.bottom_X2.pos",
"params:footing_rebar.layers.bottom_Y3.pos",
"params:footing_rebar.layers.bottom_X4.pos",
"params:footing_rebar.layers.top_Y.pos",
"params:footing_rebar.layers.top_X.pos",
"params:footing_rebar.b9.grid_x",
"params:footing_rebar.b9.grid_y",
"params:footing_rebar.b9.count",
"params:footing_rebar.b10.size_x",
"params:footing_rebar.b10.size_y",
"params:footing_rebar.layers.mid_Y.levels",
"params:footing_rebar.layers.mid_X.levels",
"params:footing_rebar.counts_check",
"params:column_rebar.main_bars.p1.hook_leg_z",
"params:column_rebar.main_bars.p1.straight_from",
"params:column_rebar.main_bars.p1.straight_len",
"params:column_rebar.main_bars.p2.z0",
"params:column_rebar.main_bars.p2.length",
"params:column_rebar.hoops.levels",
"params:column_rebar.hoops.marks",
"params:column_rebar.hoops.radius",
"params:column_rebar.hoops.radius_by_mark",
"params:column_rebar.ties.levels",
"expected:G1.coping_outline",
"expected:G1.dxf_arc_centres.datum_el",
"expected:G1.footing.dx",
"expected:G1.footing.dy",
"expected:G1.footing.z0",
"expected:G1.column.height",
"expected:G1.coping.z_top_left",
"expected:G1.coping.z_top_center",
"expected:G1.coping.z_top_right",
"expected:G1.piles.pitch_x",
"expected:G1.piles.pitch_y",
"expected:G1.piles.length",
"expected:G1.seats.step_top",
"expected:G1.seats.step_x",
"expected:G1.seats.row_y",
"expected:G1.seats.pitch_chain",
"expected:G2.hoop_chain",
"expected:G2.hoop_marks_by_zone",
"expected:G2.tie_chain",
"expected:G2.r_hoop",
"expected:G2.p1_top_parts",
"expected:G3.rows",
"expected:G3.b9_grid",
"expected:G3.b10_size",
"expected:G4.tier_z",
"expected:G4.c10_bottom",
"expected:G4.loop_z",
"expected:G4.c15_top",
"expected:G4.c16_top",
"expected:G4.c14_levels",
"expected:G4.step_top",
"expected:G2.dia",
"expected:G4.dia",
"expected:G2.tie_offset",
"expected:G4.range",
"params:display.hidden_ids",
"expected:pier_id",
"params:pier_id",
"expected:G5.el_x.1",
"params:bearing_seats.bearings.0.el_x",
"expected:G1.seats.table.1",
"params:bearing_seats.bearings.0.h1",
"params:bearing_seats.bearings.0.A",
"params:bearing_seats.bearings.0.B",
"expected:G5.h3",
"params:sole_plates.h3",
"expected:G5.el_x.2",
"params:bearing_seats.bearings.1.el_x",
"expected:G1.seats.table.2",
"params:bearing_seats.bearings.1.h1",
"params:bearing_seats.bearings.1.A",
"params:bearing_seats.bearings.1.B",
"expected:G5.h3",
"expected:G5.el_x.3",
"params:bearing_seats.bearings.2.el_x",
"expected:G1.seats.table.3",
"params:bearing_seats.bearings.2.h1",
"params:bearing_seats.bearings.2.A",
"params:bearing_seats.bearings.2.B",
"expected:G5.h3",
"expected:G5.el_x.4",
"params:bearing_seats.bearings.3.el_x",
"expected:G1.seats.table.4",
"params:bearing_seats.bearings.3.h1",
"params:bearing_seats.bearings.3.A",
"params:bearing_seats.bearings.3.B",
"expected:G5.h3",
"expected:G5.el_x.5",
"params:bearing_seats.bearings.4.el_x",
"expected:G1.seats.table.5",
"params:bearing_seats.bearings.4.h1",
"params:bearing_seats.bearings.4.A",
"params:bearing_seats.bearings.4.B",
"expected:G5.h3",
"expected:G5.el_x.6",
"params:bearing_seats.bearings.5.el_x",
"expected:G1.seats.table.6",
"params:bearing_seats.bearings.5.h1",
"params:bearing_seats.bearings.5.B",
"expected:G5.h3",
"expected:G5.el_x.7",
"params:bearing_seats.bearings.6.el_x",
"expected:G1.seats.table.7",
"params:bearing_seats.bearings.6.h1",
"params:bearing_seats.bearings.6.B",
"expected:G5.h3",
"expected:G5.el_x.8",
"params:bearing_seats.bearings.7.el_x",
"expected:G1.seats.table.8",
"params:bearing_seats.bearings.7.h1",
"params:bearing_seats.bearings.7.B",
"expected:G5.h3",
"expected:G5.el_x.9",
"params:bearing_seats.bearings.8.el_x",
"expected:G1.seats.table.9",
"params:bearing_seats.bearings.8.h1",
"params:bearing_seats.bearings.8.B",
"expected:G5.h3",
"expected:G5.el_x.10",
"params:bearing_seats.bearings.9.el_x",
"expected:G1.seats.table.10",
"params:bearing_seats.bearings.9.h1",
"params:bearing_seats.bearings.9.B",
"expected:G5.h3",
"expected:G5.W.1",
"params:sole_plates.table.0.W",
"expected:G5.L",
"params:sole_plates.table.0.L",
"expected:G5.W.2",
"params:sole_plates.table.1.W",
"expected:G5.L",
"params:sole_plates.table.1.L",
"expected:G5.W.3",
"params:sole_plates.table.2.W",
"expected:G5.L",
"params:sole_plates.table.2.L",
"expected:G5.W.4",
"params:sole_plates.table.3.W",
"expected:G5.L",
"params:sole_plates.table.3.L",
"expected:G5.W.5",
"params:sole_plates.table.4.W",
"expected:G5.L",
"params:sole_plates.table.4.L",
"expected:G5.W.6",
"params:sole_plates.table.5.W",
"expected:G5.W.7",
"params:sole_plates.table.6.W",
"expected:G5.W.8",
"params:sole_plates.table.7.W",
"expected:G5.W.9",
"params:sole_plates.table.8.W",
"expected:G5.W.10",
"params:sole_plates.table.9.W",
"expected:G2.schedule_L.P1",
"expected:G2.schedule_L.P2",
"expected:G3.schedule.B5",
"expected:G3.schedule.B6",
"expected:G3.schedule.B8",
"expected:G3.schedule.B1",
"expected:G3.schedule.B2",
"expected:G3.schedule.B4",
"expected:G3.schedule.B3",
"expected:G3.schedule.B7",
"expected:G3.schedule.B10",
"expected:G3.schedule.B11",
"expected:G3.schedule.B12",
"expected:G4.L.C1",
"expected:G4.L.C2",
"expected:G4.L.C4",
"expected:G4.L.C5",
"expected:G2.schedule_L.P4",
"params:rebar_marks.P4",
"expected:G2.schedule_L.P5",
"params:rebar_marks.P5",
"expected:G4.L.C3",
"params:rebar_marks.C3",
"expected:G4.L.C6",
"params:rebar_marks.C6",
"expected:G4.L.C9",
"expected:G4.L.C10",
"expected:G4.L.C11",
"expected:G4.L.C13",
"expected:G4.L.C15",
"expected:G4.L.C16",
"expected:G2.schedule_n.P3",
"expected:G3.schedule.B9",
"expected:G2.schedule_n.P6",
"expected:G1.seats.rear_first_from_tip",
"expected:planned_fail"
]
},
{
"at": "2026-10-20 15:19:42",
"by": "심영표",
"count": 1,
"backup": "before_geomread_20261020_151942",
"fields": [
"params:coping_rebar.stirrups.top_left"
]
}
]
@@ -0,0 +1,5 @@
{
"sha": "7065cd1281c0e8d7",
"at": "2026-10-20 15:19:54",
"n": 23
}
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,69 @@
{
"gate": "G1",
"checker": "g1_shape.py",
"verdict": "PASS",
"summary": {
"total": 171,
"passed": 171,
"failed": 0,
"volumes_m3": {
"lean": 8.119,
"footing": 188.991,
"column": 31.507,
"coping": 89.78
},
"pile_volume_each_m3": 7.408
},
"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": {
"ok": null,
"skipped": "일괄 실행(단일 세션) — 저장·재로드 안 함"
},
"unchanged": {
"ok": null,
"compared": 0,
"diffs": [],
"missing": [],
"against": null,
"skipped": "일괄 실행(단일 세션) — 앞 게이트 객체를 다시 만들지 않음"
},
"model": null,
"mode": "batch",
"secs": 8.3,
"session_secs": 151.9,
"inputs_sha": "13cd06407268bdda",
"job_id": "2fb0482a67d3",
"at": "2026-10-20 15:22:44"
}
@@ -0,0 +1,15 @@
{
"id": "2fb0482a67d3",
"pid": 20408,
"state": "완료",
"at": "2026-10-20 15:22:44",
"log": [
"[batch] one Rhino session: build G1..G5, check G1, G2, G3, G4, G5 (no per-gate save / reload)",
"[G1] PASS checks 171/171 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G2] PASS checks 42/42 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G3] PASS checks 71/73 (planned FAIL 2, unplanned 0) negative H/V True/True (batch)",
"[G4] PASS checks 110/116 (planned FAIL 6, unplanned 0) negative H/V True/True (batch)",
"[G5] PASS checks 183/183 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[batch] done in 152.1s, objects 3406, model C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\운곡교P4\\runs\\current\\G5.3dm"
]
}
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,425 @@
{
"summary": {
"total": 42,
"passed": 42,
"failed": 0,
"min_cover": {
"P1": 113.5,
"P2": 158.5,
"P3": 93.5,
"P4": 100.4,
"P5": 83.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": 30,
"actual": 30,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 pipes closed & paired with centrelines",
"detail": "pipes 60 / centrelines 60",
"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": 28,
"actual": 28,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 pipes closed & paired with centrelines",
"detail": "pipes 28 / centrelines 28",
"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 30)",
"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": 1.0,
"diff": 1.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 curve length - L (record, fillets shorten hooks)",
"detail": "min 0.4 / max 0.4 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P4 curve length (+coupler b) vs L (no fillet)",
"expected": 0,
"actual": 0.433,
"diff": 0.433,
"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.4 / max 0.4 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P5 curve length (+coupler b) vs L (no fillet)",
"expected": 0,
"actual": 0.433,
"diff": 0.433,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 original length (+coupler b) vs schedule L (worst of 28)",
"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": 40197,
"actual": 40197.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": 40197,
"actual": 40197.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": 25618,
"actual": 25618.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 bottom EL",
"expected": 25618,
"actual": 25618.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 radius",
"expected": 902,
"actual": 902.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 radius",
"expected": 902,
"actual": 902.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "hoop level count 61",
"detail": "61",
"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 x30)",
"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\": 93.5, \"P4\": 100.4, \"P5\": 83.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,71 @@
{
"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": 93.5,
"P4": 100.4,
"P5": 83.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 61",
"hoop levels vs dim chain (worst)",
"hoop marks by zone (P4 x9, P5 x22, P3 x30)"
],
"detected": true
}
},
"reload": {
"ok": null,
"skipped": "일괄 실행(단일 세션) — 저장·재로드 안 함"
},
"unchanged": {
"ok": null,
"compared": 0,
"diffs": [],
"missing": [],
"against": null,
"skipped": "일괄 실행(단일 세션) — 앞 게이트 객체를 다시 만들지 않음"
},
"model": null,
"mode": "batch",
"secs": 36.5,
"session_secs": 151.9,
"inputs_sha": "13cd06407268bdda",
"job_id": "2fb0482a67d3",
"at": "2026-10-20 15:22:44"
}
@@ -0,0 +1,15 @@
{
"id": "2fb0482a67d3",
"pid": 20408,
"state": "완료",
"at": "2026-10-20 15:22:44",
"log": [
"[batch] one Rhino session: build G1..G5, check G1, G2, G3, G4, G5 (no per-gate save / reload)",
"[G1] PASS checks 171/171 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G2] PASS checks 42/42 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G3] PASS checks 71/73 (planned FAIL 2, unplanned 0) negative H/V True/True (batch)",
"[G4] PASS checks 110/116 (planned FAIL 6, unplanned 0) negative H/V True/True (batch)",
"[G5] PASS checks 183/183 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[batch] done in 152.1s, objects 3406, model C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\운곡교P4\\runs\\current\\G5.3dm"
]
}
@@ -0,0 +1,425 @@
{
"summary": {
"total": 42,
"passed": 41,
"failed": 1,
"min_cover": {
"P1": 113.5,
"P2": 153.5,
"P3": 93.5,
"P4": 100.4,
"P5": 83.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": 30,
"actual": 30,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 pipes closed & paired with centrelines",
"detail": "pipes 60 / centrelines 60",
"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": 28,
"actual": 28,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 pipes closed & paired with centrelines",
"detail": "pipes 28 / centrelines 28",
"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 30)",
"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": 1.0,
"diff": 1.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 curve length - L (record, fillets shorten hooks)",
"detail": "min 0.4 / max 0.4 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P4 curve length (+coupler b) vs L (no fillet)",
"expected": 0,
"actual": 0.433,
"diff": 0.433,
"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.4 / max 0.4 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P5 curve length (+coupler b) vs L (no fillet)",
"expected": 0,
"actual": 0.433,
"diff": 0.433,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 original length (+coupler b) vs schedule L (worst of 28)",
"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": 40197,
"actual": 40197.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": 40197,
"actual": 40197.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": 25618,
"actual": 25618.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 bottom EL",
"expected": 25618,
"actual": 25618.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 radius",
"expected": 902,
"actual": 902.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 radius",
"expected": 902,
"actual": 902.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "hoop level count 61",
"detail": "61",
"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 x30)",
"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\": 93.5, \"P4\": 100.4, \"P5\": 83.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,425 @@
{
"summary": {
"total": 42,
"passed": 39,
"failed": 3,
"min_cover": {
"P1": 113.5,
"P2": 158.5,
"P3": 93.5,
"P4": 100.4,
"P5": 83.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": 30,
"actual": 30,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P3 pipes closed & paired with centrelines",
"detail": "pipes 60 / centrelines 60",
"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": 28,
"actual": 28,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 pipes closed & paired with centrelines",
"detail": "pipes 28 / centrelines 28",
"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 30)",
"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": 1.0,
"diff": 1.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 curve length - L (record, fillets shorten hooks)",
"detail": "min 0.4 / max 0.4 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P4 curve length (+coupler b) vs L (no fillet)",
"expected": 0,
"actual": 0.433,
"diff": 0.433,
"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.4 / max 0.4 mm",
"result": "INFO"
},
{
"check": "C8",
"item": "P5 curve length (+coupler b) vs L (no fillet)",
"expected": 0,
"actual": 0.433,
"diff": 0.433,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P6 original length (+coupler b) vs schedule L (worst of 28)",
"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": 40197,
"actual": 40197.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": 40197,
"actual": 40197.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": 25618,
"actual": 25618.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P2 bottom EL",
"expected": 25618,
"actual": 25618.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C8",
"item": "P4 radius",
"expected": 902,
"actual": 902.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "P5 radius",
"expected": 902,
"actual": 902.0,
"diff": 0.0,
"tol": 0.5,
"result": "PASS"
},
{
"check": "C8",
"item": "hoop level count 61",
"detail": "62",
"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 x30)",
"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\": 93.5, \"P4\": 100.4, \"P5\": 83.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,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": 34,
"actual": 34,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 pipes closed & paired",
"detail": "34/34",
"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": 34,
"actual": 34,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B6 pipes closed & paired",
"detail": "34/34",
"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": 34,
"actual": 34,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 pipes closed & paired",
"detail": "34/34",
"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": 31,
"actual": 31,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B8 pipes closed & paired",
"detail": "31/31",
"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": 589,
"actual": 589,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 pipes closed & paired",
"detail": "589/589",
"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": 30,
"actual": 32,
"diff": 2,
"tol": 0,
"result": "FAIL"
},
{
"check": "C9",
"item": "B11 pipes closed & paired",
"detail": "32/32",
"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=65/65)",
"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=34/34)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 positions vs chain (worst, n=34/34)",
"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 -3875",
"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": 8144,
"actual": 8144.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 positions = checkerboard of 38x31 grid",
"detail": "589 / 589",
"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,84 @@
{
"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": "B11 bar count vs schedule",
"reason": "작도 32본 채택(좌우 대칭) vs D3 30본 — 설계자 확인 대기"
},
{
"item": "B12 bar count vs schedule",
"reason": "작도 32본 채택(좌우 대칭) vs D3 38본 — 설계자 확인 대기"
}
],
"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": {
"ok": null,
"skipped": "일괄 실행(단일 세션) — 저장·재로드 안 함"
},
"unchanged": {
"ok": null,
"compared": 0,
"diffs": [],
"missing": [],
"against": null,
"skipped": "일괄 실행(단일 세션) — 앞 게이트 객체를 다시 만들지 않음"
},
"model": null,
"mode": "batch",
"secs": 44.1,
"session_secs": 151.9,
"inputs_sha": "13cd06407268bdda",
"job_id": "2fb0482a67d3",
"at": "2026-10-20 15:22:44"
}
@@ -0,0 +1,15 @@
{
"id": "2fb0482a67d3",
"pid": 20408,
"state": "완료",
"at": "2026-10-20 15:22:44",
"log": [
"[batch] one Rhino session: build G1..G5, check G1, G2, G3, G4, G5 (no per-gate save / reload)",
"[G1] PASS checks 171/171 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G2] PASS checks 42/42 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G3] PASS checks 71/73 (planned FAIL 2, unplanned 0) negative H/V True/True (batch)",
"[G4] PASS checks 110/116 (planned FAIL 6, unplanned 0) negative H/V True/True (batch)",
"[G5] PASS checks 183/183 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[batch] done in 152.1s, objects 3406, model C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\운곡교P4\\runs\\current\\G5.3dm"
]
}
@@ -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": 34,
"actual": 34,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 pipes closed & paired",
"detail": "34/34",
"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": 34,
"actual": 34,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B6 pipes closed & paired",
"detail": "34/34",
"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": 34,
"actual": 34,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 pipes closed & paired",
"detail": "34/34",
"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": 31,
"actual": 31,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B8 pipes closed & paired",
"detail": "31/31",
"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": 589,
"actual": 589,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 pipes closed & paired",
"detail": "589/589",
"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": 30,
"actual": 32,
"diff": 2,
"tol": 0,
"result": "FAIL"
},
{
"check": "C9",
"item": "B11 pipes closed & paired",
"detail": "32/32",
"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=65/65)",
"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=34/34)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 positions vs chain (worst, n=34/34)",
"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 -3875",
"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": 8144,
"actual": 8144.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 positions = checkerboard of 38x31 grid",
"detail": "589 / 589",
"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": 34,
"actual": 34,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 pipes closed & paired",
"detail": "34/34",
"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": 34,
"actual": 34,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B6 pipes closed & paired",
"detail": "34/34",
"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": 34,
"actual": 34,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B7 pipes closed & paired",
"detail": "34/34",
"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": 31,
"actual": 31,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B8 pipes closed & paired",
"detail": "31/31",
"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": 589,
"actual": 589,
"diff": 0,
"tol": 0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 pipes closed & paired",
"detail": "589/589",
"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": 30,
"actual": 32,
"diff": 2,
"tol": 0,
"result": "FAIL"
},
{
"check": "C9",
"item": "B11 pipes closed & paired",
"detail": "32/32",
"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=65/65)",
"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=34/34)",
"expected": 0,
"actual": 0.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B5 positions vs chain (worst, n=34/34)",
"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 -3875",
"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": 8144,
"actual": 8144.0,
"diff": 0.0,
"tol": 1.0,
"result": "PASS"
},
{
"check": "C9",
"item": "B9 positions = checkerboard of 38x31 grid",
"detail": "589 / 589",
"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"
}
]
}
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,107 @@
{
"gate": "G4",
"checker": "g4_coping_rebar.py",
"verdict": "PASS",
"summary": {
"total": 116,
"passed": 110,
"failed": 6,
"cover": {
"C1": 85.5,
"C2": 85.2,
"C3": 87.4,
"C4": 85.5,
"C5": 85.2,
"C6": 87.4,
"C7": 84.4,
"C8": 84.4,
"C9": 87.5,
"C10": 87.5,
"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 schedule L reproduced by convention (max+min)/2",
"reason": "재료표 C13 L 28.966이 규칙 (max+min)/2 = 29.346과 380 mm 다름 — 재료표 자체 불일치, 설계자 확인 대기"
},
{
"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": {
"ok": null,
"skipped": "일괄 실행(단일 세션) — 저장·재로드 안 함"
},
"unchanged": {
"ok": null,
"compared": 0,
"diffs": [],
"missing": [],
"against": null,
"skipped": "일괄 실행(단일 세션) — 앞 게이트 객체를 다시 만들지 않음"
},
"model": null,
"mode": "batch",
"secs": 46.4,
"session_secs": 151.9,
"inputs_sha": "13cd06407268bdda",
"job_id": "2fb0482a67d3",
"at": "2026-10-20 15:22:44"
}
@@ -0,0 +1,15 @@
{
"id": "2fb0482a67d3",
"pid": 20408,
"state": "완료",
"at": "2026-10-20 15:22:44",
"log": [
"[batch] one Rhino session: build G1..G5, check G1, G2, G3, G4, G5 (no per-gate save / reload)",
"[G1] PASS checks 171/171 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G2] PASS checks 42/42 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G3] PASS checks 71/73 (planned FAIL 2, unplanned 0) negative H/V True/True (batch)",
"[G4] PASS checks 110/116 (planned FAIL 6, unplanned 0) negative H/V True/True (batch)",
"[G5] PASS checks 183/183 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[batch] done in 152.1s, objects 3406, model C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\운곡교P4\\runs\\current\\G5.3dm"
]
}
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,61 @@
{
"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": {
"ok": null,
"skipped": "일괄 실행(단일 세션) — 저장·재로드 안 함"
},
"unchanged": {
"ok": null,
"compared": 0,
"diffs": [],
"missing": [],
"against": null,
"skipped": "일괄 실행(단일 세션) — 앞 게이트 객체를 다시 만들지 않음"
},
"model": "C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\운곡교P4\\runs\\current\\G5.3dm",
"mode": "batch",
"secs": 0.7,
"session_secs": 151.9,
"inputs_sha": "13cd06407268bdda",
"job_id": "2fb0482a67d3",
"at": "2026-10-20 15:22:44"
}
@@ -0,0 +1,15 @@
{
"id": "2fb0482a67d3",
"pid": 20408,
"state": "완료",
"at": "2026-10-20 15:22:44",
"log": [
"[batch] one Rhino session: build G1..G5, check G1, G2, G3, G4, G5 (no per-gate save / reload)",
"[G1] PASS checks 171/171 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G2] PASS checks 42/42 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G3] PASS checks 71/73 (planned FAIL 2, unplanned 0) negative H/V True/True (batch)",
"[G4] PASS checks 110/116 (planned FAIL 6, unplanned 0) negative H/V True/True (batch)",
"[G5] PASS checks 183/183 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[batch] done in 152.1s, objects 3406, model C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\운곡교P4\\runs\\current\\G5.3dm"
]
}
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,37 @@
{
"G1": {
"decision": "승인",
"by": "심영표",
"note": "일괄 실행 자동 승인",
"at": "2026-10-20 15:22:44",
"inputs_sha": "13cd06407268bdda"
},
"G2": {
"decision": "승인",
"by": "심영표",
"note": "일괄 실행 자동 승인",
"at": "2026-10-20 15:22:44",
"inputs_sha": "13cd06407268bdda"
},
"G3": {
"decision": "승인",
"by": "심영표",
"note": "일괄 실행 자동 승인",
"at": "2026-10-20 15:22:44",
"inputs_sha": "13cd06407268bdda"
},
"G4": {
"decision": "승인",
"by": "심영표",
"note": "일괄 실행 자동 승인",
"at": "2026-10-20 15:22:44",
"inputs_sha": "13cd06407268bdda"
},
"G5": {
"decision": "승인",
"by": "심영표",
"note": "일괄 실행 자동 승인",
"at": "2026-10-20 15:22:44",
"inputs_sha": "13cd06407268bdda"
}
}
@@ -0,0 +1,22 @@
{
"state": "완료",
"by": "심영표",
"pid": 20408,
"started": "2026-10-20 15:20:12",
"at": "2026-10-20 15:22:44",
"log": [
"G1~G5 단일 세션 실행 (게이트 검사·음성 시험만, 중간 저장·재로드 없음)",
"[batch] one Rhino session: build G1..G5, check G1, G2, G3, G4, G5 (no per-gate save / reload)",
"[G1] PASS checks 171/171 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G2] PASS checks 42/42 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[G3] PASS checks 71/73 (planned FAIL 2, unplanned 0) negative H/V True/True (batch)",
"[G4] PASS checks 110/116 (planned FAIL 6, unplanned 0) negative H/V True/True (batch)",
"[G5] PASS checks 183/183 (planned FAIL 0, unplanned 0) negative H/V True/True (batch)",
"[batch] done in 152.1s, objects 3406, model C:\\Users\\User\\Desktop\\바이브코딩\\pier_T\\Code\\교각모델링앱\\data\\운곡교P4\\runs\\current\\G5.3dm",
"G1 PASS 171/171 (계획 FAIL 0) → 승인",
"G2 PASS 42/42 (계획 FAIL 0) → 승인",
"G3 PASS 71/73 (계획 FAIL 2) → 승인",
"G4 PASS 110/116 (계획 FAIL 6) → 승인",
"G5 PASS 183/183 (계획 FAIL 0) → 승인"
]
}
@@ -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
}
}
}