ユーティリティ関数を記述する

プログラムを記述する場合、他のプログラムにも再利用できる小さい論理サブルーチンを記述すると便利です。Gardenpath マクロは、一連のプライマリおよびセカンダリ(ユーティリティ)関数およびサブルーチンを使用して定義されます。

図面の追加される多くのオブジェクトでは、角度の値を入力または操作する必要があります。図面内の角度は最終的にラジアン単位で保存され、AutoCAD COM ライブラリのメソッドもラジアン単位の角度の値が必要です。しかし、ほとんどのユーザはラジアン単位ではなく度単位で考えるため、度単位で指定するようユーザに求め、その後、コードでラジアンに変換処理することが重要です。

度をラジアンに変換する

度をラジアンに変換するには、次の式を使用します。

(decimal_angle / 180) * π

次の手順では、十進数の度単位の角度の値を受け入れ、ラジアン単位の値を返す dtr という名前の関数を定義します。

  1. AutoCAD のコマンド プロンプトに対して vbaide と入力します。
  2. VBA IDE のメニュー バーで、[表示] [コード]をクリックして、ThisDrawing のコード ウィンドウを開きます。
  3. コード ウィンドウに次のコードを入力します。
    ' Declare a constant double variable
    Const pi = 3.14159
    
    ' Converts an angular measurement in degrees to radians
    ' Usage: val = dtr(90)
    Function dtr(a As Double) As Double
      dtr = (a / 180) * pi
    End Function
  4. [ファイル] [Global1 の上書き保存]を選択します。
  5. [名前を付けて保存]ダイアログ ボックスの[ファイル名]テキスト ボックスに gardenpath と入力し、プロジェクトの場所を指定します。[保存]をクリックします。

2 点間の距離を計算する

次の手順では、2 つの 3D 点を受け入れ、その 2 つの 3D 点間の距離を計算して倍精度浮動小数点値を返す distance という名前の関数を定義します。返された値は、指定された軸に沿って中点を決定する際に役立ちます。

  1. コード ウィンドウで、dtr 変数の次にある End Function ステートメントの末尾をクリックし、[Enter]を 2 回押します。
  2. 次のコードを入力します。
    ' Calculate distance between two points
    ' Usage: val = distance(point1, point2)
    Function distance(sp As Variant, ep As Variant) As Double
      Dim x As Double
      Dim y As Double
      Dim z As Double
    
      x = sp(0) - ep(0)
      y = sp(1) - ep(1)
      z = sp(2) - ep(2)
    
      distance = Sqr((Sqr((x ^ 2) + (y ^ 2)) ^ 2) + (z ^ 2))
    End Function
  3. プロジェクトを保存します。