概要 - オブジェクトの尺度を変更する(VBA/ActiveX)

基点と長さを指定すると、オブジェクトを尺度変更できます。この点と長さが、現在の作図単位に基づいた尺度として使用されます。すべての図形オブジェクトと同様に、属性参照オブジェクトも尺度変更できます。

オブジェクトの尺度を変更するには、そのオブジェクトの ScaleEntity メソッドを使用します。このメソッドは、XY、および Z の方向に等しい量だけオブジェクトを尺度変更します。これは尺度変更の基点と、尺度係数を入力として受け取ります。基点は、3 つの倍精度浮動小数点数を持ったバリアント型配列です。これらの座標値が、尺度変更処理の開始点を指定する 3D WCS 座標を表します。尺度係数とは、オブジェクトを拡大/縮小するときの係数です。オブジェクトの寸法に、尺度係数を乗算します。尺度係数が 1 よりも大きければ、オブジェクトは大きくなります。尺度係数が 0 と 1 の間の場合、オブジェクトは縮小されます。



ポリラインを尺度変更する

次の例は、閉じたライトウェイト ポリラインを作成し、次に 0.5 で尺度変更します。

Sub Ch4_ScalePolyline()
  ' Create the polyline
  Dim plineObj As AcadLWPolyline
  Dim points(0 To 11) As Double
  points(0) = 1: points(1) = 2
  points(2) = 1: points(3) = 3
  points(4) = 2: points(5) = 3
  points(6) = 3: points(7) = 3
  points(8) = 4: points(9) = 4
  points(10) = 4: points(11) = 2
  Set plineObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)
  plineObj.Closed = True
  ZoomAll

  ' Define the scale
  Dim basePoint(0 To 2) As Double
  Dim scalefactor As Double
  basePoint(0) = 4: basePoint(1) = 4.25: basePoint(2) = 0
  scalefactor = 0.5

  ' Scale the polyline
  plineObj.ScaleEntity basePoint, scalefactor
  plineObj.Update
End Sub