# 도면추출 연동 패키지 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 설치 없이 포함된 런타임을 사용합니다. ```text 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 프로그램에 직접 연결할 수도 있습니다. ```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개입니다. JSON `cells`는 같은 시트/셀 주소의 값을 보관하고 `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 하위에 보존했습니다.