明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 509|回复: 4

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

[复制链接]
发表于 2022-7-4 16:26 | 显示全部楼层 |阅读模式
5明经币
如何用函数写出一个直线选择集函数并将其颜色改为黄色
要求:
框选范围内的所有长度为1mm的直线
选择完成后自动将其颜色改为黄色






最佳答案

查看完整内容

(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) )
发表于 2022-7-4 16:26 | 显示全部楼层
(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)
)
回复

使用道具 举报

发表于 2022-7-5 21:20 | 显示全部楼层
xj6019 发表于 2022-7-4 16:26
(defun c:NM (/ i s1 ss)  
        (vl-load-com)
  (setq i -1)

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

使用道具 举报

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

改颜色的后面加一句就行
(vlax-put (vlax-ename->vla-object  S1) 'Layer "图层名字")
就可以了

点评

(vla-put-Layer (vlax-ename->vla-object S1) "图层名称") 我是用这个,为什么没有你这个vlax-put 函数说明  发表于 2022-7-6 09:49
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-2 22:29 , Processed in 0.385546 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表