Ai sysvar
- 構文
- (ai_sysvar vars)
- 機能
- 変更するシステム変数の設定と現在の設定を保存。
- 引数
-
- vars … システム変数のリスト
- 戻す : (ai_sysvar NIL)
- システム変数を一つ設定: '("cmdecho" . 0)
- システム変数を複数設定: '(("cmdecho" . 0)("gridmode" . 0)))
- 戻り値
- 保存した変数値のリスト または nil
- MEMO : エラー時は *MERR* でシステム設定を復元する。
- サンプル
(ai_sysvar '("cmdecho" . 0)) ; なんかの処理 (ai_sysvar nil) ;----- (ai_sysvar '(("cmdecho" . 0)("gridmode" . 0))) ; なんかの処理 (ai_sysvar nil) ;----- ; 関数の定義は以下のとおり(古いタイプ) (defun-q ai_sysvar (vars / savevar pair varname varvalue varlist) (setq varlist nil) ;; place holder for varlist (defun savevar (varname varvalue / pair) (cond ;; if new value is NIL, save current setting ((not varvalue) (setq varlist (cons (cons varname (getvar varname)) varlist))) ;; change sys'var only if it's different ((/= (getvar varname) varvalue) ;; add current setting to varlist, change setting (setq varlist (cons (cons varname (getvar varname)) varlist)) (setvar varname varvalue)) (T nil) );_cond );_defun (cond ;; reset all values ((not vars) (foreach pair varlist (setq varname (car pair) varvalue (cdr pair)) (setvar varname varvalue) ) (setq varlist nil)) ((not (eq 'LIST (type vars))) (princ "\nAI_SYSVAR: Bad argument type.\n")) ;; set a single system variable ((eq 'STR (type (car vars))) (savevar (car vars) (cdr vars)) ) ;; set multiple system variables ((and (eq 'LIST (type (car vars))) (eq 'STR (type (caar vars))) ) (foreach pair vars (setq varname (car pair) varvalue (cdr pair) ) (if (not (eq 'STR (type varname))) (princ "\nAI_SYSVAR: Bad argument type.\n") (savevar varname varvalue) )) ) (T (princ "\nAI_SYSVAR: Error in first argument.\n")) );cond ;; redefine ai_sysvar function to contain the value of varlist (setq ai_sysvar (cons (car ai_sysvar) (cons (list 'setq 'varlist (list 'quote varlist)) (cddr ai_sysvar)))) varlist ;; return the list );_sysvar
関連事項
- [[]]
- [[]]