EndUndoMark メソッド(ActiveX)

操作ブロック終了を示すマークを付けます。

サポートされているプラットフォーム: Windows のみ

構文と要素

VBA:

object.EndUndoMark
object

タイプ: Document

このメソッドが適用されるオブジェクト。

戻り値(RetVal)

戻り値はありません。

注意

このメソッドは、AutoCAD に環境を閉じさせます。StartUndoMark から EndUndoMark までの操作は、操作のグループとして処理されるようにします。

VBA:

Sub Example_EndUndoMark()
    ' This example creates a series of lines, each one with an undo marker
    ' defined for it. After lines are created you can switch to AutoCAD and type
    ' the Undo command, and only one line at a time will be undone. If StartUndoMark
    ' call is not made, an undo in AutoCAD will undo all the lines at once.
    
    Dim line As AcadLine
    Dim stPnt(0 To 2) As Double
    Dim endPnt(0 To 2) As Double
    stPnt(0) = 1: stPnt(1) = 2: stPnt(2) = 0
    endPnt(0) = 2: stPnt(1) = 1: stPnt(2) = 0
    
    ' Create the lines
    Dim j As Integer
    For j = 0 To 3
        ThisDrawing.StartUndoMark
        Set line = ThisDrawing.ModelSpace.AddLine(stPnt, endPnt)
        stPnt(0) = stPnt(0) + 3
        endPnt(0) = endPnt(0) + 3
        ThisDrawing.EndUndoMark
    Next
    ZoomAll
    
End Sub

Visual LISP:

(vl-load-com)
(defun c:Example_EndUndoMark()
    ;; This example creates a series of lines, each one with an undo marker
    ;; defined for it. After lines are created you can switch to AutoCAD and type
    ;; the Undo command, and only one line at a time will be undone. If StartUndoMark
    ;; call is not made, an undo in AutoCAD will undo all the lines at once.
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
    (setq modelSpace (vla-get-ModelSpace doc))  

    (setq stPnt (vlax-3d-point 1 2 0)
          endPnt (vlax-3d-point 2 1 0))  

    ;; Create the lines
    (setq j 0)
    (while (>= 3 j)
        (vla-StartUndoMark doc)
        (setq line (vla-AddLine modelSpace stPnt endPnt))
        (vlax-safearray-put-element (vlax-variant-value stPnt) 0 (+ (vlax-safearray-get-element (vlax-variant-value stPnt) 0) 3))
        (vlax-safearray-put-element (vlax-variant-value endPnt) 0 (+ (vlax-safearray-get-element (vlax-variant-value endPnt) 0) 3))
        (setq j (1+ j))
        (vla-EndUndoMark doc)
    )
    (vla-ZoomAll acadObj)
)