[C# SolidWorks API] 四角形をスケッチする

SolidWorkを使った形状モデリングでは,部品の断面をスケッチして,その断面に厚みを加えることで3次元形状を造ることが基本になっています.そこで今回は,SolidWorks APIを使って四角形をスケッチしてみます.

四角形をスケッチする手順は次の通りです.

 1.スケッチする面を選択する
 2.四角形の幅と高さを指定して四角形を描く

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

 string sketchName sketchRectangle(string planeName, width, height)

このメソッドは,スケッチする面の名前(planeName)と四角形の幅(width)と高さ(height)を指定して,四角形を描きます.四角形の中心が原点になるようにしています.戻り値は,新しく描いた四角形の名前(sketchName)です.

実行例

はじめに,どのような動作をするのか確認しておきましょう.下の動画は,平面(planeName)に幅 (width) 0.2 m,高さ (height) 0.1 mの四角形をスケッチする様子です.

 

コード

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

解説

コードの内容を見てきましょう.

1.スケッチする面を選択する

1行目は,IModelDocExtensionオブジェクトを取得しています.
2行目は,IModelDocExtension.SelectByID2メソッドを使って、名前から面を選択しています.

2.四角形の幅と高さを指定して四角形を描く

1行目は,ISketchManager型のオブジェクトを取得しています.
2行目は,InsertSketchメソッドで,ここまでのスケッチを反映させてスケッチモードを終了しています.
3行目は,CreateCornerRectangleで四角形を描ています.
スケッチ状態でCreateCornerRectangleを用いる場合には,z座標は利用しません.また,四角形をスケッチする面内の座標系とグローバル座標系が一致しない場合があるので注意が必要です.代表的な面内のx-y座標系とX-Y-Z座標系の関係は,下の図のようになります.

Local and Global Coordinates

4行目は,四角形のスケッチを反映させて,スケッチモードを終了しています.
5行目は,getItemNameメソッドでスケッチした四角形の名前を取得しています.名前を取得しておくことで,押し出しやロフトといった作業をするときに,対象物を選択するのが簡単になります.
getItemNameメソッドは,Itemのタイプと座標を指定して,名前を取得します.詳細は,コードの項目を参照してください.

sketchRectangleメソッドでは,原点が四角形の中央になるようにしています.したがって,width,heightと角点の座標は,下の図のような関係になっています.

createCornerRectagle in Plane

まとめ

SolidWorks APIを用いて四角形を描く方法を説明しました.

四角形を描く面の名前,四角形の高さを指定して四角形を描くメソッドsketchRectangleを定義しました.

スケッチする面内の座標系とグローバル座標系が一致しない場合があるので注意が必要です.

Post Thumbnail by Leonard Bentley

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

Thank you for comment!