SolidWorks 2023 로컬 자동 모델링 (레시피 기반 · 실제 검증 완료)
"물체 설명 → JSON 모델링 레시피 → SolidWorks 직접 그리기"를 하나의 명령으로封装하고, 프로그래밍 방식의 기하학 검증을 추가합니다.
저장소 구조
| 경로 | 설명 |
|---|---|
sw_bridge.py | 핵심 브리지: 레시피 기반, 한 명령으로 모델링→저장→내보내기→검증 |
stl_slicer.py | STL ASCII 슬라이스 확인 (프로그램적으로 윤곽/구멍/홈 확인, 이미지 분석 불필요) |
recipes/ | 기성 레시피 예제 (전체 체인 자체 검사 포함 recipe_best_practices_test.json) |
dfm_check.py + rules/ | 제품 구조 DFM 검사기: 사출 성형(16개 규칙)/3D 프린팅(14개 규칙) 듀얼 공정 정량 규칙 라이브러리, 설계 파라미터 테이블 검진 + 레시피 린트 |
skills/sw-dfm-injection/ | 하위 스킬: 사출 성형 DFM (DVT/양산, 벽 두께/드래프트/스냅핏/Boss/리브/언더컷 정량 규칙) |
skills/sw-dfm-proto/ | 하위 스킬: 3D 프린팅 시제품 DFM (EVT, 최소 형상/오버행/간격/배액공 정량 규칙) |
references/api-pitfalls.md | 실전 노하우 총정리: COM/서명/VARIANT/EquationMgr/ROT 관련 함정, 새 기능 개발 전 필독 |
references/recipe-cookbook.md | 레시피 문법 상세 설명 + 템플릿 + 다중 사양/검증 사용법 |
references/industry-best-practices.md | 업계 모범 사례 연구 요약 + 향후 개선 목록 |
docs/case_mcp1085_box.md | 실전 납품 사례: 2층 수도관 검사함 |
config.example.json | 머신별 설정 템플릿 (템플릿 경로/ProgID/출력 디렉토리) |
환경 전제 조건 (하나라도 빠지면 안 됨)
- Windows + 정품 SolidWorks 2023 실행 중. COM은 대화형 세션에만 연결 가능(
GetObject). 헤드리스 불가능, 스크립트로 실행 불가능 (COM으로 실행된 인스턴스는 ROT 등록 불가, api-pitfalls §13 참조). - Python 3.10+,
pip install -r requirements.txt(pywin32 / trimesh / manifold3d / numpy / pillow). - 중국 국가 표준(국표) 템플릿 경로가 기본값으로 내장됨; 영문 버전 또는 사용자 정의 템플릿 사용 시
config.example.json을config.json으로 복사하여 수정.
빠른 자체 검사
python sw_bridge.py --demo block # 블록 생성 + 내보내기 + 기하학 검증 올인원
python sw_bridge.py --demo vase # 스플라인 회전 곡면
python stl_slicer.py --stl demo_output/demo_block.STL --level 5 # 슬라이스로 단면 확인
표준 작업 흐름
- 레시피 JSON 작성 (문법 및 템플릿은
references/recipe-cookbook.md참조) - 실행:
python sw_bridge.py --recipe-file recipes/xxx.json - 검증: 레시피 내
verify검증 실행 (수밀성/부피/경계 상자/golden IoU), 실패 시 전체 작업 실패; 이후stl_slicer.py로 단면 확인 - 이미지 출력: 여러
viewop로 다각도 PNG 내보내기;fmt: step으로 후공정 전달 - 구조 검토 (제품형 부품):
python dfm_check.py --design 파라미터표.json --process both——사출 성형/3D 프린팅 듀얼 공정 DFM 검진, FAIL 시 게이트 통과 불가; 하위 스킬은skills/참조
레시피 op 개요 (전체 파라미터는 cookbook 참조)
| op | 설명 |
|---|---|
new_part / new_assembly / open | 문서 작업 |
sketch / sketch_end / centerline / spline / line / rect / circle / arc | 스케치 (mm) |
extrude / revolve / cut / fillet / chamfer | 피처 (실패 시 자동 재시도 후 다운그레이드) |
set_global_variable / add_equation | 전역 변수/방정식 → 동일 모델 다중 사양은 GV 변이 |
view / save / export / add_component / import_mesh | 뷰/저장/stl·png·step·iges 내보내기/어셈블리/메시 가져오기 |
verify | trimesh 검증 계층 (수밀성/부피/경계 상자/golden IoU) |
실행 중에는 그래픽 새로 고침/피처 트리가 자동으로 고정(성능 최적화), 마무리 시 ForceRebuild3+ForceRebuildAll 일괄 호출.
하드 규칙 빠른 참조 (전체 버전은 references/api-pitfalls.md 참조)
- API 길이 단위는 항상 미터, 레시피는 mm 단위 (브리지가 자동 변환).
FeatureRevolve2는 20개 파라미터; 타입 라이브러리 생성 4/5/7개 파라미터 버전은 모두 오류.- 늦은 바인딩에서 Callout/ExportData는
VARIANT(VT_DISPATCH, None)전달 필수;CreateSpline2점 배열은VT_ARRAY|VT_R8필수. - 스케치 진입/종료 모두
InsertSketch(True)사용 (Toggle). - 중국어 로컬라이즈 이름: 전면 기준면/스케치1/*등각투영 (config에서 영문 환경 후보로 전환 가능).
- 복잡한 피처(>12개 파라미터) 실패 → 최후의 수단: SW 매크로 녹화 →
RunMacro2재생. GetEquationMgr은 propget 전용이므로 dispid로 강제 PROPERTYGET 수행 (api-pitfalls §12 참조).- 복잡한 API 서명은 SW 설치된 타입 라이브러리(makepy) 또는 매크로 녹화로 먼저 확인, 기억에 의존하지 말 것.
버전 호환성 설명
이 패키지는 SW2023 중국 국가 표준(국표) 버전에서 실제 테스트 완료 (dispid 66286, ProgID .31, 20개 파라미터 FeatureRevolve2 등 버전 관련 세부 사항 포함).
다른 SW 버전의 핵심 워크플로는 공통적이나 버전 관련 상수는 api-pitfalls §12의 방법으로 재확인 필요 (makepy 타입 라이브러리/매크로 녹화).
실제 테스트 완료 / 미완료 경계
- ✅ 돌출, 회전, 스플라인, 사각형/원/호, 컷, 필렛, 모따기, 어셈블리 부품 추가, GV/방정식, STL/STEP/IGS/PNG 내보내기, 메시 가져오기, 기하학 검증
- ❌ 스윕/로프트/패턴/구속 조건은 미테스트 (이론적으로 동일 방식이나 서명은 타입 라이브러리 또는 매크로 녹화로 먼저 확인)