- 공개 규칙 장 번호를 SPEC 34장 → 6장으로 고침 (새 SPEC.md 기준) - 사용 도구 절: 설계·검사 문서(SPEC.md·check.sh·CLAUDE.md)는 별도 Claude(Opus) 코치 세션이 썼다고 밝힘 결과: PASS 153 / FAIL 0 / SKIP 3 (검사 범위 F01~F47) Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
46 lines
2.7 KiB
Markdown
46 lines
2.7 KiB
Markdown
# drawing3d-web — 코드 설명
|
|
|
|
원형 수직구 일반도를 라이브러리 없이 Canvas 2D 로 그리는 3D 뷰어. 왼쪽 도면에서 부재를 누르면 오른쪽 3D 에서 강조된다. 사내 공개용 정리본(SPEC 6장 공개 규칙). 설계 근거는 `SPEC.md`, 구동 설명은 `guide/index.html`.
|
|
|
|
> 🔒 사내교육용 — 열람 외 재배포 등의 활동을 금함 (회사 도면의 치수를 옮겨 적음)
|
|
|
|
## 실행
|
|
|
|
- `index.html` 을 Chrome 또는 Edge 로 연다. 서버·인터넷은 필요 없다. 첫 화면은 도면에서 만든 모델이고, `answer.html` 은 손으로 만든 정답지 화면이다.
|
|
- WSL 에서는 이 폴더에서 `explorer.exe index.html`.
|
|
|
|
## 파일 구조
|
|
|
|
- `index.html`, `answer.html`: 화면(도면 칸 · 가운데 막대 · 3D 칸). 스크립트는 데이터 다음 `viewer.js` 순서.
|
|
- `viewer.js`: 그리기·입력·도면 연결 코드 전부.
|
|
- `model_extracted.js`(첫 화면), `model.js`(정답지): `const MODEL = {...};` 한 줄짜리 순수 JSON.
|
|
- `tools/`: 변환 도구, 추출 도구 `extract_from_dxf.py`, 설계 규칙 `design_rules.json`, 그림 상자 설정 `views.json`.
|
|
- `private/drawing.svg`, `private/drawing_gen.svg`: 도면. 커밋된 도면은 정리본 3개뿐이다(원본 DWG 는 `.gitignore`).
|
|
- `evidence/`: WSL2 설치 증빙, 1차 커밋 기록.
|
|
- `SPEC.md`, `CLAUDE.md`, `check.sh`: 규약, 작업 규칙, 합격 판정(수정 금지).
|
|
|
|
## 다시 만들기 (변환 패키지)
|
|
|
|
설계도면은 DWG 로 주고받는다. GNU LibreDWG 로 DXF 로 바꾸고, 그림 상자 안 객체만 남겨 모델을 뽑는다.
|
|
|
|
- 설치 (WSL Ubuntu, LibreDWG 0.14 소스 빌드): `PKG_CONFIG=/bin/true ./configure --prefix=$HOME/.local --disable-bindings --disable-docs && make && make install`. `dwg2dxf` 가 `~/.local/bin` 에 생긴다.
|
|
- 실행: `bash tools/make_model.sh` (입력 `private/drawing.dwg`, 출력 `model_extracted.js` 와 `private/drawing_gen.svg`).
|
|
- 단계: `tools/dwg_to_dxf.sh`(DWG → DXF), `tools/select_views.py`(그림 상자 안만 남김), `tools/dxf_to_svg.py`(DXF → SVG), `tools/extract_from_dxf.py`(DXF → 모델).
|
|
|
|
## 검사
|
|
|
|
- `bash check.sh` : 전체 검사. `bash check.sh F06` : F06 까지만, 뒤 기능은 SKIP.
|
|
- 끝 줄이 `PASS n / FAIL 0` 이면 통과.
|
|
|
|
## 사용 도구
|
|
|
|
- WSL2 (Ubuntu) 에서 작업. 설치 증빙은 `evidence/wsl2.txt`. 버전 확인(Windows 명령 프롬프트): `wsl -l -v`
|
|
|
|
```
|
|
NAME STATE VERSION
|
|
* Ubuntu Stopped 2
|
|
```
|
|
|
|
- Claude Code, 모델 Haiku 5.5 (코드 작성·수정·커밋). 설계·검사 문서(`SPEC.md`·`check.sh`·`CLAUDE.md`)는 별도 Claude(Opus) 코치 세션이 썼다.
|
|
- GNU LibreDWG 0.14, Python 3 표준 라이브러리, git, Chrome 또는 Edge.
|