【入門編】【コンフィギュレーション制御】ConfigurationManagerを使ったマルチ構成部品のバッチ切り替えと自動生成 – SolidWorks VBA解析バイブル

スポンサーリンク

SolidWorks VBAを掌握する:ConfigurationManagerで「構成部品」を自在に操る極意

こんにちは。現場で「マクロの記録」に頼り切った開発から、真の自動化エンジニアへと脱皮したいあなたへ。

SolidWorks APIの世界へようこそ。今日は、多くのユーザーが一度は壁にぶつかる「コンフィギュレーション(構成)」の制御について、その本質を解き明かしていきます。これができれば、何百というバリエーションを持つ部品の図面作成やデータ書き出しを、コーヒーを飲んでいる間に終わらせることも夢ではありません。

—

1. なぜ「ConfigurationManager」を知る必要があるのか?

SolidWorksのAPIは、大きく分けて SldWorks(親玉) と ModelDoc2(ドキュメントの本体) という二つの階層で制御されます。

しかし、モデルの中に存在する「コンフィギュレーション(構成)」という概念は、さらに一段深い階層である `ConfigurationManager` によって管理されています。ここを理解していないと、マクロを走らせても「なぜか常にデフォルトの構成しか処理されない」という罠に陥ります。

構成制御の基本フロー

1. `ModelDoc2` から `ConfigurationManager` を呼び出す。
2. 対象とする構成名(Name)を指定してアクティブにする。
3. 重要: 構成を切り替えたら、再構築(Rebuild)を忘れずに行う。

—

2. 【実戦コード】構成をバッチ切り替えして処理する

以下のコードは、部品ファイルに含まれるすべてのコンフィギュレーションを順番に切り替え、その構成名をイミディエイトウィンドウに表示するテンプレートです。

Sub BatchConfigurationProcessor()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swConfMgr As SldWorks.ConfigurationManager
Dim swConf As SldWorks.Configuration
Dim vConfNames As Variant
Dim i As Integer
Dim bRet As Boolean

‘ 1. アプリケーションとアクティブなドキュメントの取得
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc

If swModel Is Nothing Then Exit Sub

‘ 2. ConfigurationManagerの取得
Set swConfMgr = swModel.ConfigurationManager

‘ 3. すべての構成名を取得
vConfNames = swModel.GetConfigurationNames

‘ 4. 各構成をループして切り替え
For i = LBound(vConfNames) To UBound(vConfNames)
Debug.Print “処理中: ” & vConfNames(i)

‘ 構成をアクティブにする
bRet = swModel.ShowConfiguration2(vConfNames(i))

‘ 5. 最重要:モデルの再構築(これを忘れると前回の状態が残る!)
swModel.ForceRebuild3 False

‘ — ここに個別の処理を記述 —
‘ 例: 質量特性の取得、図面のPDF書き出しなど
‘ —————————-

Next i

MsgBox “全構成の処理が完了しました。”
End Sub

—

3. 現場のエンジニアが陥りやすい「3つの罠」

初学者が必ずと言っていいほど躓くポイントを、先回りして伝授します。

① 「再構築(Rebuild)」の怠慢

`ShowConfiguration2` で構成を切り替えただけでは、SolidWorksの内部状態(ジオメトリや質量)が最新の状態に更新されないことがあります。必ず `ForceRebuild3` を呼び出すのが、プロの鉄則です。

② モデルの保存状態と同期していない

APIで構成を切り替えて保存すると、最後にアクティブだった構成が「保存時のデフォルト」として記録されます。マクロ終了時に一番使い勝手の良い構成に戻す処理を入れると、ユーザーからの評価がグッと上がります。

③ インターフェースの整合性

`ModelDoc2` のメソッドと `Configuration` オブジェクトのプロパティを混同しないようにしてください。構成の名前変更などは `Configuration` オブジェクト側で行いますが、表示切り替えは `ModelDoc2` 側の機能です。

—

4. 次のステップへ

ここまでマスターすれば、あなたはもう「マクロの記録」に頼る初心者ではありません。

次は、「特定の構成だけをフィルタリングして処理する(例えば『_Mfg』という接尾辞がある構成だけを処理する)」といったロジックを組み込んでみてください。これができれば、設計自動化の強力な武器になります。

SolidWorks VBAは、単なる事務作業の効率化ツールではありません。あなたの思考をダイレクトに3Dモデルへ反映させる、設計者にとって最強の「拡張機能」です。

何か分からないことがあれば、いつでも聞いてください。焦らず、一歩ずつ。あなたの自動化エンジニアとしての旅路を心から応援しています。

タイトルとURLをコピーしました