【SolidWorks VBA】抜き勾配の自動化で設計効率を劇的に変える! `ExtrudeFeature2`の真髄
こんにちは!設計自動化の世界へようこそ。
日々、マウスをカチカチと動かして「抜き勾配」を設定していませんか?
射出成形品の設計において、抜き勾配(テーパー)は必須の工程ですが、手動で行うと数が増えるほど時間がかかり、設計変更への耐性も弱くなります。今日は、SolidWorks APIの中でも特に重要な`ExtrudeFeature2`を使い、押し出しと同時に勾配を付与する「プロの自動化術」を伝授します。
「マクロの記録」から一歩踏み出し、実務で使える堅牢なコードを書くための扉を開きましょう。
—
1. なぜ「マクロの記録」だけでは足りないのか?
多くの初心者の方が「マクロの記録」ボタンを押してコードを生成しますが、記録されたコードは冗長で、「どの値が何を表しているのか」がブラックボックス化しがちです。
今回扱う `FeatureManager.FeatureExtrusion2` は、押し出しの全パラメータを一行で制御するコマンドです。これを知れば、パラメータを動的に変更できる「真の設計自動化」が可能になります。
—
2. 勾配付きボス生成のメカニズム
今回の核心となる `FeatureExtrusion2` メソッドの引数は非常に多いですが、特に重要なのは以下のパラメータです。
- DraftAngle: 勾配角度(ラジアンではなく度数法で指定できるのがポイント!)
- DraftType: 勾配の方向(内向き・外向き)
- IsDraftOutward: 外側に広がるか、内側に絞るか
これらをコード内で制御することで、設計意図をプログラムに完全に落とし込むことができます。
—
3. 実践:勾配付きボス生成マクロ
以下のコードをコピーし、VBAエディタに貼り付けて実行してみてください。
Option Explicit
‘ 伝説のエンジニアの流儀:変数は型を明示し、メモリリークを避ける
Sub CreateDraftedBoss()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swFeatMgr As SldWorks.FeatureManager
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
‘ スケッチ面が選択されていることを前提とする
If swModel Is Nothing Then MsgBox “パーツファイルを開いてください”: Exit Sub
Set swFeatMgr = swModel.FeatureManager
‘ 【重要】押し出しの設定パラメータ
‘ Extrusion2(深さ, 反転, 終端タイプ, 方向2の終端タイプ, 勾配有無,
‘ 勾配角度, 勾配方向(内/外), 薄板有無, 薄板厚み, 薄板方向)
swModel.FeatureManager.FeatureExtrusion2 _
True, False, False, False, False, _
0.05, 0.05, _ ‘ 深さ1, 深さ2
True, True, _ ‘ 勾配の有無(True), 勾配角度(5度)
False, False, _ ‘ 勾配方向(外向きか?), 勾配対象(中立面か?)
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, _ ‘ 薄板設定(今回はOFF)
True, False ‘ 方向1の終了条件, 方向2の終了条件
MsgBox “抜き勾配付きボスを作成しました!”
End Sub
コード解説:ここがプロのポイント
1. DraftAngleの指定: 上記コードの引数にある `True, 5 3.14159 / 180` のように、APIではラジアンで指定する場面も多いですが、SolidWorksのFeatureManagerは直感的に扱えるものも混在します。
2. 型指定の徹底: `SldWorks.ModelDoc2` など、ライブラリを参照設定で明確にすることで、IDEの強力な補完機能(インテリセンス)が効くようになり、タイプミスによるエラーを未然に防げます。
—
4. 初学者が陥りやすい「罠」
マクロを書いていると必ず遭遇する壁があります。
- 「スケッチが選択されていない」エラー:
`swModel.FeatureManager` を呼ぶ前に、必ず `swModel.SketchManager.InsertSketch` や対象面の選択状態を確認するロジックを入れてください。
- 単位系の罠:
SolidWorksのAPIは内部的に「メートル法(メートル・キログラム・秒)」で計算します。もし「50mm」の押し出しを作りたいなら、コード上では `0.05` と書くのが鉄則です。ここを間違えると、とんでもなく巨大なモデルが出来上がります。
—
5. 次のステップへ
今回のコードは「固定値」で動かしていますが、実務では「ユーザーフォームから数値を取得して押し出す」のが次のステップです。
「設計者が入力した勾配角度に応じて、自動的に形状が追従する」。これこそが、SolidWorks VBAを使いこなすエンジニアの醍醐味です。
まずはこのコードを動かし、次に「角度を変えたらどうなるか?」を試してみてください。その好奇心こそが、あなたを一流の自動化エンジニアへと押し上げるエンジンになります。
また次回の記事でお会いしましょう。あなたの設計ライフが、もっと自由で創造的になりますように!
