64 lines
4.6 KiB
Markdown
64 lines
4.6 KiB
Markdown
# 도면추출 연동 패키지 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 하위에 보존했습니다.
|