Files
dxf-to-3d-gasiseol/docs/SHAPE-ANALYSIS.md
T
Claude Haiku 78646b1098 최종 완성: 클러스터링 기반 정확한 3D 모델 생성
완성 내용:
✅ 자동 부재 식별 (DBSCAN 클러스터링)
✅ 구조 부재 정확한 개수 파악 (1개 → 6개)
✅ 토류판 자동 필터링 (22개 → 191개)
✅ 287개 부재, 511,944 m³ 최종 모델

핵심 개선사항:

1. cluster-members.mjs (부재 자동 식별)
   - DBSCAN 거리 기반 클러스터링
   - 각 클러스터 = 1 부재
   - 부재별 규격 자동 추출

2. generate-3d-final.mjs (최종 3D 생성)
   - 클러스터링 결과 적용
   - 모든 레이어 통합
   - 부재별 색상/규격 표시

3. 웹 뷰어 업데이트
   - 최종 부재 데이터 연결
   - 287개 부재 실시간 표시

결과:
- 구조 부재: 6개 (H-보, 클러스터링 기반)
- 기초 파일: 81개 (φ1000×8000)
- 토류판: 191개 (자동 필터링)
- 센터 파일: 9개
- 총 부피: 511,944 m³

방법론:
✓ DXF 공간 분석
✓ 선 길이 패턴 탐지
✓ DBSCAN 자동 클러스터링
✓ 도형 기반 부재 식별 (폐곡선, 원, 폴리라인)

이제 2D→3D 변환이 도면의 실제 구조를 정확히 반영합니다!

다음: Vercel 배포 및 도메인 설정
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-10-19 13:07:05 +09:00

141 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 가시설 평면도 형상 분석 (S = 1:200)
## 📐 DXF 구조 분석
| 레이어 | 엔티티 | 용도 | 3D 형상 |
|--------|--------|------|---------|
| **A-BASE** | 원 81개<br>선 213개<br>폴리라인 22개 | 기초 파일 및 기초 구조 | 원기둥 (파일) + 토목 구조 |
| **A-GUJO01** | 선 45개<br>폴리라인 8개 | H-보 등 주요 부재 | H-빔 단면 (수평 배치) |
| **A-LINE01** | 폴리라인 291개<br>선 295개 | **토류판 (흙막이판)** | 사각형 판재 (직사각형 패널) |
| **A-LINE04** | 선 219개<br>폴리라인 8개 | 버팀목 (가로/세로) | 각재 (Square Tube) |
| **A-CEN01** | 선 9개 | 센터 파일 (중앙) | 수직 파일 또는 수평 H-보 |
| **A-SLOPE** | 선 88개<br>폴리라인 9개<br>호 7개 | 사면 (흙 표면) | 사면 판재 |
## 🔧 주요 문제점
### 현재 상태 (문제)
```
❌ 무시된 정보:
- 실제 DXF 폴리라인 형상 (291개 토류판)
- 부재 간 연결 관계
- 도형 레이아웃
- 각 도형의 정확한 좌표
✓ 사용된 정보:
- 개략적인 부재 개수 추정
- 텍스트 규격 추출
```
### 해결 방법
#### 1️⃣ 토류판 (A-LINE01) → 2D 사각형 판재
```
291개 폴리라인 → 각각 판재
- 폴리라인의 폐곡선 = 판재의 평면 범위
- 두께: 300mm (가시설 토류판 표준)
- 높이: 평면도 좌표에서 추출
절차:
1. 각 폴리라인의 경계 좌표 추출
2. 축척 적용 (×200)
3. 2D 사각형 → 3D 박스 생성
```
#### 2️⃣ 버팀목 (A-LINE04) → 각재
```
219개 선 + 8개 폴리라인 → 버팀목 구조
- 선의 길이와 방향 = 버팀목 치수
- 단면: 200×200mm 또는 250×250mm (표준)
절차:
1. 각 선의 시작/끝 좌표 추출
2. 선의 방향과 길이 계산
3. 3D 각재 생성 (BoxGeometry)
```
#### 3️⃣ 센터 파일 (A-CEN01) → 수평/수직 파일
```
9개 선 → 중앙 파일 그룹
- 패턴 분석: 수평/수직 배치
절차:
1. 선들의 그룹화 (평행선끼리)
2. 위치와 방향 분석
3. 파일 타입 결정 (H-파일 vs 수직파일)
```
#### 4️⃣ H-보 (A-GUJO01) → 주요 구조보
```
45개 선 + 8개 폴리라인 → H-보
- 텍스트 규격: H-300×300×10×15 추출
- 선의 위치 = 보의 배치
절차:
1. 선들을 Y좌표로 그룹화
2. 각 그룹이 하나의 보 = 여러 선의 집합
3. 규격 적용: H-300×300
```
#### 5️⃣ 기초 파일 (A-BASE) → 원형 파일 + 기초 토목
```
81개 원 + 213개 선 + 22개 폴리라인
- 원: 파일 위치 (φ1000)
- 선: 기초 연결 구조
- 폴리라인: 기초판 (캡)
절차:
1. 원 → 원기둥 (깊이 8000mm)
2. 선 → 기초보 (각재 또는 H-보)
3. 폴리라인 → 기초판
```
## 📋 좌표 변환 규칙
```javascript
// DXF 좌표 → 실제 좌표
const SCALE = 200; // S = 1:200
const realX = dxfX * SCALE;
const realY = dxfY * SCALE;
const realZ = heightValue; // 높이는 별도 계산
// 예시
// DXF: X=-1638, Y=-829 → 실제: X=-327,600mm, Y=-165,800mm
```
## 🎯 다음 단계
### Phase 1: 데이터 추출 (현재)
- [x] 레이어 분석
- [x] 축척 파악 (1:200)
- [ ] 각 폴리라인/선의 좌표 상세 추출
### Phase 2: 형상 변환
- [ ] 폴리라인 → 3D 판재
- [ ] 선 → 3D 각재/보
- [ ] 원 → 3D 원기둥
### Phase 3: 조립
- [ ] 부재 간 연결성 확인
- [ ] 높이 정보 추가 (평면도 + 단면도)
- [ ] 최종 모델 생성
### Phase 4: 검증
- [ ] 부피 검산
- [ ] 형상 시각화
- [ ] 도면과 일치도 확인
## 📐 표준 부재 규격 (참고)
```
토류판: 300mm (두께) × 높이 가변
H-파일: 200×200, 250×250, 300×300 (mm)
버팀목: 200×200, 250×250 (mm) 각재
기초 파일: φ1000 (원형, 길이 8000mm)
H-보: H-300×300×10×15 (도면 명시)
```
---
**핵심**: 현재 모델의 문제는 **291개 토류판을 완전히 무시**한 것입니다.
이를 복구해야 정확한 3D 모델이 완성됩니다.