【入門編】【シェル・リブ】ShellFeatureDataとRibFeatureDataを用いた筐体設計の自動肉薄化と補強リブ生成 – SolidWorks VBA解析バイブル

スポンサーリンク

こんにちは。SolidWorksの世界へようこそ。
「マクロの記録」ボタンを押して、生成された無意味に長いコードに絶望したことはありませんか?大丈夫、それが自動化エンジニアへの入り口です。

今日は、プラスチック筐体設計の「魂」とも言える「シェル(肉抜き)」と「リブ(補強)」を、APIの力で完全に掌握する方法を伝授します。これさえ理解すれば、複雑な筐体設計を数秒で終わらせる「設計の魔術師」になれます。

1. なぜ「シェル」と「リブ」を自動化するのか?

設計現場では、外形が変わるたびに「シェル厚さの変更」や「リブ位置の微調整」が繰り返されます。手作業ではミスも起きるし、何より退屈です。
SolidWorks APIを使えば、これらは単なる「数値の変更」に過ぎません。これから紹介するコードは、単に機能を呼び出すだけでなく、「フィーチャのライフサイクル」を管理するという、一歩先行くアプローチです。

2. 筐体自動化の核心:ShellFeatureDataとRibFeatureData

SolidWorksのフィーチャは、実は「データオブジェクト」と「フィーチャ本体」の二段構えで構成されています。

  • FeatureData: フィーチャの「設定値(厚さや方向など)」を保持する箱
  • Feature: モデルツリーに存在する「実行体」

この関係性を理解するのが、マクロ使いへの最短ルートです。

実践:自動シェル化マクロ

まずは、ソリッドモデルの特定の面を除去し、肉厚を作るコードを見てみましょう。

Sub CreateSmartShell()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swFeatureMgr As SldWorks.FeatureManager
Dim swShellData As SldWorks.ShellFeatureData

Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swFeatureMgr = swModel.FeatureManager

‘ シェルフィーチャの定義データを作成
Set swShellData = swFeatureMgr.CreateDefinition(swFtrType_Shell)

‘ 肉厚を2mmに設定
swShellData.WallThickness = 0.002
‘ 外部方向に肉厚を出す設定(必要に応じて)
swShellData.Outward = False

‘ 実行!
swFeatureMgr.CreateFeature(swShellData)

MsgBox “シェル作成完了!”
End Sub

3. 「リブ」生成の難所を突破する

リブ作成が難しいのは、「スケッチ」と「フィーチャ」の連携が必要だからです。プロのエンジニアは、「既に存在するスケッチをどう指定するか」という点に最も注意を払います。

リブ生成のスマートなコード例

リブは単なる押し出しではなく、拘束条件が鍵です。

Sub CreateSmartRib()
Dim swModel As SldWorks.ModelDoc2
Dim swFeatMgr As SldWorks.FeatureManager
Dim swRibData As SldWorks.RibFeatureData

Set swModel = Application.SldWorks.ActiveDoc
Set swFeatMgr = swModel.FeatureManager

‘ リブ定義データの初期化
Set swRibData = swFeatMgr.CreateDefinition(swFtrType_Rib)

‘ リブ幅を3mmに設定
swRibData.Thickness = 0.003
‘ リブの方向(0:両側, 1:片側, 2:反対側)
swRibData.Direction = 0
‘ 抜き勾配(今回は0度)
swRibData.DraftAngle = 0

‘ モデル上のスケッチを選択してから実行する必要がある
‘ ※あらかじめスケッチを選択しておくこと
swFeatMgr.CreateFeature(swRibData)
End Sub

4. 陥りやすい罠と「回避の知見」

初学者が必ず突き当たる壁が3つあります。ここをクリアすれば、あなたはもう中級者です。

1. 単位系(Unit)の罠:
SolidWorks APIは常に「メートル法(m)」で計算します。mmで入力すると、結果が1000倍になって現れます。必ず `0.002` のように変換する癖をつけてください。
2. 選択状態の曖昧さ:
`CreateFeature` は、現在の「選択されているエンティティ(面やスケッチ)」を基準にします。コード実行直前に `swModel.Extension.SelectByID2` で確実にターゲットを選択させるのが、確実な動作の秘訣です。
3. 再構築(Rebuild)を忘れない:
コード実行後、モデルが最新状態になっていないことがあります。最後に必ず `swModel.EditRebuild3` を呼び出すのが、プロのたしなみです。

最後に:自動化は「設計を楽にする」ための手段

コードを書いていると、つい「コードを動かすこと」自体が目的になりがちです。しかし、本来の目的は「あなたの創造的な設計時間を増やすこと」です。

今回紹介したShellやRibのAPIは、ほんの入り口に過ぎません。これらを組み合わせれば、パラメトリックな筐体自動生成ツールだって作れます。

まずは、自分の手元にある部品で試してみてください。エラーが出たら、それは「SolidWorksがあなたに何かを教えようとしているサイン」です。一つひとつ解決していけば、数ヶ月後にはあなたの設計室は、魔法のような自動化で満たされているはずですよ。

それでは、素晴らしい自動化ライフを!

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