MicroStation PowerDraftマクロの4回目です。
前回は複合連結・複合図形の作成を行いましたが
今回は楕円の作成を紹介します。
楕円要素を作成する関数は
CreateEllipseElement1
CreateEllipseElement2
の2つがありそれぞれ引数が異なります。
まずはCreateEllipseElement1について説明します。
CreateEllipseElement1(Template, PerimeterPoint1, PerimeterPoint2, PerimeterPoint3 [, FillMode])
引数は
Template: Element型
PerimeterPoint1: Point3d型
PerimeterPoint2: Point3d型
PerimeterPoint3: Point3d型
FillMode: MsdFillMode式[-1, 0, 1]
の5つで要素テンプレートと円周上の任意の3点の座標を与えて正円を作成します。
FillModeに1を指定すると楕円の中を塗りつぶすことができます。
CreateEllipseElement1を使って要素を作成するコードは下記の通りです。
座標原点を中心とした半径1の正円を作成します。
Dim p3dPerimeter1 As Point3d Dim p3dPerimeter2 As Point3d Dim p3dPerimeter3 As Point3d Dim eleEllipse As Element p3dPerimeter1 = Point3dFromXYZ(-1, 0, 0) p3dPerimeter2 = Point3dFromXYZ(0, 1, 0) p3dPerimeter3 = Point3dFromXYZ(1, 0, 0) Set eleEllipse = CreateEllipseElement1(Nothing, p3dPerimeter1, p3dPerimeter2, p3dPerimeter3) Call ActiveModelReference.AddElement(eleEllipse)
これを実行すると要素が生成されます。
次にCreateEllipseElement2です。
CreateEllipseElement2(Template, Origin, PrimaryRadius, SecondaryRadius, Rotation [, FillMode])
引数は
Template: Element型
Origin: Point3d型
PrimaryRadius: Double型
SecondaryRadius: Double型
Rotation: Matrix3d型
FillMode: MsdFillMode式[-1, 0, 1]
の6つで
要素テンプレートと中心座標、長軸の長さ、短軸の長さと回転を与えて楕円を作成します。
FillModeはCreateEllipseElement1で説明したとおりです。
CreateEllipseElement2を使って楕円を作成するコードは下記の通りです。
座標原点を中心とした半径1の正円を作成します。
Dim p3dOrigin As Point3d Dim dblPrimaryRadius As Double Dim dblSecondaryRadius As Double Dim m3dMatrix As Matrix3d Dim eleEllipse As Element p3dOrigin = Point3dFromXYZ(0, 0, 0) dblPrimaryRadius = 1# dblSecondaryRadius = 1# m3dMatrix = Matrix3dIdentity Set eleEllipse = CreateEllipseElement2(Nothing, p3dOrigin, dblPrimaryRadius, dblSecondaryRadius, m3dMatrix) Call ActiveModelReference.AddElement(eleEllipse)
これを実行すると要素が生成されます。
m3dMatrix = Matrix3dIdentity
とすることで楕円要素を回転なしで生成しています。
今回弧の作成も紹介しようと思ったのですが
メソッドが5つもあるため
また次回弧要素の作成についてご紹介したいと思います。