OK-SYSTEM · 자동 수량산출

시스템동바리 수량산출 프로그램

DWG / DXF 도면을 업로드하면 부재 수량을 자동 집계하여 엑셀 물량표를 생성합니다.

프로그램 개요

건설현장에서 사용하는 시스템동바리(OK-SYSTEM) 배치 도면(DWG/DXF)을 업로드하면, 레이어명 기준으로 블록을 자동 집계하여 층별 수량표 엑셀 파일을 즉시 다운로드할 수 있습니다. 기존 수작업 집계 대비 시간과 오류를 크게 줄여줍니다.

1

도면 파일 업로드

AutoCAD DXF 형식의 시스템동바리 배치도면 파일을 업로드합니다.

  • 지원 형식: .dxf
  • 파일 크기 제한: 50 MB 이내 권장
  • 하나의 파일에 여러 층이 포함된 경우 자동으로 층별 구분
  • DWG 형식은 추후 지원 예정입니다.
2

현장 정보 입력

엑셀 물량표 상단에 기재될 현장 정보를 입력합니다.

  • 업체명 · 현장명 · 영업 담당자 · 설계 담당자 · 도면 완성일
  • 미입력 시 해당 셀은 공란으로 출력됩니다.
3

수량 산출 실행

도면 내 모든 블록을 레이어명 기준으로 자동 집계합니다. 층별 영역이 자동 감지되며, 감지 실패 시 수동 입력 화면이 표시됩니다.

4

결과 확인 및 엑셀 다운로드

층별 수량이 화면에 미리 표시됩니다. 이상이 없으면 엑셀 다운로드 버튼을 눌러 물량표 파일을 저장합니다.

  • 출력 시트: 물량산출근거 · 물량표 · 단가계산
  • 합계 및 총중량은 엑셀 수식으로 자동 계산

집계 대상 품목 (44종)

받침철물
하부받침철물 (C2427) 상부받침철물 (C1969)
주주 (수직재)
주주 1725 주주 1291 주주 863 주주 432 주주 216
소켓 / 트러스
슬리브 소켓 120mm 트러스 1524
횡대 (수평재)
횡대 1829 횡대 1524 횡대 1219 횡대 914 횡대 610 횡대 305
멍에재
4.0M 3.2M 3.0M 2.8M 2.5M 2.2M 2.0M 1.5M 1.0M
가새재 (경사재)
1718 1715 1712 1709 1706 1212 1209
안전발판
400×1817 400×1512 400×1207 400×0902 400×0598 500×1817 500×1512 500×1207 500×0902 500×0598
기타
개구부용발판 500×1817 개구부용발판 500×1512 승강사다리 440×1700

개발 디렉터리 구조

shoring-calculator/
├── app/
│ ├── routers/
│ │ ├── upload.py # POST /api/upload
│ │ └── calculate.py # POST /api/calculate · GET /api/download/{id}
│ ├── services/
│ │ ├── dxf_parser.py # DXF 파싱 · 블록 추출 (ezdxf)
│ │ ├── region_detector.py # 층별 영역 자동 감지
│ │ ├── counter.py # 레이어별 블록 카운트
│ │ ├── excel_writer.py # 엑셀 물량표 생성 (openpyxl)
│ │ └── dwg_converter.py # DWG→DXF 변환 — 추후 지원
│ ├── data/
│ │ ├── material_map.json # 44개 품목 매핑 테이블
│ │ └── template.xlsx # 엑셀 출력 템플릿
│ ├── main.py # FastAPI 진입점
│ ├── static/ # 정적 파일
│ └── templates/ # Jinja2 HTML 템플릿
├── uploads/ # 업로드 임시 저장 (처리 후 자동 삭제)
├── outputs/ # 생성된 엑셀 파일
├── tests/
│ └── sample_files/ # 테스트용 DXF 샘플
├── requirements.txt
└── Dockerfile

기술 안내

본 프로그램은 Python 3.12 기반으로 개발되었으며, FastAPI 웹 프레임워크와 ezdxf 라이브러리를 사용해 DXF 도면을 파싱합니다. 산출된 수량은 openpyxl을 통해 엑셀 템플릿에 기록되며, 합계·총중량 등 계산값은 모두 엑셀 수식으로 처리되어 파일을 열었을 때 자동 계산됩니다. 이력 및 레이어 별칭 데이터는 SQLite에 저장됩니다.

레이어 별칭(Alias) 기능

현장마다 도면 작성 방식이 달라 레이어명 표기가 다를 수 있습니다. 예를 들어 주주1725주주-1725 또는 VJ-1725로 그린 경우, 파싱 후 미매칭 항목을 화면에서 직접 표준 품목으로 연결할 수 있습니다. 저장을 선택하면 다음에 같은 레이어명이 나타날 때 자동으로 매핑됩니다.

도면 레이어명 추출 매핑 있음 → 바로 집계 / 미매칭 → 화면에 표시 표준 품목 선택 저장 시 다음부터 자동 적용
⚠ 이용 시 주의사항