# 교각 도면 엑셀 추출 프로그램 정본 | 버전 | 수정일 | 수정자 | 주요 변경 내용 | 비고 | |---|---|---|---|---| | v0.1.00 | 2026-10-26 | Codex | 재사용 Python 프로그램 정본 등록 | 담당자 성명 미확인 | | v0.1.01 | 2026-10-26 | Codex | 폴더 단독 자동 분류·판독 기본 화면 | 사용자 후속 요청 | - 현행 프로그램: `Code/bridge_extract/`, 실행 `start.cmd`. 향후 반복 추출은 이 프로그램을 사용. - 현행 사용 안내: `DOC/04_실행/실행_교각도면엑셀추출프로그램_2026-10-26_v0.1.01.md`. - 기본 화면은 `auto_gui.AutoApp`: 폴더만 선택. `automatic.run_folder`가 하위 DWG를 내용으로 분류하고 엑셀 생성. 기존 app.App/--profile은 호환용. - `semantic.py`의 헤더·행 판독으로 두 교량 받침 162개와 신규 명시형 제원표 대응. `layouts/`의 제목·주변 문자 3개 이상으로 위치·축척·handle 변경 대응. 이동·축척 수치 755개 일치 시험 완료. - 파일명을 바꾼 3개 실제 DWG를 다른 하위 폴더에 넣고 폴더 단독 GUI 실행 성공, 575필드 대조. 자동판독 8개 및 기존10개 시험 통과. - 최초 추출 결과·근거인 `Code/giyang_extract/`, `Code/sanoe_extract/`는 원문 대조 자산으로 보존. 새 프로그램은 그곳의 extracted.json 또는 과거 엑셀을 런타임 입력으로 사용하지 않음. - 변환기 의존 경로만 `Code/giyang_extract/libredwg/dwgread.exe` 재사용. 환경변수/GUI로 대체 경로 지정 가능. - 등록 프로파일은 현재 2개. 수치는 현재 문자에서 재추출. 형식·기둥 수 등 형상 판독값은 등록값으로 구분하며 근거 DWG 해시가 바뀌면 비움. - 새 도면은 기본 자동 판독으로 먼저 처리. 명시형 표는 사전 등록 없이 판독하며, 자유 배치·형상/IP 지시선 연결 등 근거가 모호한 항목은 공란과 검토 사유로 제공. 과거 CSV 등록은 CLI 호환용으로 남아 있음. 임의 도면 범용 형상 해석이나 OCR이 아님. - 사용자 요청이 Python 기반 반복 실행 프로그램이므로 XLSX 작성도 openpyxl 기반으로 구현. Node/Artifact Tool은 실행 의존성이 아님. - 995개 필드 회귀, 단위시험 10개, 실제 DWG CLI 2교량, GUI 실행 경로 검증. 표고 상충·말뚝 범위·미확인값은 검토 대상으로 보존. - Windows sandbox 기본 tempfile 위치가 쓰기 거부되는 환경. 테스트는 tests 하위, 변환은 사용자가 지정한 저장 폴더의 .cache 하위 임시 경로 사용. - 외부 프로그램 연동 정본(2026-10-29): `Code/bridge_extractor_package/src/bridge_drawing_extractor/`, 패키지 0.1.5. 종전 GUI와 별도 유지하며 자동 동기화하지 않음. - 0.1.5 현행 추가 규칙: T형 1기둥, π형 2기둥. 말뚝길이 최소 선택 후 mm 변환(Pier H열 단위 변경). Bearing H열 전열/후열 추가, G열 방위각 유지. 산외교 전열38/후열40, P1말뚝7000mm. 신규 4시험·기존 정책6시험 및 설치본 API/CLI/XLSX·GUI PASS, 유지필드395개 대조. 외부 연동 시 길이 단위 및 추가열 확인 필요. - 현행 규칙 0.1.4 (이전 출처 규칙 대체): 교각일반도 제외. 기본 T형, 두부보 EL=ELEVATION 교좌면 EL 최소, 받침 Z=교량받침 EL(몰탈상단). 폭=받침 최대 평면거리, 길이=IP1-IP3 평면거리 초과 다음 500mm 단위. 기둥 수 미지정. 실제 ELEVATION에 울산/함양 방향이 함께 있어 받침배치도 방향으로 연결. 산외교 17교각/78받침 추출, 기존 유지 412필드 회귀, 새 정책 6시험 및 내용분류 3시험 PASS. 설치본 및 GUI PASS. 바로가기 재실행하면 최신 소스 사용. - 간편 실행(2026-10-28): 작업 폴더의 `도면추출 실행.lnk` → `Code/bridge_extractor_package/tools/desktop_app.py`. 기존 GUI 레이아웃을 재사용하되 0.1.3 소스 API에 연결. 현재 PC의 준비된 Python/openpyxl/변환기를 사용하여 수동 설치 불필요. 다른 PC 독립 실행 EXE는 아님. tests/desktop_smoke.py 실제 도면 작업 스레드·엑셀 생성·완료 상태 PASS. - 0.1.3: 도면 내부 제목 변형·EL-X 표 기반 역할 인식 확장. ELEVATION 산출근거 원문은 supplementary_drawings에 보존하고 받침 Z를 대체하지 않음. 종단면도(A-A)만으로 종평면 판정 금지. 실제 5개 DWG 이름 변경 후 575필드 일치 및 추가 3개 회귀 시험 통과. outputs/package_renamed_013/verification.json 참조. - 배포 파일: `Code/bridge_extractor_package/dist/`의 wheel 및 sdist. API `extract_folder`, `check_environment`, CLI `python -m bridge_drawing_extractor`. 연동 안내는 같은 프로젝트의 README.md. - 변환기는 배포물에 포함하지 않음. converter_path → BRIDGE_DWGREAD → PATH 순서로 연결. Python 의존성 openpyxl>=3.1,<4. - 설치된 wheel로 실제 산외교 575필드 일치, API/CLI/JSON/오류 반환 통과. `outputs/package_smoke/verification.json`, 재현 스크립트 `Code/bridge_extractor_package/tests/installed_smoke.py`. 기존 의존성이 있는 Windows 환경에서 검증, 다른 OS는 미검증. - 최근 확인: 2026-10-28. 재확인 조건: DWG 내용/배치 또는 Python·변환기 변경. ## 2026-10-29 12개 샘플 배치 결과 - 정본: 추출결과_12개교량_20261029/. 12 XLSX + JSON/CSV, 현황/미확정 목록 XLSX. - 교각64, 받침652, 미확정288셀. 대호지교 필수 도면 미제공252셀 포함. - tools/extract_samples.py: 기존 입력폼으로 대상 대응, CAD 문자 재추출 및 샘플별 판독 보정. tools/verify_samples.py:6164셀/127DWG 해시·산식 검사 PASS. 회귀13시험 PASS. - 사용자 최신 규칙: 형상으로 T/π 판단, T1/π2, IP위→아래, 두부보 EL=교좌면 최소, 받침Z=몰탈상단, 말뚝최소mm, 치수 다음500mm. 기존 일반도 제외 규칙은 표고 출처에 적용, 형상 판독에는 일반도 사용. - 소스 reader 보완됨. dist0.1.5 wheel은 재빌드하지 않았고 GUI에 샘플 배치 보정은 통합하지 않음. 최신 배치 결과를 GUI 일반화 완료로 설명하면 안 됨. ## 2026-10-29 폴더 자동추출 0.1.6 통합 - 사용자 입력: rㅡ렇게 해줘. 기존 엑셀 없이 자동 분류/연결/출력 통합 요청으로 수행. - 정본 소스 src/bridge_drawing_extractor/inference.py + automatic.py. GUI/바로가기 연결 완료. 배포 wheel0.1.6 설치본 실제 API 확인. - 기능: 받침 범위 기반 IP3점 대응·위아래 순서, 종평면 인접 명시 표기/말뚝범위, 통합좌표표. 명시 형식 없으면T1. 레이아웃 미상에서도 XLSX 없이 작동. - 검증16시험, 이름변경DWG5개·등록레이아웃없이 2교각28받침IP6점, GUI 완료, 설치wheel 실제API PASS. DOC/05_검증/검증_폴더자동추출통합_2026-10-29_v0.1.00.md. - 한계: 이미지OCR/임의기둥형상/모든지반고보간 미지원. 복수방향·개정상충은 미확정. 수동12샘플 결과와 자동출력은 동일하지 않을 수 있음. 모든 새도면 완전추출이라고 설명하지 말 것. ## 2026-10-29 0.1.7 폭 규칙 (최신) 사용자 원문: 두부보폭은 받침전열과후열사이의 거리보다 2m 더 크게 만들자 500mm단위로 폭=전열/후열 각각 좌표 평균점 거리+2000mm를 500mm 올림. 정확한 배수는 그대로. 열구분/좌표 불명확 시 미확정. GUI와 API 소스 및 wheel0.1.7 반영. 17단위/회귀 PASS. update_sample_widths.py로12교량64교각 폭만 수정한 사본 생성, 나머지 셀 불변 대조. 정본 결과경로: 추출결과_12개교량_20261029/두부보폭_전후열거리_2m반영/. 길이는 기존규칙 유지. ## 2026-11-02 IP4 인덱스 오류 수정 IP4 행 생성 시 points[3]을 조회하여 IndexError 발생. 실제 IP1~3 범위 안에서만 좌표를 조회하고 IP4는 빈칸 유지하도록 수정. 등록 레이아웃 IP4도 D/E/F 공란 유지. 원본 소스 및 portable 소스 동기화. 현재 12샘플의 종평면/받침/ELEVATION 실제 DWG를 재읽고 엑셀 저장·재읽기 및64교각 IP4 공란 검증 PASS. 목동교·승천천교는 현재 변경된 파일명 기준으로 재수행. 결과: outputs/IP4_12샘플검증_20261102/검증결과.json. 실행 중인 GUI는 다시 시작해야 수정 반영. ## 2026-11-02 종평면 기초 4항목 보완 inference.py: 지반고 종단표의 일반 측점 격자와 교각 추가점 구분, 기초하단 EL 하부 표기군 분리, 말뚝 인접영역 확대. portable 소스 동기화. 운곡교6/계문철교2 교각32필드(EL/지반/기초/말뚝mm) 저장엑셀 도면 확인값 대조 PASS. testscripts: tools/check_profile_values.py. 샘플12개 엑셀 생성/IP4 검사 통과(7번은 root입력xlsx를 폴더로 잡던 검증 스크립트 수정 후 재수행). 값 상충 및 도면상 직접기초 표기 부재, VAR 길이는 계속 검토필요. 모든64교각 수치 전수확정으로 표현하지 말 것. ## 2026-11-02 사용자 승인 샘플 엑셀 보정 결과 요청: 프로그램으로12개 추출 후 틀린/애매한값 폴더샘플엑셀로수정. 정본 12개샘플_프로그램추출_엑셀대조보정_20261102/. 12XLSX+JSON/CSV, 보정현황, 자동원본 별도.64교각652받침518보정셀, 미확인 승천천교 방위각12셀.6484셀 재읽기/치수/IP4 검증 PASS. 이전 도면출처만사용 규칙과 다르게 이번 산출물은 사용자명시지시에 따라 샘플 값을 사용. 기양천교 상충EL도 샘플값 채택(미확정원본 보존). 코드 tools/create_reviewed_samples.py,verify_reviewed_samples.py. 보정은 이번12개 산출물 처리이며 일반자동엔진에서항상샘플엑셀을읽도록변경한것은아님.