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

今回は線分要素を作成する方法について書いていきます。

線分要素を作成するには

CreateLineElement2というメソッドを使用します。

まずは始点の座標が(0, 0)、終点の座標が(100, 100)

の線分の書き方についてです。

コードは下記のようになります。

Dim p3dStartPoint As Point3d
Dim p3dEndPoint As Point3d
Dim eleLine As LineElement

p3dStartPoint = Point3dFromXY(0, 0)
p3dEndPoint = Point3dFromXY(100, 100)

Set eleLine = CreateLineElement2(Nothing, p3dStartPoint, p3dEndPoint)
Call ActiveModelReference.AddElement(eleLine)

p3dStartPoint、p3dEndPointは線分の始点、終点の座標です。

Point3dFromXYをいうメソッドを使って座標値を
p3dStartPoint、p3dEndPointにセットしています。

CreateLineElement2メソッドの1番目の引数
線分要素のテンプレートになる要素で今回はテンプレートを
使用せずに要素を作成するのでNothingとしています。

2番目、3番目の引数は線分の始点p3dStartPoint
終点p3dEndPointの座標値を渡しています。

これをコードウインドウでF5を押して実行してみると、

WS000000

画面に線分要素が描画されます。
次に連続線分要素を描画してみます。

Dim p3dPoints(0 To 2) As Point3d
Dim eleLineString As LineElement

p3dPoints(0) = Point3dFromXY(0, 0)
p3dPoints(1) = Point3dFromXY(100, 100)
p3dPoints(2) = Point3dFromXY(200, 100)

Set eleLineString = CreateLineElement1(Nothing, p3dPoints)
Call ActiveModelReference.AddElement(eleLineString)

3点以上の連続線分要素を作成する場合は座標値の配列

引数としてCreteLineElement1に渡します。

上記のコードの3~5行目でそれぞれの座標値をセットして
CreateLineElement1には線分の時と違いテンプレート(Nothing)
と座標値の配列のp3dPointsのみを渡す形になります。

これをF5を押して実行してみると、

WS000001

画面に連続線分要素が描画されます。

以上で線分要素、連続線分要素の作成は完了です。

多角形要素の作成については連続線分要素を生成する要領で

CreateLineElement1をCreateShapeElement1に代えるだけです。

次回は線分や多角形以外の要素の作成方法について書きたいと思います。

コメントを残す

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