Vla-endundomark

提供:GizmoLabs - だいたい CAD LISP なサイト
2015年10月17日 (土) 21:37時点におけるGizmon (トーク | 投稿記録)による版
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(vla-endundomark vla-object)


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


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


戻り値
なし


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


サンプル
(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") 


関連事項