嗨,我没有更改任何内容,只是移动(命令“layer”…)在重复循环中。
- (defun c:div (/ divi layer ss num i e dxf)
- (setq divi (getreal "Enter divisibility: ");
- layer (strcat "div_" (rtos divi 2 2))
- dxf '((_e _i _val / _en)
- (setq _en (entget _e))
- (if (assoc _i _en)
- (entmod (subst (cons _i _val) (assoc _i _en) _en))
- (entmod (append _en (list (cons _i _val))))
- ) ; if
- (princ))
- )
- (if (setq ss (ssget "_X" '((0 . "TEXT"))))
- (repeat (setq i (sslength ss))
- (setq num (atof (cdr (assoc 1 (entget (setq e (ssname ss (setq i (1- i)))))))))
- (command "-layer" "m" layer "")
- (if (= (rem num divi) 0)
- ;;;(command "_.chprop" e "" "_layer" layer "");
- (dxf e 8 layer)))); *dxf code 8 is for Layer
- (princ))
*在代码中使用(命令“-layer”)不是一个好做法,所以我替换entmod可能更快
;这只是您的简单代码,您可以添加错误处理程序、其他ssget过滤器等。。
祝你好运 |