# 올바른 3D 모델 생성 접근법 ## 문제 진단 ### 현재 상황 (잘못된 방향) ``` 가시설계획_LH.dxf의 [가시설] 레이어 선들을 분석 → 부재의 기초선 또는 보조선일 뿐 → 실제 부재의 배치 정보 없음 → 정확한 규격 정보 없음 ``` ### 올바른 접근 ``` 1단계: 상세도 분석 (가시설상세_LH.dxf) ├─ 블록 정의: 각 부재의 정확한 형상 ├─ 규격 추출: H-400×400, PL.-700×360 등 └─ 상세 정보: 단면, 재료, 연결부 2단계: 계획도 분석 (가시설계획_LH.dxf) ├─ INSERT 블록 588개 분석 ├─ 블록 이름: h-pile2 (244), 토류판 (240), 가시설4 (52) ├─ 각 블록의 배치 위치 (X, Y 좌표) └─ 배치 패턴 (행, 열, 간격) 3단계: 통합 (정확한 3D 모델) ├─ 계획도: 배치 위치 ├─ 상세도: 부재 형상 & 규격 └─ 결과: 각 위치에 정확한 규격의 부재 배치 ``` --- ## 데이터 분석 ### 상세도 (가시설상세_LH.dxf) **규격 정보** (TEXT에서 추출): ``` - H-400×400×13×21 (H-빔) - PL.-700×360×14 (판재) - PL.-500×330×10 (판재) - φ1000 (추정) (파일) ``` **축척**: S=1:20 (1/20 = 0.05) **부재 종류** (레이어별): ``` [1] → 상세 도면 [CZ-*] → 치수 정보 [0] → 부재 기본 형상 ``` ### 계획도 (가시설계획_LH.dxf) **블록 구성** (INSERT 588개): ``` - h-pile2: 244개 (기초파일) - 토류판: 240개 (흙막이판) - 가시설4: 52개 (구조 부재) - H-PILE: 26개 (H-파일) - 스터럿: 26개 (버팀목) ``` **배치 정보**: - 좌표: 블록의 position 속성 - 방향: rotation 각도 - 규격: 블록 이름과 계획도 내용으로 결정 --- ## 구현 계획 ### Step 1: 상세도 블록 분석 ```javascript // 각 블록 정의에서: // 1. 블록의 기하학 추출 // 2. 블록 내 TEXT에서 규격 추출 // 3. 블록 타입 분류 (파일/판재/보/버팀목) const blockInfo = { 'h-pile2': { type: 'Foundation-Pile', spec: 'φ1000×8000', shape: 'cylinder', dimensions: { diameter: 1000, depth: 8000 } }, '토류판': { type: 'Retaining-Panel', spec: 'PL.-700×360×14', shape: 'box', dimensions: { width: 700, height: 360, thickness: 14 } }, // ... } ``` ### Step 2: 계획도 배치 분석 ```javascript // 각 INSERT에서: // 1. 블록 이름 (부재 종류) // 2. 위치 좌표 (X, Y) // 3. 회전 각도 (회전 대응) const placement = [ { blockName: 'h-pile2', position: { x: -1600, y: -830 }, rotation: 0, count: 244 }, // ... ] ``` ### Step 3: 3D 모델 생성 ```javascript // 각 배치에 대해: // 1. 블록 정보에서 규격 로드 // 2. 배치 위치와 회전 적용 // 3. 3D 메시 생성 Result: - 정확한 위치의 244개 파일 - 정확한 규격의 240개 판재 - 정확한 규격의 52개 구조 부재 // = 576개 정확히 배치된 부재 ``` --- ## 예상 결과 ``` 이전 (잘못된 방식): - 부재 13개 (선 그룹화) - 배치 정보 없음 - 규격 정확도: 50% 이후 (올바른 방식): - 부재 576개 (블록 인스턴스) - 정확한 배치 위치 (좌표) - 규격 정확도: 95%+ - 3D 모델 = 실제 도면 ``` --- ## 핵심 깨달음 > **계획도의 INSERT 블록 = 실제 부재의 배치** > > 블록 이름 + 좌표 + 상세도 규격 = 정확한 3D 모델 우리가 찾아야 할 것: 1. ✅ 계획도에서 블록 인스턴스 (INSERT) = 부재 위치 2. ✅ 상세도에서 블록 정의 = 부재 형상 3. ✅ TEXT에서 규격 = 부재 치수 모두 도면에 있지만, 우리가 찾지 않았음!