乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 20|回复: 19

[编程交流] Q、 包含以下内容的选择集:

[复制链接]

14

主题

271

帖子

257

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 14:15:41 | 显示全部楼层 |阅读模式
这是一个一般性的问题,我希望能够在很多LISP中使用。
 
线路:
  1. (setq ss (ssget "_X" filtered_list)
根据模型空间或图纸空间中的filter_列表搜索所有对象。
 
你如何让它搜索包括一切;在所有街区?在所有的纸上?
 
有一个简单的答案吗。。。?
 
助教
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 14:19:50 | 显示全部楼层
 
嘿steve1,
 
请查看以下链接以获取大部分答案:
 
http://www.cadtutor.net/forum/showthread.php?t=31499
http://www.afralisp.net/lispa/lisp19.htm
http://www.afralisp.net/lisp/filter.htm
 
祝你好运
秃鹰
回复

使用道具 举报

14

主题

271

帖子

257

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 14:24:10 | 显示全部楼层
好的,谢谢。我会看一看,然后告诉你。
回复

使用道具 举报

14

主题

271

帖子

257

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 14:25:31 | 显示全部楼层
快速浏览了这些链接。。。听起来没有简单的方法。
 
基本上,如果我想在任何地方找到所有的绿线,我必须穿过每个实体。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 14:30:16 | 显示全部楼层
 
如果您引用的是块中的实体,则需要遍历块定义。
 
下面是一个示例代码:
 
  1. (defun c:test ()
  2. (GetObj (tblobjname "BLOCK" <blockname>))
  3. )
  4. ; Get Sub-Entities from Table Def
  5. (defun GetObj  (bObj)
  6. (if (setq bObj (entnext bObj))
  7.    (cons bObj (GetObj bObj))))

 
如果提供了有效的块表实体,则上述实体将遍历块定义,并返回组成块的所有实体的列表。
回复

使用道具 举报

14

主题

271

帖子

257

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 14:32:18 | 显示全部楼层
好的,我正在尝试实现这个tblobjname来洗牌代码,但我仍在尝试接受它。(这是如此简单的代码!!) 
这可能真的很愚蠢,但我只是想理解;如果我同时使用这两个选项拾取同一个块:
显然,它们都返回相同的实体名称。那么tblobjname如何深入到块的子实体中呢?
 
使用GetObj表单,您将遍历所有实体,直到它们用完(setq bObj(entnext(bObj))。
那么我可以把这样的东西放到while循环中,然后继续用修改填充while循环吗?为了保持简单,请将绿色更改为黄色:
这不起作用,但你明白了。。。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 14:35:31 | 显示全部楼层
tblobjname获取指定表项的实体名称,与从(car(entsel))返回的实体略有不同,因为您可以单步遍历块组件(通过对象实体名称无法访问)。
 
我倾向于使用子函数来检索实体列表,因为列表更容易处理,也更容易出错。让事情变得简单。
 
回复

使用道具 举报

14

主题

271

帖子

257

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 14:40:24 | 显示全部楼层
关于tblobjname,(很抱歉,我还没有完全了解它)它是如何跨块组件的?
 
从帮助文件:
(tblobjname表名符号)
符号可以是什么样的东西?如果我有一个块,其中有一行,可以在符号位(表名=“block”)中指定吗?
谢谢
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 14:43:40 | 显示全部楼层
 
嘿,史蒂夫,
 
符号可以是任何类型的实体。下面显示的是块和多段线的列表。您可以看到的实体名称在这些列表中。例如,此处显示为dxf数据。
 
  1. Here is a list for a block:
  2. (-1 . <Entity name: 7ef6f508>)
  3. (0 . "INSERT")
  4. (330 . <Entity name: 7ef6dcf8>)
  5. (5 . "4C1")
  6. (100 . "AcDbEntity")
  7. (67 . 0)
  8. (410 . "Model")
  9. (8 . "T-COMM-TAPP")
  10. (100 . "AcDbBlockReference")
  11. (66 . 1)
  12. (2 . "SPEC_2-WAY")
  13. (10 0.972767 0.795854 0.0)
  14. (41 . 1.0)
  15. (42 . 1.0)
  16. (43 . 1.0)
  17. (50 . 0.785398)
  18. (70 . 0)
  19. (71 . 0)
  20. (44 . 0.0)
  21. (45 . 0.0)
  22. (210 0.0 0.0 1.0)
  23. Here is a lwpolyline:
  24. (-1 . <Entity name: 7ef6f5d8>)
  25. (0 . "LWPOLYLINE")
  26. (330 . <Entity name: 7ef6dcf8>)
  27. (5 . "543")
  28. (100 . "AcDbEntity")
  29. (67 . 0)
  30. (410 . "Model")
  31. (8 . "0")
  32. (100 . "AcDbPolyline")
  33. (90 . 2)
  34. (70 . 0)
  35. (43 . 0.0)
  36. (38 . 0.0)
  37. (39 . 0.0)
  38. (10 1.66837 -0.629099)
  39. (40 . 0.0)
  40. (41 . 0.0)
  41. (42 . 0.0)
  42. (10 3.45399 -0.0267465)
  43. (40 . 0.0)
  44. (41 . 0.0)
  45. (42 . 0.0)
  46. (210 0.0 0.0 1.0)
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 14:44:33 | 显示全部楼层
以街区为例。
 
 
(tblobjname表名符号)
 
 
命令:(tblobjname“block”“SPEC\u 2-WAY”)
 
将返回
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-5 02:57 , Processed in 0.528054 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表