기존 케이블 라우팅의 가장 큰 병목은 노드 데이터 입력입니다. 수천 개의 트레이 교차점 좌표와 연결 관계를 손으로 입력하는 데 수 주가 소요됩니다. SEcMS는 기존 CAD 도면(DXF/DWG)을 직접 불러와 노드를 자동 추출하고, 이를 라우팅 그래프로 변환하는 DXF 엔진을 제공합니다.
1. DXF 파일이란?
DXF(Drawing Exchange Format)는 Autodesk가 개발한 CAD 데이터 교환 포맷입니다. 대부분의 CAD 소프트웨어(AutoCAD, ZWCAD, CADian, BricsCAD, LibreCAD)가 DXF를 지원합니다. 선박 설계에서는 케이블 트레이 레이아웃 도면이 DXF 형식으로 관리되는 경우가 많습니다.
DXF의 핵심 엔티티:
- LINE: 직선 트레이 구간
- POLYLINE/LWPOLYLINE: 연속된 트레이 경로
- CIRCLE/POINT: 노드 위치
- TEXT/MTEXT: 트레이 ID, 구역명 등 텍스트 정보
- BLOCK/INSERT: 반복 사용되는 트레이 컴포넌트
2. SEcMS DXF 파서 동작 원리
SEcMS DXF 파서(DXFEngine.ts)는 다음 단계로 동작합니다:
- 파일 파싱: DXF 바이너리/텍스트 파일을 섹션별로 파싱
- 레이어 필터링: 케이블 트레이 레이어(예: CABLE_TRAY, TRAY)를 자동 감지
- 선분 추출: LINE, POLYLINE 엔티티에서 트레이 구간 좌표 추출
- 교차점 감지: 선분 간 교차점을 자동 계산하여 노드 생성
- 그래프 구성: 노드와 엣지(트레이 구간)로 라우팅 그래프 구성
- 메타데이터 추출: TEXT 엔티티에서 트레이 ID, 치수 정보 추출
자동 레이어 감지 규칙
SEcMS는 다음 키워드를 포함하는 레이어를 케이블 트레이로 자동 인식합니다:
TRAY, CABLE, CONDUIT, DUCT, ROUTE, 트레이, 케이블
인식에 실패하면 사용자가 수동으로 레이어를 선택할 수 있습니다.
3. 노드 자동 추출 알고리즘
DXF에서 노드를 추출하는 핵심 알고리즘은 선분 교차점 감지입니다. 두 선분 AB와 CD가 교차하는지 판단하고, 교차점 좌표를 계산하여 노드로 등록합니다.
교차점 감지 후 클러스터링 단계에서는 매우 가까운 점들(예: 5mm 이내)을 하나의 노드로 병합합니다. CAD 도면의 미세 오차로 인해 실제로는 연결된 점들이 좌표상 약간 떨어져 있는 경우가 많기 때문입니다.
4. CAD-SEcMS 워크플로우
실무에서 권장하는 CAD-SEcMS 통합 워크플로우:
| 단계 | 작업 | 도구 |
|---|---|---|
| 1 | 케이블 트레이 레이아웃 도면 작성 | AutoCAD/ZWCAD |
| 2 | DXF 형식으로 내보내기 | CAD 소프트웨어 |
| 3 | SEcMS에 DXF 업로드 | SEcMS DXF 파서 |
| 4 | 자동 추출된 노드 검토 및 수정 | SEcMS 노드 에디터 |
| 5 | 케이블 목록(Excel) 업로드 | SEcMS 케이블 관리 |
| 6 | 라우팅 계산 실행 | SEcMS 라우팅 엔진 |
| 7 | 결과 검토 및 BOM 생성 | SEcMS BOM 모듈 |
5. LISP 스크립트 — CAD 직접 연동
SEcMS는 ZWCAD/CADian용 LISP 스크립트(secms-zwcad.lsp)를 제공합니다. 이 스크립트를 사용하면 CAD 소프트웨어에서 직접 노드 데이터를 SEcMS 형식으로 내보낼 수 있습니다:
- CAD 도면의 트레이 블록을 선택하면 자동으로 노드 좌표와 연결 관계 추출
- 추출 데이터를 SEcMS 호환 JSON 또는 Excel로 내보내기
- 트레이 치수(폭, 높이) 블록 속성에서 자동 읽기
6. 3D 노드 맵 시각화
SEcMS는 추출된 노드 데이터를 3D 맵으로 시각화합니다. 엔지니어는 브라우저에서 선박 전체 케이블 트레이 네트워크를 3D로 확인하고, 라우팅 결과에서 특정 케이블의 경로를 강조 표시할 수 있습니다.
3D 뷰어 기술 스택: Three.js + WebGL. 수천 개 노드를 GPU 가속으로 렌더링하며, 360° 회전, 줌, 특정 구역 필터링을 지원합니다.
English Summary: DXF/DWG-Based Auto Cable Routing
SEcMS includes a DXF parser engine that automatically extracts cable tray nodes from existing AutoCAD/ZWCAD drawings. The process: parse DXF entities → filter cable tray layers → extract line segments → detect intersection points → cluster nearby points → build routing graph. This replaces manual node data entry that typically takes weeks.
A LISP script (secms-zwcad.lsp) enables direct export from ZWCAD/CADian, extracting node coordinates, connectivity, and tray dimensions from block attributes. The extracted graph is visualized in a Three.js 3D viewer for review before routing calculation.
DXF 기반 자동 추출로 노드 입력 시간을 3주에서 2시간으로 줄인 프로젝트가 있습니다. 도면 품질이 관건입니다.