但是为什么(/=txt nil)不起作用。
它是
这意味着不等于零,所以它的值不是零 谢谢,现在很好。
很高兴听到这个消息。不客气。 我在想,我们可以改变像颜色和LW这样的多段线的属性,而不是选择。 是的,您可以通过迭代选择集中的每个实体,并通过将其添加/附加到DXF代码来更新任何想要的属性。 或者可以通过调用CHPROP命令对整个选择集执行相同的操作:
(if (setq selSet (ssget))
(command "_CHPROP" selSet "" "_C" 2 "") ;change color to yellow
) 谢谢MSasu,我知道,但在我下面的代码中,如果我想更改没有文本的多段线的颜色。
(defun c:mtpl ( / app ent grp idx lst mni mxa out sel tmp txt )
(if (setq sel (ssget "_X" '((0 . "LWPOLYLINE") (-4 . "&=") (70 . 1))))
(progn
(repeat (setq idx (sslength sel))
(setq ent (ssname sel (setq idx (1- idx)))
lst (cons (cons ent (mapcar 'cdr (vl-remove-if-not '(lambda ( x ) (= 10 (car x))) (entget ent)))) lst)
)
)
(setq tmp (apply 'append (mapcar 'cdr lst))
mni (car tmp)
mxa (car tmp)
)
(foreach pnt (cdr tmp)
(setq mni (mapcar 'min mni pnt)
mxa (mapcar 'max mxa pnt)
)
)
(setq app (vlax-get-acad-object)
out (ssadd)
)
(vla-zoomwindow app (vlax-3D-point mni) (vlax-3D-point mxa))
(foreach grp lst
(if (not (setq txt (ssget "_wp" (mapcar '(lambda ( p ) (trans p (car grp) 1)) (cdr grp)) '((0 . "TEXT,MTEXT"))))
)
(ssadd (car grp) out)
)
(setq txt nil)
(gc)
)
(sssetfirst nil out)
)
)
(princ)
)
(vl-load-com) (princ)
未来帖子的提示:当发布非您自己的代码时,通常需要指明原始作者/来源,否则发布的代码将被视为您自己的代码。请熟悉适用于本论坛发布的所有代码的代码发布指南。 第三种方法是使用VL,为什么不使用GET&puts作为颜色和线型等
(vla-put-color ent 0)
(vla-put-linetype ent "Bylayer")
(vla-put-lineweight ent aclnwtbyblock)
页:
1
[2]