明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5315|回复: 30

[求助]提出个想法,可以编出个按颜色选择物体的程序吗?

  [复制链接]
发表于 2006-3-11 22:26:00 | 显示全部楼层 |阅读模式

如题:

可以编出个按颜色选择物体的程序吗?

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2006-3-11 23:20:00 | 显示全部楼层
  1. (load "xyp_lib.vlx") ;版本 V.20060210
  2. ;|下载和加载通用函数(可在签名栏直接下载后放到搜索路径下)
  3. 利用以下任何一种方式(首选第一种)即可加载和运行通用函数内的所有子程序:
  4. ★1·在acad.lsp中增加(load"xyp_lib")
  5. ■2·在每个程序内增加(load"xyp_lib")
  6. ■3·在command下,输入(load"xyp_lib")
  7. ■4·在菜单.mnl中增加(load"xyp_lib")
  8. ■5·将xyp_lib.vlx文件直接拽到cad屏幕
  9. [COLOR=red] ★通用函数下载地址:[/COLOR]
  10. [url]http://bbs.mjtd.com/forum.php?mod=viewthread&tid=37554[/url]
  11. |;
  12. ;;;按颜色选择物体
  13. (defun c:test ()
  14.   (if (null int)
  15.     (setq int 7)
  16.   )
  17.   (setq INT (UINT 7 "" "\n颜色号" INT)
  18. ss  (ssget)
  19. ss1 (ssadd)
  20. i   -1
  21.   )
  22.   (while (setq s1 (ssname ss (setq i (1+ i))))
  23.     (if (= (xyp-get-Color s1) int)
  24.       (setq ss1 (ssadd s1 ss1))
  25.     )
  26.     (princ ".")
  27.   )
  28.   (princ "\n物体集名称: !ss1")
  29.   ss1
  30. )
 楼主| 发表于 2006-3-11 23:35:00 | 显示全部楼层

楼上,出错了:

命令: TEST ; 错误: no function definition: UINT

我想要的是:颜色号不用输入,直接选取的,

发表于 2006-3-12 00:00:00 | 显示全部楼层
userzhl发表于2006-3-11 23:35:00楼上,出错了:命令: TEST ; 错误: no function definition: UINT我想要的是:颜色号不用输入,直接选取的,
先加载通用函数!
  1. (load "xyp_lib.vlx")   ;版本 V.20060210
  2. ;|下载和加载通用函数(可在签名栏直接下载后放到搜索路径下)
  3. 利用以下任何一种方式(首选第一种)即可加载和运行通用函数内的所有子程序:
  4. ★1·在acad.lsp中增加(load"xyp_lib")
  5. ■2·在每个程序内增加(load"xyp_lib")
  6. ■3·在command下,输入(load"xyp_lib")
  7. ■4·在菜单.mnl中增加(load"xyp_lib")
  8. ■5·将xyp_lib.vlx文件直接拽到cad屏幕
  9. [COLOR=red] ★通用函数下载地址:[/COLOR]
  10. [url]dispbbs.asp?boardID=3&ID=37554&page=1[/url]
  11. |;
  12. ;;;按颜色选择物体
  13. (defun c:test ()
  14.   (while (not (setq s1 (entsel "\n选择任意目标实体: "))))
  15.   (setq int (xyp-get-Color (car s1))
  16. ss  (ssget)
  17. ss1 (ssadd)
  18. i   -1
  19.   )
  20.   (while (setq s1 (ssname ss (setq i (1+ i))))
  21.     (if (= (xyp-get-Color s1) int)
  22.       (setq ss1 (ssadd s1 ss1))
  23.     )
  24.     (princ ".")
  25.   )
  26.   (princ "\n物体集名称: !ss1")
  27.   ss1
  28. )
 楼主| 发表于 2006-3-12 14:49:00 | 显示全部楼层
本帖最后由 作者 于 2006-3-12 23:15:03 编辑

没有更简单一点的了吗?终于被我研究出来了:

(defun c:ssc (/ al)
   (if (setq al (entsel "\n请选择:")) (progn
      (setq ss (ssget (list (assoc 62 (entget (car al))))))
......
   ))
)

发表于 2006-3-12 22:09:00 | 显示全部楼层
userzhl发表于2006-3-12 14:49:00 没有更简单一点的了吗?终于被我研究出来了: (defun c:ssc (/ al)(if (setq al (entsel \"\n请选择:\"))&n...

既然研究出来了,应该不错!目前还没有更简单一点的。

楼上的东东看不懂!


 

 楼主| 发表于 2006-3-12 22:14:00 | 显示全部楼层
此程序是选择所有同一颜色的物体,我想把它改成“点色框选”呀。
发表于 2006-3-12 22:19:00 | 显示全部楼层

试一下:
(defun c:ssc (/ al)
   (if (setq al (entsel "\n请选择:")) (progn
      (setq ss (ssget (list (assoc 62 (entget (car al))))))
......
   ))
)

 楼主| 发表于 2006-3-12 22:39:00 | 显示全部楼层
本帖最后由 作者 于 2006-3-12 23:37:53 编辑

非常的感谢ZZXXQQxyp1964,好像是已解决,但后来不知为何又出错了:

错误: ssget 列表错误

是不是:DXF 群组码出错了?

发表于 2006-3-13 00:06:00 | 显示全部楼层

组码62不是必须的

当随层时候,62是没有的。

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

本版积分规则

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

GMT+8, 2024-10-2 15:23 , Processed in 0.220444 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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