(car (entsel)) 发表于 2022-7-5 17:03:16

设置实体颜色

大家好,
以下内容适用于圆、直线,但不适用于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)
)
有没有简单的解决方法?

satishrajdev 发表于 2022-7-5 17:16:03

试试这个:-
 
(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)
)

Lee Mac 发表于 2022-7-5 17:26:18

另一个:
(defun c:rt ( / e )
   (if (setq e (car (entsel)))
       (entmod (append (entget e) '((62 . 1))))
   )
   (princ)
)

tombu 发表于 2022-7-5 17:34:10

再一个!
(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)
)

(car (entsel)) 发表于 2022-7-5 17:45:03

谢谢大家,现在我看到了代码中的问题:
(setq data (append (list (cons 62 1)) data))
必须是:
(setq data (append data (list (cons 62 1))))

Lee Mac 发表于 2022-7-5 17:53:59

 
小心-vlax ename->vla对象对于空参数将出错

tombu 发表于 2022-7-5 18:01:10

 
上面的固定代码。
谢谢

(car (entsel)) 发表于 2022-7-5 18:10:13

谢谢,现在我知道如何使用visual lisp。
页: [1]
查看完整版本: 设置实体颜色