Jagaimo
CAD作業が終わった時のルーティン作業をするコマンドです。
チェックボックス付きのダイアログボックスを使用しています。
コマンドの内容
CAD作業が終わった時のルーティン作業例
- モデルスペースのUCSをワールドにする。
- モデルスペース、各レイアウトで全体ズームする。
- 現在画層を0にする。
- 保存
を実行するコマンドです。
ダイアログボックス
このコマンドにはダイアログボックスが付いています。
コマンドを実行するとダイアログボックスが出てきます。
チェックを外すとその項目は実行されません。
ダイアログボックスの項目
World
モデルスペースのUCSをワールドにします。
Zoom Extent
モデルスペース、全てのレイアウトタブで全体ズームをします。
Layer 0
現在画層を”0″にします。
Save
保存します。
DCL
JagaDCL.dcl という名前で、検索パスにあるサポートフォルダに保存してください。
AutoLISPで呼び出します。
Done_Check :dialog
{label = "Done Check";
//--------------------------------------------------------
:toggle {label = "World"; key="WLD";}
:toggle {label = "Zoom Extent"; key="ZE";}
:toggle {label = "Layer 0"; key="Ly0";}
:toggle {label = "Save"; key="SV";}
//-------------------------------------------------------- q
ok_cancel;
}
AutoLISP
;/////////////////////////////////////////////
;|
Jagaimo Lisp
チェック 20200710
(チェックボックス使用例)
|;
;/////////////////////////////////////////////
(defun c:Done (/ dcl_id Act)
(setq dcl_id (load_dialog "JagaDCL.dcl")) ;
(if (not (new_dialog "Done_Check" dcl_id))
(progn
(princ "***ダイアログボックスが見つかりません***")
(exit)
));if
;-----------------------------------------------------------
(if (null g00WLD) (setq g00WLD "1"))
(if (null g00XE) (setq g00XE "1"))
(if (null g00Ly0) (setq g00Ly0 "1"))
(if (null g00SV) (setq g00SV "1"))
;-----------------------
(set_tile "WLD" g00WLD )
(set_tile "ZE" g00XE)
(set_tile "Ly0" g00Ly0)
(set_tile "SV" g00SV)
;-----------------------------------------------------------
(action_tile "accept" "(Jaga00Done_GetVar)(done_dialog 1)")
(action_tile "cancel" "(done_dialog 0)")
;-----------------------------------------------------------
(setq Act (start_dialog))
(unload_dialog dcl_id)
;-----------------------------------------------------------
(cond
((= Act 0) (princ "ユーザーキャンセル")(exit))
((= Act 1) (Jaga00Done))
);cond
;----------------------------------------------------------
(princ));defun
;================================
(defun Jaga00Done_GetVar ()
(setq g00WLD (get_tile "WLD"))
(setq g00XE (get_tile "ZE"))
(setq g00Ly0 (get_tile "Ly0"))
(setq g00SV (get_tile "SV"))
)
;================================
;======================================================
;======================================================
(defun Jaga00Done ()
(Jaga00START)
(if (= g00WLD "1")
(Jaga00World)
(princ "\n === World 選択されていません === \n")
);if
(if (= g00XE "1")
(Jaga00ZoomExAll)
(princ "\n === 全体ズーム 選択されていません === \n")
);if
(if (= g00Ly0 "1")
(progn (setvar "CLAYER" "0") (princ "\n +++ 画層 0 +++ \n"))
(princ "\n === 画層0 選択されていません ===/n")
);if
(if (= g00SV "1")
(progn (command-s "._QSAVE")(princ "\n +++ 保存 +++ \n"))
(princ "\n === 上書き保存 選択されていません === \n")
);if
(setvar "CLAYOUT" (car (layoutlist)))
(Jaga00END)
(princ))
;=====================================================================================
(defun Jaga00World ( / *error* u)
(setvar "tilemode" 1)
(if (= 0 (getvar "WORLDUCS"))
(progn
(defun *error* (msg)
(if u (setvar "UCSFOLLOW" u))
(princ msg)
(princ))
(setq u (getvar "UCSFOLLOW"))
(setvar "UCSFOLLOW" 1)
(command-s "._UCS" "_W")
(setvar "UCSFOLLOW" u)
));prognif
(princ "\n +++ USC World +++ \n")
);defun
;---------------------------------------
(defun Jaga00ZoomExAll ()
(foreach n (layoutlist)
(setvar "CLAYOUT" n)
(command-s "._ZOOM" "_E")
);foreach
(setvar "tilemode" 1)
(command-s "._ZOOM" "_E")
(princ "\n +++ 全体ズーム +++ \n")
);defun
;=====================================================================================
;=====================================================================================
(defun Jaga00START ()
(setq DefErr *error* *error* Jaga00ERR)
;---------------------------------------
(setq DefCmdEcho (getvar "CMDECHO"))
(setvar "CMDECHO" 0)
(setq DefDynMode (getvar "DYNMODE"))
(setvar "DYNMODE" 3)
;-----------------------------------------
(princ "\nJaga00START\n")
(princ));defun
;=====================================================================================
(defun Jaga00END ()
(setvar "DYNMODE" DefDynMode)
(setvar "CMDECHO" DefCmdEcho)
;-----------------------------------------
(setq *error* DefErr)
(princ "\nJaga00END\n")
(princ));defun
;=====================================================================================
(defun Jaga00ERR (msg)
(Jaga00END)
(princ (strcat"\nJaga00ERR\n " msg))
(princ));defun
;=====================================================================================
設定の保存
チェックボックスの設定は保存されないので、図面ファイルを閉じると、初期設定に戻ります。
チェックボックスの設定を繰り返し使いたい場合は、変数 g00WLD g00XE g00Ly0 g00SV をレジストリに保存すると、同じパソコンであれば閉じても他の図面ファイルでも、同じ設定でダイアログボックスが出てきます。
変数の保存方法についてはこちらの記事を参考にしてください。
参考記事
チェックボックスのダイアログボックスについて
Comments