这就是为什么我更喜欢使用mapcar,函数列表将返回到加载
_$ (mapcar '(lambda (rad)
(eval (list 'defun
(read (strcat "c:f" (vl-string-translate "." "-" (vl-princ-to-string rad))))
nil
(list 'setvar "filletrad" rad)
'(vl-cmdf "_.fillet")
'(while (< 0 (getvar 'cmdactive)) (vl-cmdf "\\"))
(list 'setvar "filletrad" (getvar 'filletrad))
'(princ)
)
)
)
'(4.5 10 20 30 40)
)
(C:F4-5 C:F10 C:F20 C:F30 C:F40)
_$
(Ps:
fil
不是必需的)
关于,
但是,如果用户在定义函数后更改了 FILLETRAD 系统变量,该怎么办?
然后,系统变量将被重置为错误的值。 是的,对不起,我说得太快了,你是对的。
现在我会有一个小作弊..
(mapcar
'(lambda (rad)
(eval
(list
'defun
(read (strcat "c:f" (vl-string-translate "." "-" (vl-princ-to-string rad))))
'(/ *error*)
'(eval
(list
'defun
'*error*
'(msg)
(list 'setvar "filletrad" (getvar 'filletrad))
'(if msg (princ msg))
'(princ)
)
)
(list 'setvar "filletrad" rad)
'(vl-cmdf "_.fillet")
'(while (< 0 (getvar 'cmdactive)) (vl-cmdf "\\"))
'(*error* nil)
)
)
)
'(4.5 10 20 30 40)
)
问候, 作为这一思想的延伸:使用命令反应器自动将未知命令解释为定制的
FILLET
命令。
页:
1
[2]