# 가시설 3D 모델 생성 전략 (수정본) ## 🎯 핵심 발견 ### DXF 구조 이해 ``` A-BASE (기초): ├─ POINT 4개 → 파일 그룹 중심 (BBH-22, BBH-21, ...) ├─ CIRCLE 81개 → 개별 파일 표시 (또는 중복 기호) ├─ LINE 213개 → 파일 간 연결/구조선 └─ LWPOLYLINE 22개 → 기초판/캡 A-LINE01 (토류판): ├─ LWPOLYLINE 291개 → 흙막이판 (패널) └─ LINE 295개 → 보강선 또는 패널 경계 A-LINE04 (버팀목): ├─ LINE 219개 → 버팀목 (수평/수직) └─ LWPOLYLINE 8개 → 추가 구조 A-GUJO01 (구조보): ├─ LINE 45개 → H-보 또는 대형 버팀목 └─ LWPOLYLINE 8개 → 폐곡선 (지지점?) A-CEN01 (센터): └─ LINE 9개 → 중앙 부재 (파일 또는 버팀목) ``` ## 📐 3D 모델 생성 계획 ### Phase 1: 기초 파일 (A-BASE) **목표**: 81개 파일의 정확한 위치와 크기 파악 ``` 현재 문제: ❌ 81개 원의 반지름이 불일치 (0~1.5mm) ❌ 실제 파일 위치를 명확히 알 수 없음 해결책: 1. POINT 4개 위치 확인 2. 각 POINT 주변의 선들 분석 3. 선들의 교점 = 파일 위치 4. 선들의 길이 = 파일 간 거리 5. 표준 파일 규격 적용 (φ1000, 깊이 8000mm) ``` ### Phase 2: 토류판 (A-LINE01) **목표**: 291개 패널의 배치와 형상 파악 ``` 현재 상태: ✓ 폴리라인 291개 추출됨 ✓ 22개 패널만 필터링됨 (100mm 이상) 개선안: 1. 필터 기준 조정 (10mm 이상으로 낮춤) 2. 패널 높이 정보 추가 3. 패널 배열 패턴 분석 (행/열) 4. 표준 두께 적용 (300mm) ``` ### Phase 3: 버팀목 (A-LINE04) **목표**: 219개 버팀목의 배치와 방향 파악 ``` 현재 상태: ❌ 0개 추출됨 (길이 필터 문제?) 해결책: 1. 선의 길이 분포 재분석 2. 필터 기준 재조정 3. 수평/수직 구분 4. 표준 단면 적용 (200×200, 250×250) ``` ### Phase 4: 주요 구조 (A-GUJO01) **목표**: 45개 H-보의 위치와 길이 파악 ``` 현재 상태: ❌ 0개 추출됨 (그룹화 로직 문제) 해결책: 1. 선의 Y좌표 분포 재분석 2. 평행선 그룹화 3. 각 그룹의 대표 보 생성 4. 규격 적용 (H-300×300) ``` ## 🔧 상세 구현 계획 ### Step 1: 파일 위치 추출 개선 ```javascript // A-BASE의 선들을 분석하여 교점 계산 // POINT 4개를 시작점으로 사용 // 각 POINT 주변의 선들 그룹화 // 그룹 내 선들의 교점 → 파일 위치 // 예상 결과: // 4개 그룹 × ~20개 파일 = 80개 위치 // POINT 위치 + 반지름 패턴 → 파일 배치 확인 ``` ### Step 2: 토류판 형상 개선 ```javascript // A-LINE01의 폴리라인을 직접 3D로 변환 // 폐곡선의 경계 → 2D 사각형 // 높이 정보 추가 (A-TEXT03에서 추출) // 두께 적용 (300mm 고정 또는 텍스트에서) // 예상 결과: // 291개 폴리라인 → ~270개 패널 // (작은 노이즈 제거) ``` ### Step 3: 버팀목 분석 개선 ```javascript // A-LINE04의 선들을 길이 기준으로 분류 // 길이 분포: // < 500mm: 노이즈 (제거) // 500mm ~ 5000mm: 버팀목 // > 5000mm: 장거리 연결선 (분석 필요) // 예상 결과: // 219개 선 → ~100~150개 버팀목 ``` ## 📊 예상 최종 모델 ``` 부재 구성: - 기초 파일: ~80개 (φ1000×8000) - 토류판: ~270개 (300×300~500×500×300) - 버팀목: ~100개 (200×200×길이 가변) - H-보: ~5개 (300×300×길이 가변) - 센터 부재: ~10개 (부재형 미정) 부피 추정: - 기초 파일: 80 × 3,142 = 251,360 m³ - 토류판: 270 × (평균 300) = 81,000 m³ - 버팀목: 100 × (평균 200) = 20,000 m³ - H-보: 5 × (평균 500) = 2,500 m³ - 기타: 10,000 m³ ───────────────────────── 합계: ~365,000 m³ (참고: 이전 추정값 269,970 m³과 차이가 있음) ``` ## 🚀 다음 액션 ### 즉시 (지금) - [ ] A-BASE의 선 분석 → 파일 배치 확인 - [ ] A-LINE04의 선 길이 분포 재분석 - [ ] A-GUJO01의 선 배치 재분석 ### 1차 개선 - [ ] extract-shapes.mjs 상세 로직 수정 - [ ] 각 레이어별 노이즈 필터 재조정 - [ ] 부재 배치 시각화 ### 2차 최적화 - [ ] 텍스트 정보와 형상 정보 결합 - [ ] 부재 간 연결성 확인 - [ ] 최종 3D 모델 생성 --- **핵심**: 현재 모델은 **형상 정보를 거의 사용하지 않고** 있습니다. 도면의 실제 구조를 파악하면 정확한 3D 모델 생성이 가능합니다.