← 목록
기타 2026-06-11 5KB 읽기 4분

크라우니CAD 네이티브 — 다시 시작 (2026-06-11)

개요

크라우니CAD를 CrownyOS 전용 네이티브 앱으로 처음부터 다시 시작. 완전 한선씨 / 4상균형3진 / 크라우니기계어(TOAU). 브라우저·JS 폐기. AutoCAD R12·구형 CNC 경험 기반 "이해하며 작게 반복 고도화". 단일 파일: /Users/ef/CrownyOS/apps/크라우니CAD.한선.

무엇을 했는지

1. RPN 정통 컴파일러 근본 진단 (중요)

"순수 한선씨 RPN" 시도 중 유일한 RPN 컴파일러 hanseonc_std.toau가 동결·무소스·심하게 불완전함을 실측 확인:
  • ✅ 작동: 산술, 크다/작다/같다/다르다(거짓=-1, 4상), 아니면점프/점프/.라벨, 맵생성/맵넣어/맵꺼내, 추가/길이, 문자열, 보여줘/출력값
  • ❌ 깨짐: 루트/거듭제곱(항상0), 배열 꺼내/설정, 크거나같다/작거나같다(항상0→루프무한), 큰수 비교/루프 오작동
  • crownyc VM 자체는 멀쩡 — 동결 std 프런트엔드만 결함(소스 없어 수정불가). hanseonc_high같은 TOAU 기계어를 같은 VM에 emit.
  • 메모리: feedback_hanseonc_std_broken.md

2. 방향 결정 (사용자 선택: 병렬)

이 세션은 CAD를 고수준(high)으로 진척, RPN→TOAU 컴파일러 복원은 별도 트랙. 셋 다 같은 크라우니기계어/4상 VM에서 동작 → 본질(네이티브·4상·기계어) 충족, 차이는 표면 문법뿐.

3. 구현·검증 완료 (단일 파일, TOAU 약 128KB로 컴파일·실행 ✓)

  • 엔티티 모델: 평탄 10슬롯 레코드 [종류, x1,y1,z1, x2,y2,z2, p,q,r] (AutoCAD DXF 그룹코드 대응, 중첩배열 회피). 종류: 점1 선2 원3 호4. append-only(인덱스대입 함정 회피), 읽기=꺼내(문서, i*폭+j).
  • 측정: 선길이(루트), 원둘레.
  • ASCII 뷰포트: 터미널에서 도면 보기. 선=선래스터(120 샘플), 원=원래스터(정수 미드포인트 원 알고리즘, 트릭 불필요), 점/호중심 마커. Y축 상향(AutoCAD식).
  • 도면 스크립트 명령 인터페이스 (.scr 방식): 한국어 명령 선/원/점/호토큰분리+명령실행이 파싱→작도. 도면이 데이터가 됨.
  • 검증 게이트: 사각형 4선 둘레 = 320mm = 기대치 → 상태=Ti.

사용법 (/guide · /manual)

실행

bashcd /Users/ef/CrownyOS/crownyc
./hanseonc_high ../apps/크라우니CAD.한선 > /tmp/cad.toau 2>/dev/null
./crownyc run /tmp/cad.toau

도면 그리기 — .scr 파일을 직접 편집 (재컴파일 불필요)

도면 데이터는 외부 파일 /Users/ef/CrownyOS/apps/도면/기본.scr. 한 줄 = 한 명령:
선 x1 y1 x2 y2          # 직선
원 cx cy 반지름          # 원
점 x y                  # 점
호 cx cy 반지름 시작각 끝각   # 호(각=1/100도, 9000=90도)
좌표 단위 mm, 정수. .scr을 텍스트 에디터로 고치고 crownyc run /tmp/cad.toau 만 다시 실행하면 — 엔진(.toau)은 그대로, 도면만 바뀐다. 첫 실행 시 .scr이 없으면 표준 씨앗(사각형+원+호+점)을 자동 저장한다. 실행 출력: 엔티티 목록 + 측정값 + ASCII 뷰포트(*oa호중심 +점).

관련 파일

  • 앱(단일): /Users/ef/CrownyOS/apps/크라우니CAD.한선
  • 컴파일러: crownyc/hanseonc_high, VM crownyc
  • 기존 커널(재사용 예정): apps/곡면.한선 솔리드.한선 솔리드CSG.한선 STEP익스포트.한선, 렌더 real.한선
  • 로드맵: 2026-06-11-크라우니CAD-로드맵-한선씨중심-재정리.md

잔여 이슈 / 다음 단계

  • P2 영속 (완료): .scr 저장/불러오기. "\n"은 high에서 0x0A로 정상 컴파일(주의: "\r"은 안 됨). 줄은 배열로 분리(개행리터럴 함정 회피). 손편집→재렌더 검증됨.
  • P3a 돌출+3D 아이소 (완료): 돌출볼륨+상자아이소(정수 오블리크 투영)로 사각형 프로파일을 Z 돌출→3D 와이어프레임 ASCII. 볼륨 300000mm³ 검증. 고수준 자족 구현 — RPN 렌더 커널(솔리드.한선/CAD렌더통합.한선은 깨진 std 의존)에 안 묶임, 부피 공식만 재사용.
  • P3b 실사 렌더: 고수준에서 PPM 래스터 출력(real.한선 RPN 의존 회피, 자체 래스터라이저) — 픽셀 이미지로 도면 보기.
  • P4 편집/레이어: 임의 프로파일 돌출(사각형 외 폐곡선), 레이어, 삭제/이동, 스냅, 치수주석.
  • P4b EV 연동: 캘리포니아 외피/부품 프로파일을 .scr로, EV 빌드대장 연결.
  • P5 EV 탑재: 외피/부품 도면, 데이터 취지·과정 /task 기록.
  • 별도 트랙: 작동하는 RPN→TOAU 프런트엔드 신규 작성(정통 하강 목표).
  • 크라우니VM 패러랠 동시실행 모드(사용자 구현 예정) 연동.