← 목록
기타 2026-04-16 2KB 읽기 2분

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)

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

잔여 이슈

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