Vla-startundomark

提供:GizmoLabs - だいたい CAD LISP なサイト
構文
(vla-startundomark vla-object)


機能
操作ブロックの先頭を指定する。


引数
選択セットの場合
  • vla-object … Document の VLA オブジェクト


戻り値
なし


  • MEMO: このメソッドを呼び出してから vla-endundomark を呼び出すまでに実行された操作を、1 つの操作グループとして処理できるように、必要な環境設定を行う。


サンプル
(vl-load-com)
(defun c:Example_StartUndoMark()
    ;; 線分の作成を1操作として扱うようにするサンプル
    (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))  

    ;; 線分作成
    (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)
)

; vla 使えない環境では、以下が同様な処理
(command "_undo" "be") 
(なんかの処理)
(command "_undo" "e") 


関連事項