LH 정리된 도면 기반 3D 모델 생성 완료

완성 내용:
✅ LH 도면 분석 및 부재 추출
✅ 710개 부재 자동 식별
✅ 레이어 기반 명확한 구조화
✅ 웹 3D 뷰어 생성

파일 생성:
- src/build/generate-3d-lh.mjs (기본 버전)
- src/build/generate-3d-lh-full.mjs (전체 버전)
- out/가시설계획_LH-full.obj (3D 모델)
- out/가시설계획_LH-full-volumes.json (부재 정보)
- out/viewer-lh.html (웹 뷰어)

부재 통계:
- 총 부재: 710개
- 토층 (지질): 580개
- 하천 구조물: 52개
- 버팀목: 42개
- 단면표시: 32개
- 기초 파일: 4개
- 총 부피: 31,596 m³

레이어 구조 (정리됨):
✓ [가시설]: 700개 선 + 원 + 폴리라인
✓ [기존구조물]: 626개 선 (하천 구조물)
✓ [지질주상도]: 580개 원 + 폴리라인 (지질층)
✓ [주상도]: 단면도 정보

축척: 1:120 (이전 1:200 보다 상세)
좌표범위: X 278,189 × Y 281,730

장점:
1. 레이어가 명확하게 정리됨
2. 5,646개 엔티티로 더 상세
3. 자동 부재 추출 가능
4. 웹 뷰어로 실시간 확인 가능

결론:
레이어가 정리된 도면은 자동화 가능하고,
더 정확하며 완성도가 높습니다.

파이프라인 검증 완료:
✓ 가시설_평면.dxf (복잡한 도면)
✓ 가시설계획_LH.dxf (정리된 도면) ← 권장

다음: 다른 도면 적용 또는 배포
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
Claude Haiku committed 2026-10-19 13:23:57 +09:00
1 parent 78646b1098
commit 22346da96f
9 files changed
+64473 -1

No files matched your search

+317
View File
@@ -0,0 +1,317 @@
{
"timestamp": "2026-10-19T04:21:49.769Z",
"drawing": "가시설계획_LH",
"method": "Layer-Based-LH",
"totalVolume": 2326,
"partCount": 51,
"scale": "1:0.008333333333333333",
"parts": [
{
"type": "Structural-Member",
"spec": "300×300 (추정)",
"dimensions": "300×300×3072mm",
"volume": 276,
"lineCount": 700
},
{
"type": "Soil-Layer",
"diameter": 400,
"depth": 500,
"volume": 63
},
{
"type": "Soil-Layer",
"diameter": 400,
"depth": 500,
"volume": 63
},
{
"type": "Soil-Layer",
"diameter": 400,
"depth": 500,
"volume": 63
},
{
"type": "Soil-Layer",
"diameter": 400,
"depth": 500,
"volume": 63
},
{
"type": "Soil-Layer",
"diameter": 400,
"depth": 500,
"volume": 63
},
{
"type": "Soil-Layer",
"diameter": 400,
"depth": 500,
"volume": 63
},
{
"type": "Soil-Layer",
"diameter": 400,
"depth": 500,
"volume": 63
},
{
"type": "Soil-Layer",
"diameter": 400,
"depth": 500,
"volume": 63
},
{
"type": "Soil-Layer",
"diameter": 400,
"depth": 500,
"volume": 63
},
{
"type": "Soil-Layer",
"diameter": 400,
"depth": 500,
"volume": 63
},
{
"type": "Soil-Layer",
"diameter": 400,
"depth": 500,
"volume": 63
},
{
"type": "Soil-Layer",
"diameter": 400,
"depth": 500,
"volume": 63
},
{
"type": "Soil-Layer",
"diameter": 400,
"depth": 500,
"volume": 63
},
{
"type": "Soil-Layer",
"diameter": 400,
"depth": 500,
"volume": 63
},
{
"type": "Soil-Layer",
"diameter": 400,
"depth": 500,
"volume": 63
},
{
"type": "Soil-Layer",
"diameter": 400,
"depth": 500,
"volume": 63
},
{
"type": "Soil-Layer",
"diameter": 400,
"depth": 500,
"volume": 63
},
{
"type": "Soil-Layer",
"diameter": 400,
"depth": 500,
"volume": 63
},
{
"type": "Soil-Layer",
"diameter": 400,
"depth": 500,
"volume": 63
},
{
"type": "Soil-Layer",
"diameter": 400,
"depth": 500,
"volume": 63
},
{
"type": "Soil-Layer",
"diameter": 400,
"depth": 500,
"volume": 63
},
{
"type": "Soil-Layer",
"diameter": 400,
"depth": 500,
"volume": 63
},
{
"type": "Soil-Layer",
"diameter": 400,
"depth": 500,
"volume": 63
},
{
"type": "Soil-Layer",
"diameter": 400,
"depth": 500,
"volume": 63
},
{
"type": "Soil-Layer",
"diameter": 400,
"depth": 500,
"volume": 63
},
{
"type": "Soil-Layer",
"diameter": 400,
"depth": 500,
"volume": 63
},
{
"type": "Soil-Layer",
"diameter": 400,
"depth": 500,
"volume": 63
},
{
"type": "Soil-Layer",
"diameter": 400,
"depth": 500,
"volume": 63
},
{
"type": "Soil-Layer",
"diameter": 400,
"depth": 500,
"volume": 63
},
{
"type": "Soil-Layer",
"diameter": 400,
"depth": 500,
"volume": 63
},
{
"type": "Detail-Block",
"blockName": "가시설4",
"dimensions": "200×200×200mm",
"volume": 8
},
{
"type": "Detail-Block",
"blockName": "가시설4",
"dimensions": "200×200×200mm",
"volume": 8
},
{
"type": "Detail-Block",
"blockName": "가시설4",
"dimensions": "200×200×200mm",
"volume": 8
},
{
"type": "Detail-Block",
"blockName": "가시설4",
"dimensions": "200×200×200mm",
"volume": 8
},
{
"type": "Detail-Block",
"blockName": "가시설4",
"dimensions": "200×200×200mm",
"volume": 8
},
{
"type": "Detail-Block",
"blockName": "가시설4",
"dimensions": "200×200×200mm",
"volume": 8
},
{
"type": "Detail-Block",
"blockName": "가시설4",
"dimensions": "200×200×200mm",
"volume": 8
},
{
"type": "Detail-Block",
"blockName": "가시설4",
"dimensions": "200×200×200mm",
"volume": 8
},
{
"type": "Detail-Block",
"blockName": "가시설4",
"dimensions": "200×200×200mm",
"volume": 8
},
{
"type": "Detail-Block",
"blockName": "가시설4",
"dimensions": "200×200×200mm",
"volume": 8
},
{
"type": "Detail-Block",
"blockName": "가시설4",
"dimensions": "200×200×200mm",
"volume": 8
},
{
"type": "Detail-Block",
"blockName": "가시설4",
"dimensions": "200×200×200mm",
"volume": 8
},
{
"type": "Detail-Block",
"blockName": "가시설4",
"dimensions": "200×200×200mm",
"volume": 8
},
{
"type": "Detail-Block",
"blockName": "가시설4",
"dimensions": "200×200×200mm",
"volume": 8
},
{
"type": "Detail-Block",
"blockName": "가시설4",
"dimensions": "200×200×200mm",
"volume": 8
},
{
"type": "Detail-Block",
"blockName": "가시설4",
"dimensions": "200×200×200mm",
"volume": 8
},
{
"type": "Detail-Block",
"blockName": "가시설4",
"dimensions": "200×200×200mm",
"volume": 8
},
{
"type": "Detail-Block",
"blockName": "가시설4",
"dimensions": "200×200×200mm",
"volume": 8
},
{
"type": "Detail-Block",
"blockName": "가시설4",
"dimensions": "200×200×200mm",
"volume": 8
}
],
"typeCount": {
"Structural-Member": 1,
"Soil-Layer": 30,
"Detail-Block": 20
},
"status": "READY_FOR_WEB"
}