bruno_vdh 发表于 2015-7-21 15:16:39

呵呵呵...太棒了。

huiz 发表于 2015-7-24 06:42:16

您好,
这就是为什么我更喜欢使用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
不是必需的)
关于,

tedg 发表于 2015-7-24 12:21:57


但是,如果用户在定义函数后更改了 FILLETRAD 系统变量,该怎么办?
然后,系统变量将被重置为错误的值。

mstg007 发表于 2015-7-24 17:45:31

是的,对不起,我说得太快了,你是对的。
现在我会有一个小作弊..
(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)
)
问候,

Master_Shake 发表于 2015-10-13 16:56:44

作为这一思想的延伸:使用命令反应器自动将未知命令解释为定制的
FILLET
命令。
页: 1 [2]
查看完整版本: 更快地更改圆角半径