【入門編】【カスタムプロパティ操作】CustomPropertyManagerを使った材料・質量・設計者のメタデータ自動書き込み – SolidWorks VBA解析バイブル

スポンサーリンク

SolidWorks VBAの極意:CustomPropertyManagerで「メタデータの魂」を吹き込む

こんにちは。SolidWorksの自動化の世界へようこそ。

「マクロの記録」ボタンを押して、生成された難解なコードを眺めて溜息をついた経験はありませんか? もしあなたが、そこから一歩踏み出し、「パーツに確実に情報を刻み込みたい」と願うなら、今がそのターニングポイントです。

図面枠の自動記入、PDM(Product Data Management)での検索、部品表の自動生成……。これら全てを司るのは、モデルの形状データではなく、「カスタムプロパティ」という名のメタデータです。

今日は、SolidWorks APIの心臓部の一つである`CustomPropertyManager`を完全に掌握し、あなたのパーツファイルに「設計者の意志」を書き込む技術を伝授します。

1. なぜ「CustomPropertyManager」なのか?

初心者の方は、`AddCustomInfo`のような古いメソッドを探しがちです。しかし、現代のSolidWorks自動化において、プロパティ操作の正攻法はただ一つ、`CustomPropertyManager`オブジェクトを介することです。

なぜなら、このオブジェクトこそが「設定(Configuration)」と「ユーザー定義プロパティ」の境界を意識せずに済む、唯一の安全なインターフェースだからです。

押さえるべき基本構造

1. ModelDoc2: 今開いているパーツそのもの。
2. Configuration: 「デフォルト」などの設定。
3. CustomPropertyManager: 情報を書き込む「筆」。

この筆を手に入れ、正しい場所にインク(プロパティ値)を落とすのが、今回のミッションです。

2. 実践:パーツにプロパティを書き込む魔法のコード

以下のコードは、現在のパーツに対して「材質」「設計者」「部品番号」を確実に書き込むためのテンプレートです。

Sub SetCustomProperties()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swCustPropMgr As SldWorks.CustomPropertyManager

‘ SolidWorksに接続
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc

‘ モデルが開かれていない場合のガード節
If swModel Is Nothing Then
MsgBox “パーツファイルを開いてから実行してください。”
Exit Sub
End If

‘ 【重要】アクティブな設定(Configuration)のプロパティマネージャーを取得
‘ “” を指定すると、設定固有ではなく「ユーザー定義プロパティ」を指します
Set swCustPropMgr = swModel.Extension.CustomPropertyManager(“”)

‘ プロパティの追加・更新
‘ Add3メソッドの引数: 名前, メタデータタイプ(通常はString), 値
‘ 既に存在する場合は値が上書きされます
swCustPropMgr.Add3 “材質”, swCustomInfoText, “SUS304”
swCustPropMgr.Add3 “設計者”, swCustomInfoText, “伝説のエンジニア”
swCustPropMgr.Add3 “部品番号”, swCustomInfoText, “PRT-2023-001”

‘ 再構築して反映させる(重要!)
swModel.EditRebuild3

MsgBox “メタデータの書き込みが完了しました。”
End Sub

3. 陥りやすい「3つの罠」と解決策

現場でよくある失敗を先回りして解説します。ここをクリアすれば、あなたはもう中級者です。

罠1:プロパティが「設定固有」なのか「ユーザー定義」なのか

`CustomPropertyManager(“”)` と指定すると「ユーザー定義(ファイル全体)」になります。もし、設定ごとにプロパティを変えたい場合は、`CustomPropertyManager(“設定名”)` と記述する必要があります。まずは「ユーザー定義」からマスターしましょう。

罠2:既にプロパティが存在する場合

`Add3`メソッドは、プロパティが既に存在するとエラーを返すことがあります。
プロエンジニアの知見: 「先に存在確認をする」か、「Set2メソッド(上書き用)」を使い分けるのがスマートです。

  • `Add3`: 新規作成用。
  • `Set2`: 既存の値を書き換える用。

罠3:再構築(Rebuild)の忘れ

値を書き込んだだけでは、図面枠やPDMに即時反映されないことがあります。`swModel.EditRebuild3` を呼び出すことで、SolidWorksの内部データベースを最新の状態に強制同期させましょう。

4. さあ、次のステージへ

カスタムプロパティを操作できるようになると、次は「Excelから読み込んで一括流し込み」や「ファイル名から部品番号を自動抽出」といった、さらなる自動化の扉が開かれます。

プログラミングの本質は、「面倒な作業を、正確で速いコードに置換すること」です。

今日学んだ `CustomPropertyManager` は、あなたの自動化ライフにおける強力な武器になります。迷ったらまたここに戻ってきてください。あなたの設計が、もっと自由で創造的な時間であふれることを願っています。

「コードで、設計を加速させよう。」


何か特定のプロパティ運用で壁にぶつかったら、いつでも質問してくださいね。エンジニアとしての視点で、泥臭い解決策からエレガントな設計までサポートします。

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