Acet-safe-command
- 構文
- (acet-safe-command cmdlist)
- 機能
- (command) 関数をより安全に実行するためのラッパー(包む)関数。
- 主な目的は、command 関数の実行中にユーザーが [Esc] キーを押してキャンセルしたり、コマンド自体がエラーで失敗したりしても、LISPプログラム全体がエラーで停止してしまうのを防ぐ用途。
- 引数
-
- cmdlist : コマンドとオプションのリスト。 '(<command_name> <arg1> <arg2> ...)
- 戻り値
- コマンドが正常に終了したら T、しなかったらnil
- サンプル
(defun c:SafeCircle ()
(princ "\n円を描画します。")
; acet-safe-commandを使ってCIRCLEコマンドを実行
; ユーザーが途中で[Esc]を押しても、このLISPはエラーで止まらない
(setq success (acet-safe-command '("._circle" pause pause)))
; 戻り値をチェック
(if success
; Tが返ってきた場合(成功)
(princ "\n円が作成されました。")
; nilが返ってきた場合(キャンセルまたは失敗)
(princ "\nコマンドがキャンセルされました。")
)
(princ)
)
; --- 比較用の標準(command)を使った場合のコード ---
; 以下のコマンドを実行し、円を描く途中で[Esc]キーを押すと、
; LISPプログラム自体がエラーで停止し、"コマンドはキャンセルされました。"
; というメッセージは表示されません。
(defun c:UnsafeCircle ()
(princ "\n円を描画します。")
; 標準のcommand関数
(command "._circle" pause pause)
; 上の行で[Esc]が押されると、この行以降は実行されない
(princ "\nコマンドはキャンセルされました。")
(princ)
)
関連事項