MicroStation PowerDraftマクロの使い方 その4

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)

これを実行すると要素が生成されます。

WS000000

 

次に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)

これを実行すると要素が生成されます。

WS000000

 

m3dMatrix = Matrix3dIdentity

とすることで楕円要素を回転なしで生成しています。

今回弧の作成も紹介しようと思ったのですが

メソッドが5つもあるため

また次回弧要素の作成についてご紹介したいと思います。

コメントを残す

メールアドレスが公開されることはありません。