设置实体颜色
大家好,以下内容适用于圆、直线,但不适用于LWDOLYLINE、spline:
(defun C:RT ( / ent data )
(if (setq ent (car (entsel "\nSelect object to change its color")))
(progn
(if (not (assoc 62 (setq data (entget ent))))
(setq data (append (list (cons 62 1)) data))
(setq data (subst (cons 62 1) (assoc 62 data) data))
)
(entupd (cdr (assoc -1 (entmod data))))
)
)
(princ)
)
有没有简单的解决方法? 试试这个:-
(defun c:test ( / a b i)
(if (setq a (ssget '((0 . "*line,circle,ellipse,point"))))
(repeat (setq i (sslength a))
(setq b (vlax-ename->vla-object (ssname a (setq i (1- i)))))
(vla-put-color b 1)
)
)
(princ)
) 另一个:
(defun c:rt ( / e )
(if (setq e (car (entsel)))
(entmod (append (entget e) '((62 . 1))))
)
(princ)
) 再一个!
(defun C:RT ( / EOBJ )
(setq EOBJ (entsel "\nSelect object to change its color"))
(if EOBJ (vl-catch-all-apply 'vla-put-Color (list (vlax-ename->vla-object (car EOBJ)) 1)))
(princ)
)
谢谢大家,现在我看到了代码中的问题:
(setq data (append (list (cons 62 1)) data))
必须是:
(setq data (append data (list (cons 62 1))))
小心-vlax ename->vla对象对于空参数将出错
上面的固定代码。
谢谢 谢谢,现在我知道如何使用visual lisp。
页:
[1]