← 목록
기타 2026-06-13 9KB 읽기 9분

크라우니EV 정투상 도면 엔진 (외형도 GA) — 한선씨

개요

크라우니EV 현실화 사다리(점→선→곡선→곡면→솔리드→패널→법규→원클릭→STEP)의 다음 칸인 도면(drawing)을 구현. EV 외피 3D 로프트 형상을 정투상 제3각법 3뷰 외형도(측면/평면/정면) + 치수 + 표제란으로 그려 DXF R12 + SVG 동시 출력. 순수 한선씨(CrownyOS crownyc 방언).

작업 방식: 울트라 병렬 워크플로(표준 딥리서치 4×하이쿠 → 사양종합 오푸스 → 모듈빌드 3×소넷) + 적대검증(3×소넷). 모델 분업(용도 관리) 적용.

무엇을 했는지

  1. 입출력 계약 확정: STL(21KB body)은 읽기() 16KB·VM 문자열 65535 한계 → STL 재파싱 배제. 외피엔진.한선 import해 로프트 격자를 직접 재생성(원클릭빌드와 동일 핀: 스테이션X[685,2280,3878]/폭/높, nU3·p2·nV4·q3).
  2. 기반 계약 도면기반.한선: 형상 샘플링(곡면점 격자 GX/GY/GZ flat) + 경계상자 + DXF/SVG 동시 방출(선추가/문자추가 한 호출로 양 포맷) + 레이어/색 상수 + Y-up→화면 flip + 파일 스트리밍(버퍼 30KB 초과 시 덧쓰기 플러시 → 65535 캡 무력화).
  3. 문서 셸 도면문서.한선: DXF R12 헤더(LAYER 테이블)/푸터 + SVG 헤더/푸터 + 스트리밍 출력(도면_출력시작/도면_출력완료).
  4. 3 모듈(병렬 빌드, 라이브러리화):
- 도면뷰투영.한선: 3뷰 정투상 와이어프레임(측면 X×Z / 평면 X×Y 미러 / 정면 Y×Z 미러), 외형 강조 + 격자. - 도면치수.한선: KS/ISO 129 전체 L/W/H 치수(치수선·치수보조선·화살표·문자). - 도면틀모듈.한선: A3 윤곽선 + ISO 7200 표제란 + 제3각법 기호 + 척도/단위.
  1. 조립 자동차도면.한선: 가져오기 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}
  • DXF R12 60.6KB (LINE 1098 + TEXT 53, HEADER/TABLES/ENTITIES/EOF 무결)
  • SVG 91KB (스트리밍, 무절단), PNG 렌더 검증
  • 치수: L=3193 · W=1856 · H=1004 mm (경계상자 정확 일치), A3, 1:20
  • 실행

    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 반환) → 대용량 파일 재읽기 불가, 생성검증+머리검증으로 대체.