교각 도면 모델링 앱 요구사항 검토서 — 운곡교 P1 실작업 기반
| 버전 |
수정일 |
수정자 |
주요 변경 내용 |
비고 |
| v0.1.00 |
2026-10-08 |
심영표 |
신규 작성 |
초안 — 기술 기반 선택(8장)은 의사결정 대기 |
| v0.1.01 |
2026-10-08 |
심영표 |
담당자 검토 확정 |
확정 (8.2 권고안·9.3 결정 사항은 별도 의사결정 대기) |
1. 개요
1.1 목적
교각 도면(DWG)을 입력하면 3D 모델(콘크리트·받침부·철근)과 도면 검토보고서를 만드는 앱을 개발하기 전에, 필요한 기능·입력·검토 기준·예외·기술 기반을 정리합니다.
1.2 근거 — 운곡교 P1 실작업
본 검토서는 2026-10-07~08에 운곡교 교각(완도방향 P1)을 수작업 + 스크립트로 모델링한 경험을 요구사항으로 옮긴 것입니다.
| 항목 |
실작업 규모 |
근거 |
| 입력 |
DWG 3매 (C0050205-025/026/027) |
RAG/ |
| 모델 |
3,190객체 — 콘크리트 34, 받침 대좌·패드 20, 교량받침·솔플레이트 20, 철근 1,513본(관 + 중심선) |
Code/교각모델링/출력/실행_운곡교P1교각모델_2026-10-08_v0.1.09.3dm |
| 자동 검사 |
약 590항목 (콘크리트 172, 기둥 철근 43, 기초 74, 코핑 117, 받침부 184) |
검증 보고서 v0.1.05 |
| 사람 결정 |
32건 (5장) |
작업 로그 prompt/심영표/2026-10-07~08/ |
| 도면 지적 |
22건 (오류·불일치 12, 누락 10) |
도면 검토보고서 v0.1.01 |
| 스크립트 |
25종 (부록 B) |
Code/교각모델링/ |
| 참고 앱 |
통로박스 모델링 웹앱(Drawing Model Studio) |
분석서 DOC/02_분석/분석_통로박스모델링과정_2026-10-07_v0.1.00.md |
1.3 범위
- 입력: 교각 도면(DWG/DXF) + 사용자 결정 입력(5장)
- 출력: 3D 모델(.3dm 또는 웹 뷰어 모델), 단계별 검토 결과, 도면 검토보고서(.md·.pdf)
- 공정: 형상모델링 → 검토확인 → 기둥 철근 → 검토확인 → 확대기초 철근 → 검토확인 → 코핑 철근 → 검토확인 → 솔플레이트·받침 → 검토보고서
- 근거가 교각 1세트(원형 단주, T형 코핑, 말뚝 기초)이므로 다른 형식(벽식, 다주식, 라멘 등)으로 넓히는 판단은
[추론]으로 표기합니다.
2. 전체 구성
2.1 공정 흐름
공통 전처리 2단계와 지정 공정 10단계로 구성합니다. 각 "검토확인"은 게이트입니다. 통과하거나 사용자가 예외를 승인해야 다음 단계로 갑니다.
| # |
단계 |
주요 출력 |
게이트 |
| 0-1 |
도면 입력·변환 |
DXF, 원본 해시 |
변환 엔티티 수, 원본 무결성 |
| 0-2 |
도면 판독 |
뷰 분류, 치수·문자·점 집계, 재료표·상세표 추출 |
판독 결과 사용자 확인(추가 입력 5장) |
| 1 |
형상모델링 |
기초·기둥·코핑·버림·말뚝, 받침 대좌·패드 |
G1 (4.2) |
| 2 |
기둥 철근 |
주철근·띠철근·크로스타이 |
G2 |
| 3 |
확대기초 철근 |
하·상면 망, 둘레근, 수직 결속근 |
G3 |
| 4 |
코핑 철근 |
상·하면 주철근, 스터럽, 폐합근, 보조근, 교좌면 보강 |
G4 |
| 5 |
솔플레이트·받침 |
교량받침, 솔플레이트 |
G5 |
| 6 |
검토보고서 |
도면 오류·개선·추가·누락·재료표·상세 |
보고서 검사(장 구성·출처·버전) |
2.2 데이터 모델
실작업에서 쓴 구조를 앱의 기본 데이터로 정합니다.
| 데이터 |
내용 |
실작업 대응 |
| 프로젝트 |
도면 묶음(파일명·SHA-256), 좌표계, 단위(mm, Z = EL×1000) |
conversion_audit.json |
| 판독 장부 |
뷰·엔티티 핸들·치수 사슬·표 행, 출처 |
판독/*.json |
| 파라미터(정본) |
부재·철근 그룹별 값과 값마다 출처(src), 결정 기록 |
params.json (lean_concrete … sole_plates) |
| 객체 |
ID, 역할, 호스트·정착 호스트, 마크·직경·형상, occurrence, 원길이, 출처 |
객체 속성(UserText) |
| 결정 기록 |
결정 지점, 채택안, 기각안, 근거, 일시, 결정자 |
작업 로그 DECISIONS |
| 검사 결과 |
항목·기대값·실측·허용오차·판정·파일 |
검증/*.json |
| 산출물 버전 |
모델·문서·파라미터의 판(vMAJOR.MINOR.PATCH)과 구판 보관 |
출력/backup/, DOC/*/backup/ |
2.3 사람 개입 지점
- 판독 확인: 표에서 읽은 값과 해석(상동 기호, 절반 작도 대칭 등)을 사용자가 확인
- 결정 입력: 도면만으로 정할 수 없는 항목(5장)을 입력. 입력하지 않으면 해당 단계를 진행하지 않음
- 게이트 판정: FAIL 항목을 예외(6장)로 승인하거나 수정을 요청
- 보고서 확정: '오류'·'불일치' 판정은 사람이 확정
3. 단계별 요구사항
3.1 도면 입력·판독
| 구분 |
요구사항 |
실작업 근거·어려운 점 |
| 변환 |
DWG→DXF 변환기 내장(ODA File Converter 또는 LibreDWG). 원본은 읽기 전용, 해시 기록 |
박스 앱은 LibreDWG만 허용했으나 실작업 PC에는 ODA만 있었음 |
| 시트 영역 |
도면틀 안만 판독, 틀 밖 잔여물 제외 |
D1 틀 밖에 교량 선형·사본 뷰가 흩어져 있었음 |
| 뷰 분류 |
제목 문자(정면도·단면 A-A 등)와 축척으로 뷰 영역 자동 분류, 사용자 확인 |
— |
| 치수 |
DIMENSION 엔티티와 분해된 치수(선 + 문자) 모두 지원. 치수 사슬(100, 200, 70@125=8.750 …)을 위치 목록으로 변환. 양끝 눈금도 철근 위치로 포함하는 규칙 |
실작업 도면은 DIMENSION 0건, 모든 치수가 분해됨. 양끝 포함 시 본수 일치(73 = 38+35) |
| 축약 작도 |
파단선으로 줄인 부재(기둥)는 작도 길이 대신 치수 문자 사용. 파단선 위·아래 좌표계 분리 |
기둥 12,003이 6,100으로 작도됨 |
| 절반 작도 |
정면도·평면도 절반 작도를 감지하고 대칭 환산. 비대칭 부위(선단 높이·소단)는 경고 |
코핑 좌측·거더선 1·2 미작도 |
| 철근 점·선 |
단면의 철근 점(원 r 27)을 높이별로 전수 집계해 층·본수 판독 |
기초 6층 구성이 이 방법으로 확정됨 |
| 재료표 |
마크·형상·직경·본수·a~e·각도·R·L·총연장·그룹 소계 추출. 상동(") 기호를 그룹 순서로 해석, 빈칸 경고(B9 수량) |
— |
| 가공도 |
형상 번호(I~XVII)별 길이식 라이브러리 |
7.1 |
| 문자 인코딩 |
CP949·UTF-8 자동 판별 |
— |
3.2 형상모델링
| 요구사항 |
실작업 근거 |
| 객체 장부를 먼저 만든 뒤(역할·발생 수·사용 뷰·접합 객체) 형상 생성 |
박스 앱 원칙 |
| 3뷰(평면·정면·단면)가 동시에 만족될 때만 폐합 솔리드 생성 |
— |
| 형상 유형: 직육면체, 원기둥, 정면 프로파일 압출(곡선 하면·경사 선단·소단 상면), 회전 사변형(대좌), 사각뿔대(패드), 쐐기(솔플레이트) |
코핑 하면 R 12,000 원호, 선단 200 경사, 5단 소단 |
| 원호 중심은 끝점과 R로 계산(도면 정점 미사용) 후 도면 정점과 대조 |
계산값과 DXF가 0.1 mm 이내로 일치 |
| 접합면 공유·겹침 0 검사, 의도된 겹침(말뚝 근입 100) 예외 등록 |
— |
| 받침 대좌 높이 = 코핑 상면 + h1, 패드 상단 = EL.'X' (= 코핑 상면 + h1 + h2) |
E 열(h1~h4 합)로 해석하면 211 mm 틀림 — 표 정의 해석이 핵심 |
3.3 기둥 철근
| 요구사항 |
실작업 근거 |
| 주철근: 원주 n등분(Div.46), 반경방향 다발(2본), 시작각 0°, 마크별 반지름 |
P1 870.5 / P2 825.5 |
| 주철근 상·하단: 재료표 길이에서 역산(갈고리 수평부 높이 + R + a), 작도선과 비교 |
작도 P2가 기둥 상단에서 끝나 2.65 m 차이 |
| 띠철근: 치수 사슬 구간별 간격·본수, 구간별 마크(P4/P5/P3), 반지름 R |
@100 표기 vs @120 사슬 충돌 |
| 형상: 반원 2 + 갈고리(VI), 반원 + 커플러(V), 링 + 커플러(IX), 이음 위치 엇갈림 |
커플러 길이가 재료표 L에 포함 |
| 크로스타이: 단마다 방향 수, 띠철근 위 얹힘 |
4본 교차 — 간섭 예외 |
| 관 솔리드 생성은 형상별 단건 시험 후 일괄 |
fitRail=True에서 Rhino 크래시 |
3.4 확대기초 철근
| 요구사항 |
실작업 근거 |
| 층 구성 자동 판독(하면 4층 Y·X·Y·X, 상면 2층, 중앙, 둘레, 수직 결속) |
단면 점 높이 집계 |
| 교대 배치(U자 + 직선, 양끝 U자) 규칙 |
B2/B4 38+35, B6/B8 32+29 |
| 체크무늬 등 2차원 배치 패턴 |
B9 34×29 격자의 절반 = 493 |
| 층 높이 기준 선택(작도 점 / 치수선 + 직경 적층) — 입력 사항 |
작도 점 채택 시 상면 피복 58.5 |
| 수량 빈칸 시 총연장 ÷ L 역산과 경고 |
B9 |
3.5 코핑 철근
| 요구사항 |
실작업 근거 |
| 변단면 대응: 하면 곡선(오프셋 동심원)·선단 경사·소단 상면에 따른 철근 길이·높이 |
스터럽 높이, 폐합근 길이가 위치마다 다름 |
재료표 변길이 ~ 해석: 범위 양끝 대조 + L = (최대 + 최소)/2 관례 |
평균으로 해석하면 350~400 mm 불일치 |
| 재료표 치수와 작도 중심선의 오프셋 자동 추정(실작업 54.3 mm) |
C9~C13 범위 양끝 모두 일치 |
| 꺾인 다리(VIII, 98°·96°) = 선단면 평행, 하면근(VII) = 원호 + 다리 |
C1 다리 끝과 C7 원호 끝이 만남 |
| 다중 폐합 스터럽(1개 위치에 3개, 겹침 배치), 스터럽 안쪽 수평 폐합근 |
단면 A-A 다리 위치·27 mm 안쪽 점 |
| 받침 대좌 회전 좌표계의 교좌면 보강(S1·S2) |
대좌 4.405° |
| 갈고리 방향 추정 시 콘크리트 내부 검사로 검증 |
C14 아래 갈고리가 하면 관통 |
3.6 솔플레이트·받침
| 요구사항 |
실작업 근거 |
| 받침 표(ELEVATION TABLE)·솔플레이트 표(S, L, W, T, T1, T2) 연동 |
L = A+100, W = B+100 |
| 교축방향 = h2 패드 방향(긴 변이 아님) |
NO.3는 W > L |
| 경사 방향 입력, 표의 T1·T2와 S의 반올림 차 기록 |
37.6/22.4 vs 38/22 |
3.7 검토보고서
| 요구사항 |
실작업 근거 |
| 단계 진행 중 발견 사항을 자동 수집(충돌·누락·추정·예외) → 보고서 초안 |
미해결 목록 16건 → 지적 22건 |
| 장 구성: 개요, 오류·불일치, 개선방안, 추가 사항, 누락, 철근재료표(원본 vs 모델), 철근상세 |
보고서 v0.1.01 |
| 재료표 집계: 그룹 소계 검산, 단위중량 × 총연장, 모델 본수 대조 |
compile_rebar_schedule.py |
| 판정 어휘 고정(오류·불일치·누락·확인 필요), 지적마다 도면·뷰·값 출처 |
check_report.py |
| .md 정본 + .pdf 변환(한글 글꼴, 표 열 폭, 특수기호 글리프 점검) |
맑은 고딕에 U+2212 글리프 없음 |
4. 검토확인(게이트) 요구사항
4.1 공통 원칙
- 기대값은 생성 입력(파라미터)이 아니라 도면 치수·표 값에서 따로 가져온다(독립 기대값)
- 판정마다 기대값·실측·허용오차·모집단을 기록하고, 결과 파일을 보관한다
- 음성 대조: 검사기 자체를 확인하기 위해 객체를 일부러 옮겨(수평 위치·절대 높이 각각) FAIL이 나오는지 매 단계 확인한다
- 재로드 검증: 저장 파일을 새로 열어 같은 검사를 반복한다
- 숨김·잠금 객체를 포함해 센다
- 앞 단계 객체의 지문(바운딩·체적 또는 면 수·길이)이 바뀌지 않았는지 확인한다
4.2 단계별 검사표
| 게이트 |
주요 검사 |
허용오차 |
실작업 항목 수 |
| G1 형상 |
치수·표고, 폐합, 접합면·겹침, 단면 재투영(원호 R), 체적 산식, 대좌·패드 높이·크기·회전 |
±1 mm, 체적 0.1 % |
172 |
| G2 기둥 철근 |
마크별 본수, 원길이 = L(커플러 포함), 반지름·각도(±0.01°), 띠철근 단 높이, 콘크리트 내부·피복 |
±1 mm |
43 |
| G3 기초 철근 |
본수, 원길이, 층 높이, 치수 사슬 위치, 교대 패턴, 체크무늬, 내부·피복 |
±1 mm |
74 |
| G4 코핑 철근 |
본수, 원길이, 변길이 범위 양끝, L 관례 재현, 단·교대·스터럽 위치, 내부·피복 |
±1 mm |
117 |
| G5 받침부 |
높이(EL.'X'·h3), 크기, 경사(±0.01 %), 회전(±0.01°), 평면 중심, 겹침, 색 |
±1 mm |
184 |
| 공통 |
철근 색(직경별), 기존 객체 지문, 원본 DWG 해시 |
0 |
— |
4.3 실작업에서 발견된 검사기 결함 (앱 검사 설계 시 반영)
| 결함 |
원인 |
대책 |
| 수평 이동을 못 잡음 |
높이·크기만 검사 |
수평 위치·절대 높이 검사를 모두 포함하고, 음성 대조로 확인 |
| 피복이 음수로 나옴 |
부재 간 내부 접합면까지 거리를 잼 |
콘크리트 합집합 외곽면 기준 |
| 객체를 '없음'으로 판정 |
기본 객체 목록이 숨긴 객체를 제외 |
숨김·잠금 포함 열거 |
| 비대칭 철근 위치 오판 |
곡선 매개변수 중간점 사용 |
바운딩·형상 특징점 사용 |
| 갈고리 끝을 높이로 잡음 |
바운딩 최고점 |
수평부 중간점 |
| 교축방향 오판 |
긴 변 = 교축 가정 |
방향(축과의 각도)으로 판별 |
| 길이 FAIL 오판 |
재료표 L에 커플러·겹침 포함 여부 불일치 |
형상별 L 정의를 라이브러리화 |
4.4 자기검증 한계
생성과 검증을 같은 주체가 하면 독립 검증이 아닙니다. 앱에서는 ① 기대값 출처 분리 ② 음성 대조 ③ 재로드에 더해, 최종 단계에서 **사람의 육안 확인(뷰어 체크리스트)**을 게이트에 넣어야 합니다. 실작업에서는 헤드리스 3D 캡처가 실패해 육안 확인이 끝까지 미완이었습니다(미해결 #3).
5. 추가 입력 사항
5.1 사용자 결정 입력 (실작업 32건을 유형화)
| 유형 |
입력 항목 |
실작업 사례 |
기본값 제안 |
| 범위 |
모델링 범위(콘크리트만/철근 포함), 말뚝·대좌·패드·조립용 철근(UA1)·교좌면 보강 포함 여부 |
말뚝 포함, 대좌 처음엔 제외 후 추가, UA1 제외, S1·S2 포함 |
도면에 형상 근거가 있는 것은 포함 |
| 표현 |
철근 표현(중심선/관), 커플러·겹침 이음 표현, 색상 규칙 |
관 + 중심선, 커플러는 틈, 직경별 5색 |
관 + 중심선, 이음은 길이만 반영 |
| 충돌 해소 |
도면 값 A/B 중 채택(표기 vs 치수 사슬, 작도 vs 재료표, 치수 vs 작도 점) |
띠철근 @120, 주철근 상단 재료표, 반지름 작도, B12 작도 28, 스터럽 폭 작도, 대좌 높이 표 |
치수 사슬 > 작도. 재료표 수량은 작도로 위치 확인 |
| 추정 확인 |
미작도 부위 대칭·평행 이동, 갈고리 방향, 층 순서, 교대 시작, 경사 방향 |
거더선 1·2, C14 갈고리, S1 위층, ①CYCLE부터, 솔플레이트 −Y |
추정값 제시 + [추론] 표시 |
| 기준 |
피복 판정 방식, 층 높이 기준, 높이 기준면(EL.'X') |
작도 위치 ±1 mm, 작도 점 높이 |
작도 위치 기준 |
| 보고 |
보고서 독자, 산출 형식(PDF 위치) |
설계사·발주처, PDF는 출력 폴더 |
— |
| 표시 상태 |
콘크리트 숨김 등 저장 시 표시 상태 |
P1-FT·P1-CP 숨김 유지 |
모두 표시 |
5.2 외부 자료 입력
| 항목 |
필요 이유 |
| 교량 선형·측점, 교각 중심 측량좌표 |
도면에 없음 → 모델이 로컬 원점(0, 0)에 머묾 (미해결 #4) |
| 설계기준(피복·정착·굽힘 반지름) |
도면 미표기 부위 기본값. 실작업은 박스 앱 기준(D16 이하 2d, D19 이상 3.5d) 사용 |
| 표준 상세(받침·솔플레이트·커플러) |
커플러 형상 미표현 |
| 디자인 지침(색·서체) |
조직 지침 없음 → 수용 기준으로 대체 |
5.3 입력 UI 요구사항
- 결정 항목마다 도면 근거(값 A·B와 위치 이미지)와 기본값·영향을 함께 보여 주고 선택하게 한다
- 결정은 파라미터 파일에 기록하고(결정자·일시·근거), 이후 단계와 보고서가 자동으로 참조한다
- 결정을 바꾸면 영향받는 단계만 다시 생성·검사한다
6. 검토 예외 사항
6.1 예정된 FAIL (사용자 결정에 따른 불일치)
| 예외 |
실작업 사례 |
처리 |
| 재료표 본수와 작도 본수 불일치를 작도로 채택 |
B12 28/34 |
FAIL로 기록, 보고서 '불일치' 자동 등재, 게이트는 예외 승인으로 통과 |
| 재료표 치수 대신 작도 폭 채택 |
C9~C13 원길이 |
위와 같음, 변하는 치수(범위)는 별도 PASS 검사 |
6.2 기록 전용 항목 (판정하지 않고 값만 남김)
| 항목 |
실작업 사례 |
| 표 반올림 차 |
솔플레이트 T1/T2 ±0.4, 받침 패드 상단 −1 mm |
| 굽힘 반영 곡선길이와 원길이 차 |
P3 −493 mm 등 |
| 피복 실측값(기준 미달 포함) |
기초 B5 58.5, S1 40.5(중심 기준 표기) |
| 굽힘 반지름 최소값 미달 |
B9 상단 갈고리 R 20.4 < 24 |
6.3 검사 대상 외 (현 단계 범위 밖)
- 철근 간 간섭 정량 검사(교차 위치 목록만 기록) — 크로스타이 교차, 다리 겹침, 스터럽과 하면근 동일 높이 등
- 시공성(조립 순서, 이음 위치 적정성)
- 구조 계산 적합성
6.4 예외 승인 절차
- 게이트가 FAIL 목록과 함께 예외 후보(6.1~6.3 유형)를 표시
- 사용자가 항목별로 예외 승인 또는 수정 요청
- 승인 내역(사유·결정자·일시)을 결정 기록과 보고서에 자동 반영
- 예외 없이 남은 FAIL이 있으면 다음 단계 진행 불가
7. 비기능 요구사항
| 구분 |
요구사항 |
실작업 근거 |
| 변환 |
ODA/LibreDWG 선택, 변환 실패 시 DXF 직접 입력 |
— |
| 3D 커널 |
B-rep 불리언(차집합·합집합·교집합), 관(pipe) 생성, 체적 계산 |
버림-말뚝 차집합, 피복 판정용 합집합 |
| 안정성 |
대량 생성 전 형상별 단건 시험, 작업 단위 분할, 장애 시 이어서 실행 |
fitRail=True 크래시, 세션 종료 2회, 호출 300초 제한 |
| 성능 |
철근 1,500본 규모 생성·검사가 단계당 수 분 이내 |
철근 관 1,000개 체적 계산 300초 초과 |
| 파일 |
모델 50~70 MB(철근 포함) 처리, 경량 뷰어용 메시 별도 |
v0.1.07 72 MB |
| 재현성 |
파라미터 → 모델 재생성이 결정적(같은 입력 = 같은 결과), 스크립트·버전 보관 |
지문 비교 0.000 |
| 버전·감사 |
판 올리기(구판 보관), 변경 이력, 결정·검사 로그 |
모델 v0.1.00~v0.1.09 |
| 문서 오염 방지 |
파일 열기 직후 객체 수 확인, 실패 시 새 세션 |
숨김 객체가 남아 3,172객체로 오염 |
| 보안 |
원본 도면 외부 전송 시 승인, 인증 정보 비저장 |
박스 앱 정책 |
8. 기술 기반 비교·권고
8.1 후보 비교
| 기준 |
① 박스 웹앱 확장 |
② Rhino 플러그인·스크립트 |
③ 신규 웹앱 |
| 재사용 |
판독(DXF 파서·치수 사슬·시트 분할), 객체 장부, 캐시·JSON, 보고서·PDF, 뷰어 |
이번 실작업 스크립트 25종 그대로 |
낮음 |
| 3D 품질 |
JS 메시 커널 — 관·불리언·피복 판정 정밀도 제한 [추론] |
B-rep 정밀, 불리언·관 생성 검증됨 |
커널 선택에 따름 |
| 산출물 |
웹 뷰어 + OBJ·JSON |
.3dm(BIM 연계 용이) |
선택 |
| 배포 |
서버 1곳, 브라우저 접속 |
사용자별 Rhino 라이선스 필요, 헤드리스 불안정 |
서버 |
| 검증 자동화 |
기존 회귀검사 체계 있음 |
실작업 검사 스크립트 있음 |
신규 |
| 개발 비용 |
중 |
낮음(초기) / 운영 부담 |
높음 |
8.2 권고안 — 혼합 구조 [추론, 의사결정 필요]
- 판독·규칙·검사 엔진은 3D 커널과 무관한 Python 라이브러리로 분리합니다. 실작업 스크립트의 extract·verify 계열을 정리하고, 박스 앱 판독 모듈과 통합합니다.
- 형상 생성은 B-rep 커널에서 수행합니다. 서버형은 Rhino.Compute, 데스크톱은 Rhino 플러그인입니다. 웹 뷰어는 박스 앱 뷰어를 재사용합니다.
- **사용자 입력(5장)·게이트(4장)·예외 승인(6장)**은 웹 UI에서 처리합니다.
- 이유는 두 가지입니다. 실작업에서 정밀 B-rep 연산(불리언·관·체적)이 검사의 핵심이었고, 박스 앱의 판독·UI 자산은 교각에도 재사용 가치가 큽니다.
8.3 단계적 로드맵 [추론]
| 단계 |
내용 |
완료 기준 |
| P0 |
실작업 스크립트 25종을 라이브러리로 재구성, 운곡교 P1 회귀 테스트 고정 |
같은 입력으로 v0.1.09와 지문 일치 |
| P1 |
CLI 파이프라인(단계·게이트·결정 파일), 보고서 자동 생성 |
5개 게이트 + 보고서 무인 실행 |
| P2 |
웹 UI(판독 확인, 결정 입력, 예외 승인, 뷰어 육안 확인) |
사용자 1명이 처음부터 끝까지 수행 |
| P3 |
다른 교각 도면 2~3세트로 범용화(형식별 규칙 추가) |
신규 도면에서 규칙 수정 없이 게이트 통과율 측정 |
9. 리스크·미해결
9.1 기술 리스크
| 리스크 |
영향 |
대응 |
| 근거 도면이 1세트 |
규칙의 과적합(예: 오프셋 54.3, 층 구성) |
P3에서 복수 도면 검증. 고정 상수 금지, 도면에서 매번 추정 |
| 3D 커널 불안정 |
대량 생성 중 크래시 |
단건 시험·분할 실행·재시작 |
| 시각 확인 자동화 실패 |
형상 오류 누락 |
뷰어 육안 체크리스트를 게이트에 포함 |
9.2 도면 품질 리스크
실작업 도면에서 지적 22건이 나왔습니다(도면 검토보고서 v0.1.01). 범용 앱은 다음과 같은 도면 편차를 정상 입력으로 다뤄야 합니다.
- 분해된 치수
- 절반 작도
- 표기와 치수 사슬의 충돌
- 재료표 빈칸·상동 기호
- 작도와 재료표의 수량·폭 불일치
- 표 정의(EL.'X')의 생략
9.3 결정 필요 사항
- 기술 기반(8.2 권고안 채택 여부)
- 1차 대상 교각 형식 범위(원형 단주 T형 코핑만 / 확장)
- 산출 모델 형식(.3dm, IFC 연계 여부)
- 측량좌표·선형 자료의 입력 방식
부록
A. 근거 파일
| 구분 |
경로 |
| 박스 앱 분석 |
DOC/02_분석/분석_통로박스모델링과정_2026-10-07_v0.1.00.md |
| 판독서 |
DOC/02_분석/분석_운곡교P1교각도면판독_2026-10-07_v0.1.01.md, DOC/02_분석/분석_운곡교P1코핑철근판독_2026-10-07_v0.1.02.md |
| 설계서 |
DOC/03_설계/설계_운곡교P1교각모델링_2026-10-08_v0.1.10.md |
| 검증 보고서 |
DOC/05_검증/검증_운곡교P1교각모델_2026-10-08_v0.1.05.md |
| 도면 검토보고서 |
DOC/06_보고서/보고서_운곡교P1교각도면검토_2026-10-08_v0.1.01.md |
| 미해결 목록·기술노트 |
context-migration/OPEN_미해결목록.md, context-migration/기술노트_DWG판독_Rhino모델링환경.md |
| 작업 로그 |
prompt/심영표/2026-10-07/, prompt/심영표/2026-10-08/ |
B. 실작업 스크립트 → 앱 모듈 대응
| 앱 모듈 |
실작업 스크립트 (Code/교각모델링/) |
| 입력·변환 |
convert_dwg.py |
| 판독 |
survey_dxf.py, render_region.py, extract_outline.py, calc_bearing_seat.py, extract_bearing_seats.py, extract_column_rebar.py, extract_footing_rebar.py, extract_coping_rebar.py, extract_sole_plates.py |
| 생성 |
build_rhino.py, build_rebar_rhino.py, build_footing_rebar_rhino.py, build_coping_rebar_rhino.py, build_bearing_plates_rhino.py, apply_rebar_colors.py |
| 검사(게이트) |
verify_rhino.py, verify_rebar.py, verify_footing_rebar.py, verify_coping_rebar.py, verify_bearing_plates.py, check_outputs.py |
| 보고서 |
compile_rebar_schedule.py, check_report.py, md_to_pdf.py |
| 데이터 |
params.json, 판독/*.json, 검증/*.json |