subodh_gis 发表于 2022-7-5 23:33:37

谢谢Tharwat!现在工作正常。
但是为什么(/=txt nil)不起作用。

Tharwat 发表于 2022-7-5 23:35:39

 
它是
 
 
这意味着不等于零,所以它的值不是零

subodh_gis 发表于 2022-7-5 23:38:16

谢谢,现在很好。

Tharwat 发表于 2022-7-5 23:41:07

 
很高兴听到这个消息。不客气。

subodh_gis 发表于 2022-7-5 23:46:45

我在想,我们可以改变像颜色和LW这样的多段线的属性,而不是选择。

Tharwat 发表于 2022-7-5 23:47:25

是的,您可以通过迭代选择集中的每个实体,并通过将其添加/附加到DXF代码来更新任何想要的属性。

MSasu 发表于 2022-7-5 23:50:57

或者可以通过调用CHPROP命令对整个选择集执行相同的操作:
(if (setq selSet (ssget))
(command "_CHPROP" selSet "" "_C" 2 "")   ;change color to yellow
)

subodh_gis 发表于 2022-7-5 23:53:34

谢谢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)

Lee Mac 发表于 2022-7-5 23:58:02

 
未来帖子的提示:当发布非您自己的代码时,通常需要指明原始作者/来源,否则发布的代码将被视为您自己的代码。请熟悉适用于本论坛发布的所有代码的代码发布指南。

BIGAL 发表于 2022-7-6 00:00:52

第三种方法是使用VL,为什么不使用GET&puts作为颜色和线型等
 
(vla-put-color ent 0)
(vla-put-linetype ent "Bylayer")
(vla-put-lineweight ent aclnwtbyblock)
页: 1 [2]
查看完整版本: 零选择集的条件