AutoCAD ActiveX オートメーションから実行するアクションの多くは、AutoCAD 図面の表示内容を修正します。
これらのアクションのすべてが、図面の表示をただちに更新するわけではありません。これは、1 つのアクションが実行されるたびに表示が更新されるのを待たずに、図面を変更できるようにするためです。代わりに、アクションを 1 つにまとめて、終了時に 1 回の呼出しで表示を更新することができます。
表示を更新するメソッドは、Update メソッドと Regen メソッドです。
Update メソッドは、1 つのオブジェクトのみの表示を更新します。Regen メソッドは、図面全体を再作図して、すべてのオブジェクトのスクリーン座標と表示解像度を計算し直します。また、表示とオブジェクト選択パフォーマンスが最適化されるように、図面データベースの索引を付け直します。
次の例は円を作成します。次に Update メソッドを使用して円を更新して、AutoCAD で表示されるようにします。
(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) )
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