[C# SolidWorks API] ロフトを使ったモデリング

スケッチした形状を断面形状としてロフト機能を利用すると,さまざまな形状をモデリングすることができます.試しに,”SolidWorks Loft”でGoogle検索するとこのような形状を見つけることができました.そんな重要かつ便利なロフト機能をAPIから使ってみましょう.

下面と上面の断面形状をスケッチして,ロフト機能で3次元形状を作ってみます.今回は簡単のため,断面形状は大きさの異なる四角形としましょう.

ロフト機能で3次元形状を作る手順は次の通りです.

1.下面の断面形状をスケッチする
2.上面をスケッチするための参照面を作成する
3.参照面に上面の断面形状をスケッチする
4.下面と上面をつなぐガイドカーブを作成する
5.ロフト機能で下面と上面をつなぐ

1と3の断面形状のスケッチは[C# SolidWorks API] 四角形をスケッチするを参考にしてください.

コーディングでは,次の3つのメソッドを定義します.

1.基準となるoriginePlaneから距離distanceだけ離れた位置に参照面を作成するメソッド
 createReferencePlane(string originPlane, double distance) 

2.上下面の名前bottomSketchNametopSketchName断面寸法からガイドカーブを作成するメソッド
 string sketchGuideCurve(string bottomSketchName, string topSketchName,
   double bWidth, double bHeight, double tWidth, double tHeight, double height)

3.上下面とガイドカーブの名前からロフトを実行するメソッド
 loft(string bottomSketchName, string topSketchName,
   string guideCurveSketchName)

上下面とガイドカーブの寸法,位置関係については,下の図を参照してください.

name and dimension of loft shape

実行例

下面: bWidth = 0.2 m, bHeight = 0.2 m
上面: tWidth = 0.4 m, tHeight = 0.1 m
Height = 1.0 [m]
として,3次元形状を作成した様子です.基準面には”平面”を指定しています.

コード

全体のプログラムは次のようになります.

解説

コードを詳しく見ていきましょう.

2.上面をスケッチするための参照面を作成する
createRefencePlane
は,基準となる面の名前originPlaneNameと距離distanceを指定して,参照面を作成するメソッドです.戻り値は,新しく作成した面の名前です.


7行目
:基準面を取得しています.

9行目:フィーチャマネージャを取得しています.

10行目:フィーチャマネージャのInsertRefPlaneメソッドを使って,参照面を作成しています.
第1引数で,条件として距離を設定しています.swRefPlaneReferenceConstraints_e.swRefPlaneReferenceConstraint_Distance
第2引数で,距離の値を指定しています.

13行目:参照面の名前を取得しています(平面1など).

4.下面と上面をつなぐガイドカーブを作成する
sketchGuideCurve
は,上下面の名前と断面寸法からガイドカーブを作成するメソッドです.戻り値は,新しくガイドカーブの名前です.

6行目:上面(topSketchName)の点(Point1)を選択リストに追加しています.SelectByID2の第1引数が名前,第2引数が種類です.第6引数がfalseであることにも注意してください.一度選択リストを空にしてから追加しています

9行目:下面(bottomSketchName)の点(Point1)を選択リストに追加しています.SelectByID2の第6引数がtrueであることに注意してください.現状のリストに選択した対象を追加しています

12行目Insert3DSplineCurveでカーブを作成しています.引数がfalseなので,カーブは閉じていません

5.ロフト機能で下面と上面をつなぐ
loft
上下面とガイドカーブの名前を指定して,ロフトを実行するメソッドです.戻り値はありませんが,スケッチやカーブ同様名前を返すようにしておくと便利だと思います.


5,8,11行目
:選択する対象の名前と種類を指定して,下面,上面,ガイドカーブを選択しています.SelectByID2の第6引数が上からtruefalsefalseとなっている点にも注意してください.

15行目
InsertProtrusionBlend2で,ロフトを実行しています.各引数の意味は,APIのヘルプに加えて,ロフトPropertyManagerを参考にすると理解しやすいと思います.

まとめ

基準面とそこからの距離をもとにして,参照面を作成する方法を説明しました.

2点からガイドカーブを作成する方法を説明しました.

2つのスケッチと1つのガイドカーブから,ロフトによって3次元形状を作成する方法を説明しました.

Post Thumbnail by Rob Marquardt

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存

Thank you for comment!