世人皆醉 发表于 2022-7-4 16:26:02

如何用函数选择长度为1mm的直线,并变更颜色为黄色

如何用函数写出一个直线选择集函数并将其颜色改为黄色
要求:
框选范围内的所有长度为1mm的直线
选择完成后自动将其颜色改为黄色






xj6019 发表于 2022-7-4 16:26:03

(defun c:NM (/ i s1 ss)
        (vl-load-com)
(setq i -1)
(if (setq ss (ssget (list '(0 . "LINE"))))
    (while (and(setq s1 (ssname ss (setq i (1+ i)))))
                        (if(equal (vlax-get (vlax-ename->vla-object s1) 'Length) 1 0.05)
                                (progn
                                        (vla-put-Color(Vlax-Ename->Vla-Object s1) 2)
                                )
                        )
                )
)
        (princ)
)

ninja37 发表于 2022-7-5 21:20:47

xj6019 发表于 2022-7-4 16:26
(defun c:NM (/ i s1 ss)
        (vl-load-com)
(setq i -1)


大师如果要加一个功能,把直线移动到30图层怎么办呢

xj6019 发表于 2022-7-5 21:33:02

ninja37 发表于 2022-7-5 21:20
大师如果要加一个功能,把直线移动到30图层怎么办呢

改颜色的后面加一句就行
(vlax-put (vlax-ename->vla-objectS1) 'Layer "图层名字")
就可以了
页: [1]
查看完整版本: 如何用函数选择长度为1mm的直线,并变更颜色为黄色