马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
 - (defun namespace:name_of_namespace (symbols / define functs <-export)
- (defun define (symb fn)
- (setq functs (append functs (list (cons symb fn)))))
- (defun <-export ( )
- (foreach v symbols
- (set v (cdr (assoc v functs)))))
- (define 'setv (lambda (name value / oldval)
- (setq oldval (getvar name))
- (if (not (assoc name sysvars))
- (setq sysvars (append sysvars (list (cons name oldval)))))
- (setvar name value)
- oldval))
- (define 'unsetvars (lambda ( )
- (foreach v sysvars (setvar (car v) (cdr v)))))
- (define '*error* (lambda (msg)
- (unsetvars)
- (setq *error* olderr)
- (if (and msg (/= msg "Function cancelled"))
- (prompt (strcat "Error: " msg))
- (princ))))
- (define 'deg->rad (lambda (degrees)
- (* pi (/ degrees 180.0))))
- (define 'rad->deg (lambda (radians)
- (* 180.0 (/ radians pi))))
- ;;...functions of namespace...etc...
- (<-export)
- )
- (defun C:SOME_COMMAND ( / olderr sysvars setv unsetvars) ;;<---- Protect imported symbols
- (setq olderr *error*)
- (namespace:name_of_namespace '(*error* setv unsetvars deg->rad)) ;;<---- Import functions here
- (setv "cmdecho" 0) ;;use imported functions
- (setv "cmdecho" 1)
- ;;do command related tasks
- ;;
- ;;
- ;;clear system variables and reset *error*
- (*error* nil)
- (princ)
- )
|