[C# SolidWorks API] 立方体を造る

スケッチとフィーチャーの機能を利用して,簡単な部品を造ってみましょう.今回は,次の3つのステップで,立方体を造る方法を紹介します.

 1. 新しいドキュメントを作る
 2. 正方形をスケッチする
 3. 正方形を押し出して立方体を造る

1. 新しいドキュメントを作る

部品ドキュメントを作る方法を見ていきましょう.

1.1 部品ドキュメントのつくるための設定ファイルの場所を取得する

System.string ISldWorks.GetUserPreferenceStringValue(
  System.int UserPreference
)

UserPreferenceは,swUserPreferenceStringValue_eの値で指定します.今回は,部品ドキュメントを作るので,(int)swUserPreferenceStringValue_e.swDefaultTemplatePartとします.
戻り値は,設定ファイルの場所(パス)です.
他のドキュメントを作るための設定ファイルを取得するためには,swUserPreferenceStringValue_eの値を変更します.

1.2 ドキュメントを作ります

System.object IsldWorks.NewDocument(
   System.string TemplateName,    // テンプレートファイルの場所
   System.int PaperSize,        // ドキュメントのサイズ(A4やA2など)
   System.double Width,        // ドキュメントの幅
   System.double Height        // ドキュメントの高さ
)

PaperSizeは,swDwgPaperSizes_eで指定します.
WidthとHeightは,ドキュメントのサイズがユーザ定義(すなわち,swDwgPapersUserDefined)の場合に利用される引数です.
戻り値は,ドキュメント(IModelDoc2)です.

ファイルを開いてドキュメントを作る方法は,[C# SolidWorks API] ドキュメントを開くを参照してください.

2. 正方形をスケッチする

スケッチマネージャを使って,正方形をスケッチします.

2.1 ドキュメントのスケッチマネージャを取得します

ISketchManager sketchMan = IModelDoc2.SketchManager;

2.2 スケッチマネージャを使って,ドキュメントに新しいスケッチを追加します

sketchMan.InsertSketch(true);

2.3 正方形の対角線上の点を指定して,正方形を描きます

sketchMan.CreateCornerRectangle(x1, y1, z1, x2, y2, z2);

Definition of Corner Points

3. 正方形を押し出して立法体を造る

フィーチャーマネージャを使って,スケッチした正方形を押し出して立方体を造ります.

3.1 ドキュメントのフィーチャーマネージャを取得します

IFeatureManager featMan = IModelDoc2.FeatureManager;

3.2 スケッチを押し出します

FeatureExtrusion3メソッドには引数が23個もあります.ここでは,主要なもののみ説明します.必要に応じてリファレンスを参照して下さい.

(とはいってもリファレンスだけでは,すぐ理解できない内容もあります.そのような場合には ,通常のヘルプの関連項目が 理解の助けになることがあります.今回の場合では,押し出し PropertyMangerなどが参考になるかと思います.他には,実際に引数を変更してみて,動作がどう変わるのか実験してみるのも,メソッドの内容を理解するには有効な方法です.)

Feature FeatureExtrusion3(
   System.bool Sd,   // true: 一方向に押し出す    (以下,正方向と呼びます) 
            // false: ↑と反対方向に押し出す(以下,負方向と呼びます)
   System.bool Flip, 
   System.bool Dir,        // true: 押し出す方向を反転させる
   System.int T1,           // 正方向の終端の条件 swEndConditions_eで指定する
   System.int T2,           // 負方向の終端の条件
   System.double D1,     // 正方向の押し出し量 [m]
   System.double D2,     // 負方向の押し出し量 [m]
   System.bool Dchk1,
   System.bool Dchk2,
   System.bool Ddir1,
   System.bool Ddir2,
   System.double Dang1,
   System.double Dang2,
   System.bool OffsetReverse1,
   System.bool OffsetReverse2,
   System.bool TranslateSurface1,
   System.bool TranslateSurface2,
   System.bool Merge,               // true: 押し出した形状を他の部品とマージする
   System.bool UseFeatScope,
   System.bool UseAutoSelect,
   System.int T0,       // 押し出しの起点になる対象物を指定する(ものだと思われます)
               // 参考:Create Extrusion Feature Example
               // swStartConditions_eで指定する
               // スケッチそのものを押し出す場合は,swStartSketchPlaneを指定する
   System.double StartOffset,
   System.bool FlipStartOffset
)

コード

全体のコードを確認してみましょう.createCubeメソッドで立方体を造っています.引数のlengthは,立方体の一辺の長さ [m] です.

実行例

動作を確認しましょう. 一辺が0.1 [m] の立方体を作成しています.

 

まとめ

CreateCornerRectangleメソッドを使って,四角形を描く方法を説明しました.

FeatureExtrusionメソッドを使って,スケッチを押し出す方法を説明しました.

一辺の長さを指定して立方体を造るcreateCubeメソッドを定義しました.

Post Thumbnail by Bruce Tuten

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

Thank you for comment!