CDP STEP AP214 라운드트립 E2E 테스트
2026-04-16  ·  2026-04-16-cdp-step-e2e-test.md

CDP STEP AP214 라운드트립 E2E 테스트

개요

CrownyDesign Partner(CDP) STEP AP214 내보내기/가져오기 파이프라인의 전체 라운드트립을 검증하는 E2E 테스트 스크립트를 작성했다.

무엇을 했는지

1. **`src/exchange.js` 분석**: `STEPExporterAP214.exportMesh()` (Three.js BufferGeometry → STEP) 와 `STEPImporter.parse()` API를 확인 2. **버그 발견 및 수정**: `STEPExporterAP214._buildFile()`이 엔티티 라인에 `;`를 붙이지 않아 `STEPImporter`의 정규식 파서가 엔티티를 0개 파싱하는 버그 → 수정 완료 3. **E2E 테스트 작성**: `test-step-e2e.mjs` — 5개 파트(박스, 실린더, 구, L브래킷, 다중바디) 전체 라운드트립 4. **한선씨 동반 파일**: `test-step-e2e.한선` 작성

테스트 결과


69/69 통과 (0 실패)
각 파트별 확인 항목:
  • ISO-10303-21 헤더, DATA 섹션
  • MANIFOLD_SOLID_BREP / ADVANCED_FACE / CARTESIAN_POINT 존재
  • 솔리드 >= 1, 면 >= 4, 정점 >= 3
  • 바운딩박스 X/Y/Z 라운드트립 (1% 오차 이내 — 모두 0.00%)

관련 파일

  • `/Users/ef/Downloads/crowny-design/cdp/test-step-e2e.mjs` — E2E 테스트 (node 실행)
  • `/Users/ef/Downloads/crowny-design/cdp/test-step-e2e.한선` — 한선씨 동반 파일
  • `/Users/ef/Downloads/crowny-design/cdp/src/exchange.js` — 수정됨 (line 346: `;` 붙이기)

수정 내용 (exchange.js line 346)


// 이전
step += this.entities.join('\n') + '\n';
// 수정 후
step += this.entities.map(e => e.endsWith(';') ? e : e + ';').join('\n') + '\n';

잔여 이슈

  • STEP 임포터의 엔티티 정규식 `[^;]*`는 중첩 괄호 안 세미콜론이 있으면 파싱 실패 가능 (헤더 엔티티 등)
  • `export([])` 호출 시 `entityId`/`entities` 초기화 — `exportMesh()` 단독 사용 패턴만 테스트됨