크라우니EV 정투상 도면 엔진 (외형도 GA) — 한선씨
개요
크라우니EV 현실화 사다리(점→선→곡선→곡면→솔리드→패널→법규→원클릭→STEP)의 다음 칸인 도면(drawing)을 구현. EV 외피 3D 로프트 형상을 정투상 제3각법 3뷰 외형도(측면/평면/정면) + 치수 + 표제란으로 그려 DXF R12 + SVG 동시 출력. 순수 한선씨(CrownyOS crownyc 방언).작업 방식: 울트라 병렬 워크플로(표준 딥리서치 4×하이쿠 → 사양종합 오푸스 → 모듈빌드 3×소넷) + 적대검증(3×소넷). 모델 분업(용도 관리) 적용.
무엇을 했는지
- 입출력 계약 확정: STL(21KB body)은
읽기()16KB·VM 문자열 65535 한계 → STL 재파싱 배제.외피엔진.한선import해 로프트 격자를 직접 재생성(원클릭빌드와 동일 핀: 스테이션X[685,2280,3878]/폭/높, nU3·p2·nV4·q3). - 기반 계약
도면기반.한선: 형상 샘플링(곡면점 격자 GX/GY/GZ flat) + 경계상자 + DXF/SVG 동시 방출(선추가/문자추가한 호출로 양 포맷) + 레이어/색 상수 + Y-up→화면 flip + 파일 스트리밍(버퍼 30KB 초과 시덧쓰기플러시 → 65535 캡 무력화). - 문서 셸
도면문서.한선: DXF R12 헤더(LAYER 테이블)/푸터 + SVG 헤더/푸터 + 스트리밍 출력(도면_출력시작/도면_출력완료). - 3 모듈(병렬 빌드, 라이브러리화):
도면뷰투영.한선: 3뷰 정투상 와이어프레임(측면 X×Z / 평면 X×Y 미러 / 정면 Y×Z 미러), 외형 강조 + 격자.
- 도면치수.한선: KS/ISO 129 전체 L/W/H 치수(치수선·치수보조선·화살표·문자).
- 도면틀모듈.한선: A3 윤곽선 + ISO 7200 표제란 + 제3각법 기호 + 척도/단위.
- 조립
자동차도면.한선: 가져오기 4 + 드라이버. 레이아웃(제3각법: 평면↑·측면·정면→, Z/X 정렬).
산출물
/Users/ef/CrownyOS/apps/자동차도면.한선 (조립)/Users/ef/CrownyOS/crownyc/pkg/libs/도면기반.한선·도면문서.한선·도면뷰투영.한선·도면치수.한선·도면틀모듈.한선/Users/ef/Downloads/crowny-design/output/crowny_ev_도면.{dxf,svg,png}실행
bashcd /Users/ef/CrownyOS/crownyc
CROWNY_STD=/Users/ef/CrownyOS/crownyc/pkg/libs ./hanseonc_high /Users/ef/CrownyOS/apps/자동차도면.한선 > /tmp/도면.toau 2>/dev/null
./crownyc run /tmp/도면.toau # → /tmp/crowny_ev_도면.{dxf,svg}
VM 함정·교훈 (재사용)
- VM 문자열 ~65535 하드캡: 큰 도면은 단일 문자열 누적 시 정확히 65535B에서 silent 절단(SVG 깨짐). → 30KB 버퍼 후
덧쓰기파일 스트리밍이 정답(STL 32KB 회피와 동일 원리). - 선폭 단위 불일치: 모듈마다 굵기천 스케일 가정이 달라(70 vs 800) 렌더 0.07mm/8mm 극단.
도면_밀리를 1/100mm 해석(나눗셈 없이 부분() 슬라이싱)으로 통일 → 외형0.70/은선·치수0.18/도면틀0.50mm. - Workflow 스키마 키 ASCII 필수: schema property에 한글 키(축/결함/근거) → 400 전원 실패. 값만 한글 OK.
- 배열 1023 상한 → 격자 (gU+1)(gV+1)=117 안전, 선은 배열 누적 말고 스트리밍 방출.
2모드 병행 + 세련화 (2차)
- 2모드:
도면생성(스타일,...)디스패치 — 격자(표면 와이어프레임, CEV-GA-001) + 실루엣(정통 HLR 외형도, CEV-GA-002) 둘 다 출력. 실루엣=뷰별 경계 추출(측면 상/하단 레일+스테이션, 평면 외곽레일 미러+중심선, 정면 최외곽단면 미러+중심선). - ISO 선종 위계:
선스타일(중앙통제) — 외형0.70/구성0.22/은선0.35파선/중심 일점쇄선/치수0.25/틀0.70. - ISO 5456 제3각법 기호 그래픽: 동심원(끝면)+원추 사다리꼴+쇄선중심선(
원추가DXF CIRCLE 추가). 텍스트 대체. - 병행 뷰어:
apps/도면뷰어.한선→output/도면뷰어.html(격자/실루엣 토글 + DXF/SVG/PNG 다운로드, 베이지+골드 #C9A961). - 2모드 DXF 무결성 재검증(프로그램 파싱): 격자 1047선·실루엣 118선, 둘 다 영길이0·미정의레이어0·A3내·EOF정상·CIRCLE2. ✅
3차 — 단면도·부분치수·표제 보강·라이브 결선 (병렬)
- 단면도 A-A(
도면단면.한선): station 단면 절단면(외형+구성 절단선) 우상단 배치 + 측면도 절단선(일점쇄선+화살표+A-A 라벨).단면도/절단선함수. - 부분치수(
부분치수측면): 스테이션 누진 치수 1063+1065+1065=3193(전장 정합). 3구간 루프(영-구간 "0" 버그 수정). - 표제 v2(
도면표제v2.한선): ISO 7200 검토(Checked)/승인(Approved) 서명란 + 개정란(REV/DATE/DESCRIPTION/BY, 행0 최초발행). - 라이브 결선:
design.crowny.org/ev-도면/도면뷰어.html게이트웨이 200 (CDP cdp-dist/ev-도면/ 정적, 한글경로 OK). 재검증 두 모드 DXF 무결(영길이0·미정의레이어0·A3내·EOF·CIRCLE2). 격자 1112선/실루엣 183선.
적대검증 (3×소넷 병렬, 1차)
- 기하: 축매핑 PASS, 치수값 PASS(L3193/W1856/H1004), 제3각법 정렬 PASS. FAIL→수정: 척(2Y)≠2·척(Y) 자연반올림으로 W치수선 1mm 초과 →
WD=2*척(BBymax)로 통일(✅). - DXF 무결성: 구조/레이어/그룹코드/좌표 모두 PASS, 절단 0. WARN→수정: 영길이 LINE 56건 →
선추가zero-length 가드로 0건(✅). 중복 LINE 95건(외형 강조 재방출, 코스메틱)·LTYPE/STYLE 테이블·DIMENSION 엔티티는 후속. - 표준(ISO128/7200): 수정: 축척텍스트 도면틀 밖(y6→14)(✅). 후속: 선가중치 3단계 위계, 검토/승인·개정란, ISO5456 투상기호 그래픽, 평면 라벨 여백.
잔여 이슈 / 다음
- 표제란 검토/승인·개정란, ISO5456 제3각법 기호 그래픽, 선가중치 3단계(은선0.35/치수0.25).
- 중복 LINE 95건 dedup 패스, LTYPE/STYLE 테이블, DIMENSION 엔티티(자동 스냅).
- 와이어프레임 surface mesh형 → 실루엣 HLR(은선제거)로 정통 외형도화.
- 부분치수(휠베이스·전장 4563)·중심선·해치 단면도.
- DXF 왕복(FreeCAD/ezdxf 무손실) — STEP익스포트와 CAD 상호운용. design.crowny.org STL/도면 뷰어 결선.
관련
- 사다리:
2026-06-09-crowny-ev-곡면엔진-현실화.md, 빌드대장2026-06-09-crowny-ev-빌드대장.json - 메모리: project_crowny_ev_design, project_crowny_design_cdp
4차 — 45° 해치·복수단면·DXF DIMENSION·CDP 메뉴 (3병행)
- 45° ISO 해치 + 복수단면(
도면해치.한선단면세트): A-A/B-B/C-C 3단면 1:30 우상단 나란히, 밴드별 45° 클리핑 해치, 측면도 3절단선(A/B/C). 차체 길이방향 단면변화 표현. - DXF DIMENSION 엔티티(
도면치수dim.한선): 진짜 DXF DIMENSION(L/W/H 3개) + DIMSTYLE STANDARD + BLOCKS(MODEL/PAPER) +DXF헤더DIM(도면문서 헤더 교체). CAD 자동스냅. SVG는 시각선 유지. - CDP 메뉴: design.crowny.org 사이드바 "도면 / DRAWINGS" 섹션(뷰어+실루엣/격자/DXF), 라이브 200.
- 검증: 두 모드 DXF 4섹션(HEADER/TABLES/BLOCKS/ENTITIES) 균형·DIMENSION3·영길이0·A3내. 라이브 동기화.
- 엔진 라이브러리 10종: 도면기반/문서/뷰투영/실루엣/치수/치수dim/단면/해치/틀모듈/표제v2.
5차 — 재질해치·상세도·DXF왕복검증 (3병행, 딥리서치)
- 재질별 해치(ISO 128-50)
재질해치.한선: 강(45°단선)·알루미늄(교차)·CFRP(45+135+90 삼중)·고무(점) + 구리/콘크리트 등. 단면 A-A/B-B/C-C에 CFRP 복합해치(부품 재질) 적용.단면세트에단면해치끄기플래그 추가(기본해치↔재질해치 전환). - 상세도(ISO 128-34)
상세도.한선:상세도콜아웃(원+식별문자+리더)·상세도뷰(프레임+SCALE)·상세_변환. 측면도 전방 리딩에지 프로파일 확대(자동맞춤). - DXF 왕복검증
도면검증.한선: 한선씨 구조검증기 —읽기()16KB 머리로 R12 구조 13항목(AC1009/섹션/5레이어/DIMSTYLE STANDARD/BLOCKS/ENTITIES) 검증, 두 모드 GREEN(위반0). VM 제약(파일열기 -1 미작동·읽기 16KB캡) → 머리 구조검증 + python 전체기하 보조. - 검증 종합: LINE 격자2771/실루엣1842, TEXT54, CIRCLE3, DIMENSION3, 영길이0, 섹션균형, A3내, 미정의레이어0. 라이브 200.
- 엔진 라이브러리 13종 + 자동차도면(조립)·도면뷰어. 딥리서치 4(ISO128-50/128-34/DXF왕복/단면규칙).
- VM 한계 기록: 파일열기/파일읽기 스트리밍 API 미작동(-1 반환) → 대용량 파일 재읽기 불가, 생성검증+머리검증으로 대체.