概要 - ドキュメント ウィンドウのジオメトリを更新する(ActiveX)

AutoCAD ActiveX オートメーションから実行するアクションの多くは、AutoCAD 図面の表示内容を修正します。

これらのアクションのすべてが、図面の表示をただちに更新するわけではありません。これは、1 つのアクションが実行されるたびに表示が更新されるのを待たずに、図面を変更できるようにするためです。代わりに、アクションを 1 つにまとめて、終了時に 1 回の呼出しで表示を更新することができます。

表示を更新するメソッドは、Update メソッドと Regen メソッドです。

Update メソッドは、1 つのオブジェクトのみの表示を更新します。Regen メソッドは、図面全体を再作図して、すべてのオブジェクトのスクリーン座標と表示解像度を計算し直します。また、表示とオブジェクト選択パフォーマンスが最適化されるように、図面データベースの索引を付け直します。

単一オブジェクトの表示を更新する

次の例は円を作成します。次に Update メソッドを使用して円を更新して、AutoCAD で表示されるようにします。

AutoLISP
(vl-load-com)
(defun c:Ch3_UpdateDisplay()
    (setq acadObj (vlax-get-acad-object)
          doc (vla-get-ActiveDocument acadObj)
          moSpace (vla-get-ModelSpace doc))
    
    (setq center (vlax-3d-point 1 1 0)
          radius 1)

    ;; Create the circle
    (setq circleObj (vla-AddCircle moSpace center radius))

    ;; Update the circle
    (vla-Update circleObj)
)
VBA (AutoCAD のみ)
Sub Ch3_UpdateDisplay()
  Dim circleObj As AcadCircle
  Dim center(0 To 2) As Double
  Dim radius As Double
  center(0) = 1: center(1) = 1: center(2) = 0
  radius = 1

  ' Create the circle
  Set circleObj = ThisDrawing.ModelSpace.AddCircle(center, radius)

  ' Update the circle
  circleObj.Update
End Sub