操作ブロックの先頭を指定します。
サポートされているプラットフォーム: Windows のみ
戻り値はありません。
このメソッドを呼び出してから EndUndoMark を呼び出すまでに実行された操作を、1 つの操作グループとして処理できるように、必要な環境設定を行います。
VBA:
Sub Example_StartUndoMark() ' This example creates a series of lines, each 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_StartUndoMark() ;; 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) )