Vla-startundomark

提供:GizmoLabs - だいたい CAD LISP なサイト
2015年10月17日 (土) 21:35時点におけるGizmon (トーク | 投稿記録)による版 (ページの作成:「{{AutoLISP}} ; 構文 : (vla-startundomark ''vla-object'') ; 機能 : 操作ブロックの先頭を指定する。 ; 引数 ;選択セットの場合 :* vla-object...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(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") 


関連事項