SolidWorks 2023 ネイティブ自動化モデリング(レシピ駆動・実測検証済み)
「物体の記述 → JSONモデリングレシピ → SolidWorksで直接描画」を1コマンドにまとめ、プログラムによる幾何検証を添付します。
リポジトリ構成
| パス | 説明 |
|---|---|
sw_bridge.py | コアブリッジ:レシピ駆動、1コマンドで モデリング→保存→エクスポート→アサーション |
stl_slicer.py | STL ASCIIスライス検証(輪郭/穴/溝をプログラムで確認、画像判定に頼らない) |
recipes/ | 既製レシピサンプル(全リンク自己診断付き recipe_best_practices_test.json 含む) |
dfm_check.py + rules/ | 製品構造DFMチェッカー:射出成形(16条)/3Dプリント(14条)の二工程定量ルールベース、設計パラメータテーブル診断+レシピlint |
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 | 実戦納品事例:二層水管検査ボックス |
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) - 中国国家標準(GB)日本語版のテンプレートパスはデフォルト値組み込み済み。英語版またはカスタムテンプレートの場合は
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)(トグル)。 - 日本語ローカライズ名:正面平面/スケッチ1/等角投影(configで英語環境候補に切り替え可能)。
- 複雑フィーチャー(引数12超)失敗 → 最終手段:SWマクロ収録 →
RunMacro2で再生。 GetEquationMgrはpropget-only、dispidで強制PROPERTYGETする必要あり(api-pitfalls §12参照)。- 複雑なAPIシグネチャはSW付属のタイプライブラリ(makepy)またはマクロ収録で事前確認、記憶で推測しない。
バージョン互換性について
本パッケージはSW2023 中国国家標準(GB)日本語版で実測済み(dispid 66286、ProgID .31、20引数FeatureRevolve2などバージョン依存の細部を含む)。
他のSWバージョンでもコアフローは共通ですが、バージョン依存の定数はapi-pitfalls §12の方法で再確認してください(makepyタイプライブラリ/マクロ収録)。
実測済み / 未実測の境界
- ✅ 押し出し、回転、スプライン、矩形/円/円弧、カット、フィレット、面取り、アセンブリへのコンポーネント追加、GV/方程式、STL/STEP/IGS/PNGエクスポート、メッシュインポート、幾何アサーション
- ❌ スイープ/ロフト/パターン/組み合わせは未実測(理論上は同様の手法、シグネチャはタイプライブラリまたはマクロ収録で事前確認)