概要 - スプラインを編集する(VBA/ActiveX)

オブジェクトのプロパティとメソッドを使用して、既存のスプライン オブジェクト編集することができます。

次に示す編集可能プロパティを使用して、スプラインを変更します。

ControlPoints
スプラインの制御点を指定します。
EndTangent
方向ベクトルとしてスプラインの終了接線を指定します。
FitPoints
スプラインのフィット点を指定します。
FitTolerance
スプラインを新しい許容差で既存の点に再フィットします。
Knots
スプラインのノット ベクトルを指定します。
StartTangent
スプラインの開始接線を指定します。

また次のメソッドを使用して、スプラインを編集できます。

AddFitPoint
指定したインデックスで、単一フィット点をスプラインに追加します。
DeleteFitPoint
指定したインデックスで、スプラインのフィット点を削除します。
ElevateOrder
スプラインの次数を、指定値まで上げます。
GetFitPoint
指定したインデックスで、スプラインのフィット点を取得します(1 つのフィット点だけを取得します。スプラインのすべてのフィット点を取得するには、FitPoints プロパティを使用します)。
Reverse
スプラインの方向を逆にします。
SetControlPoint
スプラインの制御点を、指定したインデックスに設定します。
SetFitPoint
スプラインのフィット点を、指定したインデックスに設定します(1 つのフィット点だけを設定します。スプラインのすべてのフィット点を変更するには、FitPoints プロパティを使用します)。
SetWeight
制御点の重みを、指定したインデックスに設定します。

次の読み込み専用プロパティを使用すると、スプラインについての情報を取得することができます。

Area
スプラインの閉じた領域の面積を取得します。
Closed
スプラインが閉じているか開いているかを示します。
Degree
スプラインの多項表現の次数を取得します。
IsPeriodic
指定したスプラインが周期的かどうかを指定します。
IsPlanar
指定したスプラインが平面上にあるかどうかを指定します。
IsRational
指定したスプラインが有理かどうかを指定します。
NumberOfControlPoints
スプラインの制御点の数を取得します。
NumberOfFitPoints
スプラインのフィット点の数を取得します。

スプラインの制御点を変更する

次の例は、スプラインを作成し、次に最初の制御点を変更します。

Sub Ch4_ChangeSplineControlPoint()
  ' Create the spline
  Dim splineObj As AcadSpline
  Dim startTan(0 To 2) As Double
  Dim endTan(0 To 2) As Double
  Dim fitPoints(0 To 8) As Double

  startTan(0) = 0.5: startTan(1) = 0.5: startTan(2) = 0
  endTan(0) = 0.5: endTan(1) = 0.5: endTan(2) = 0
  fitPoints(0) = 1: fitPoints(1) = 1: fitPoints(2) = 0
  fitPoints(3) = 5: fitPoints(4) = 5: fitPoints(5) = 0
  fitPoints(6) = 10: fitPoints(7) = 0: fitPoints(8) = 0
  Set splineObj = ThisDrawing.ModelSpace.AddSpline(fitPoints, startTan, endTan)
  splineObj.Update

  ' Change the coordinate of the first fit point
  Dim controlPoint(0 To 2) As Double
  controlPoint(0) = 0
  controlPoint(1) = 3
  controlPoint(2) = 0
  splineObj.SetControlPoint 0, controlPoint
  splineObj.Update
End Sub