Preserve local abutment, cast-in-place rebar and compact header features alongside remote drawing, ground-link and quantity workspaces. Adapt drawing and takeoff consumers to generated solplate plans, retain current P1 regression coverage, and resolve bearing-detail annotation collisions. Validation: 122 test files / 975 tests passed; production build passed; 10 browser integration checks passed.
도면추출 연동 패키지 0.1.9
Windows용 오프라인 DWG → 교각 입력 엑셀 추출기입니다. 이 폴더 전체를 함께 복사해서 사용합니다.
| 위치 | 내용 |
|---|---|
| 실행.bat | 폴더 선택 화면 실행 |
| run_extract.bat | 다른 프로그램에서 호출할 명령행 진입점 |
| app | 프로그램 소스, DWG 변환기, Python 및 엑셀 라이브러리 |
| samples | 교량별 최종 엑셀 12개와 기본 샘플 운곡교P1입력.xlsx, 단일 시트 검증 자료 P1.xlsx |
| integration/bridge_extract.py | Python 연동 함수 및 JSON 출력 CLI |
| integration/*.whl | Python 설치형 패키지 0.1.9 |
| integration/sample_data | 최종 샘플과 대응하는 JSON·검토 CSV |
| history | 샘플 보정 내역, 이전 검증 결과와 출처 기록 |
화면에서 실행
실행.bat을 열고 도면 폴더를 선택한 뒤 자동 추출을 시작합니다. 기본 결과 위치는 선택한 폴더의 _도면추출결과/실행시각/입니다. DWG 원본과 기존 엑셀은 입력 폴더에 둡니다. 기존 엑셀은 일반 자동 추출 시 입력으로 읽지 않습니다.
다른 프로그램에서 호출
외부 프로그램의 프로세스 실행 기능으로 다음 인수를 넘깁니다. 별도 Python 설치 없이 포함된 런타임을 사용합니다.
run_extract.bat "C:\도면\교량폴더" --output "C:\결과\교량폴더"
표준 출력은 JSON 객체 하나입니다. 성공 시 종료 코드0, 실행 실패 시1입니다. status는 completed, needs_review, error이며, needs_review도 결과 파일이 생성된 상태입니다. workbooks에서 xlsx_path, json_path, review_csv_path, data를 읽습니다. 읽기 실패 파일은 files와 failed_file_count에서 확인합니다. 표준 오류도 함께 수집하는 것을 권장합니다. GUI에서는 작업 스레드나 별도 프로세스로 호출합니다.
Python 프로그램에 직접 연결할 수도 있습니다.
import sys
sys.path.insert(0, r"C:\배포\도면추출")
from integration.bridge_extract import extract_folder
result = extract_folder(r"C:\도면\교량폴더", output_dir=r"C:\결과")
payload = result.to_dict()
for book in result.workbooks:
print(book.xlsx_path)
pier_cells = book.data["cells"]["Pier"]
설치형 wheel을 쓸 때는 bridge_drawing_extractor.extract_folder를 호출하고 converter_path에 app/Code/giyang_extract/libredwg/dwgread.exe를 전달합니다. Python3.10 이상과 openpyxl3.1 계열이 필요하며, 이 배포 폴더에는 Windows용 Python3.12와 필요한 라이브러리가 포함되어 있습니다.
데이터 형식과 최신 규칙
- XLSX는
Pier,IP,Bearing탭 3개입니다. JSONcells는 같은 시트/셀 주소의 값을 보관하고records에는 값, 상태, 근거가 있습니다. - 좌표·EL은 m, 말뚝길이·두부보 폭·길이는 mm입니다. 빈칸은 JSON의 null입니다.
- 기둥 수는 T형1개/π형2개. 형식 판독 불명확 시 기본 T형입니다.
- 두부보 EL은 교좌면 EL 최솟값, 받침 Z는 교량받침 EL(몰탈상단)입니다.
- 폭은 전후열 각각의 받침 좌표 평균점 사이 거리+2000mm를 500mm 올림합니다. 길이는 IP1-IP3 거리를 엄격히 초과하는 다음500mm입니다.
- IP1~IP3을 사용하며 IP4 행은 좌표·꺾임각 공란입니다. 받침 H열은 전열/후열입니다.
샘플 및 검토 범위
샘플12개는 프로그램 추출 후 사용자의 지시에 따라 각 원본 샘플 엑셀로518셀을 대조·보정한 결과입니다. 자동 추출 엔진이 이 보정값을 학습하거나 모든 값을 자체 판독한 것은 아닙니다. 샘플 데이터만 사용할 경우 samples 또는 integration/sample_data를 읽습니다.
64교각·652받침, IP4공란·치수산식·엑셀/JSON6484셀 대조를 확인했습니다. 승천천교 방위각12개는 원문과 샘플에 값이 없어 미확인입니다. 기양천교 상충EL 등 이번에 샘플값을 채택한 항목은 history의 보정내역을 확인합니다.
새로운 DWG에 대해서는 미확정 또는 검토필요 값이 나올 수 있습니다. 이미지 PDF OCR, 임의의 기둥 형상 자동 판독, 복잡한 지시선 및 모든 측점 보간은 완성되지 않았습니다. 셀 상태와 근거를 함께 확인합니다. 과거 작업폴더에 의존하던 개발·검증 스크립트는 정리했으며 실행 진입점은 위의 두 가지입니다.
포함된 Python·openpyxl·LibreDWG 등 제3자 구성요소의 라이선스 및 안내 파일은 app/runtime 및 app/Code/giyang_extract/libredwg 하위에 보존했습니다.