本帖最后由 Casa小宝 于 2013-7-25 20:18 编辑
eval是lisp最特别的函数之一,其用法灵活
下面举个遍历选择集的小例子
遇到类似的需要反复利用的一段程序,都可用以简化程序 - ;~自定义遍历选择集(可嵌套使用)
- ;子函数funcstr默认可使用mm和ent变量,若只使用这两个变量可不带变量运行
- (defun Ca_repeat(sset funcstr / mm ent)
- (setq mm 0)
- (repeat (sslength sset)
- (setq ent (ssname sset mm))
- (eval(read funcstr))
- (setq mm (1+ mm))
- )
- )
- ;例如
- (setq ss (ssget))
- (Ca_repeat ss "(if (= "0" (dxf 8 (entget ent))) (princ "\n 含0图层"))")
- (defun DXF (NO ED)
- (cdr (assoc NO ED))
- )
|