乐筑天下

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

[编程交流] 通过筛选阻止搜索

[复制链接]

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 15:11:26 | 显示全部楼层 |阅读模式
你好
 
我希望在这个问题上能得到一些帮助。任何帮助都将不胜感激。我正在编写一个lisp例程来按属性值计算块数。块将具有相同的属性标记,但值不同。我希望得到任何属性值组合中每种类型块的数量。我已经把下面的陈述安排好了,但我不确定是否写对了。我需要用逻辑运算符来调用它吗?或者这样可以吗?
 
  1.                            BLOCK    ATTDEF  ATTDEF  ATTDEF
  2.                            NAME
  3. (setq DOWM (ssget "x" ' ((2 . bname)(1 . DT)(1 . MT)(1 . ST))))

 
再说一次,帮助将是巨大的,
提前感谢,
秃鹰
回复

使用道具 举报

0

主题

132

帖子

198

银币

限制会员

铜币
-21
发表于 2022-7-6 15:15:57 | 显示全部楼层
选择集过滤器快速教程。。。
 
http://www.afralisp.net/lisp/filter.htm
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 15:19:48 | 显示全部楼层
非常感谢borgunit!
 
我相信我能在那里得到答案。很多信息。
我去看看。
 
秃鹰
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 15:21:09 | 显示全部楼层
秃鹰,
 
您可以过滤块名称,但不能过滤ATTDEF或ATTRIB标记或值。您必须单步通过选择集并测试这些。
 
可以添加序列过滤器以确保块具有属性。(66 . 1)
 
因此,要选择当前空间中具有block_name属性的所有插入:
大卫
回复

使用道具 举报

0

主题

269

帖子

279

银币

限制会员

铜币
-4
发表于 2022-7-6 15:25:17 | 显示全部楼层
据我所知,使用vlisp,您无法根据属性过滤选择,因为这些是块插入的“子属性”(我的术语)。
 
您可以筛选与代码类似的多个值,以下是文本示例:
 
(setq selset(ssget“x”'((0。“TEXT”)(1。“text1,text2”)))
 
**编辑**我知道我迟到了&缺钱了,我该回去工作了
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 15:27:56 | 显示全部楼层
哇,我好像在挖一个更深的洞。
这是非常复杂的。
继续前进。
 
看起来我会做很多阅读。
 
谢谢你们的帮助。
秃鹰
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:33:06 | 显示全部楼层
逐步遍历集合和各种“子实体”的示例
  1. (defun c:attribext    (/ ss i bEnt aEnt aEntlist attlist)
  2.    (vl-load-com)
  3.    (if    (setq ss (ssget    "X"
  4.            (list (cons 0 "INSERT")
  5.                  (cons 66 1)
  6.                  (if (getvar "CTAB")
  7.                  (cons 410 (getvar "CTAB"))
  8.                  (cons 67 (- 1 (getvar "TILEMODE")))
  9.                  )
  10.            )
  11.         )
  12.    )
  13.    (progn
  14.        (setq i (sslength ss))
  15.        (while (not (minusp (setq i (1- i))))
  16.        (setq bEnt (ssname ss i)
  17.              aEnt (entnext bEnt)
  18.        )
  19.        (while (/= "SEQEND" (cdr (assoc 0 (entget aEnt))))
  20.            (setq aEntlist (entget aEnt)
  21.              attlist  (cons (cons (cdr (assoc 2 aEntlist)) (cdr (assoc 1 aEntlist))) attlist)
  22.            )
  23.            (setq aEnt (entnext aEnt))
  24.        )
  25.        )
  26.    )
  27.    (princ "\n<!> No Attributed Blocks Found <!>")
  28.    )
  29.    (alert (vl-princ-to-string attlist))
  30.    (princ)
  31. )
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 15:35:55 | 显示全部楼层
好代码Lee_Mac,
 
但不完全是我想要的。
我使用四个命名块。
数据、语音、语音/数据和光纤
 
每个块中有三个属性标记。
DT=下降型数据、语音、语音/数据光纤
MT=安装类型墙、CLNG、FLOR、FURN
ST=系统类型A、C P、W、WP、SL、WS-等。
 
我想通过任意组合来计算积木
属性已填充。
 
如果我能解决这个过滤问题,那太好了,但总有一天我会解决的。
 
当我长大后,我想像李一样,然后我的问题就会结束。
 
谢谢
秃鹰
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:39:12 | 显示全部楼层
 
对不起,Buzzard,我只发布了一个示例代码,说明如何单步通过选择集并检索各种实体。-不是专门针对你的Lisp程序。我注意到,在你最初的帖子中,你提到你正在写一个LISP,并希望得到帮助,所以我不只是想为你写整个LISP,而是提供一些建议。
 
如果你想让我继续写(试着)LISP来满足你的需要,我会的。
 
 
 
哈哈,不错。
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 15:40:36 | 显示全部楼层
我不确定你是不是人,
 
我得到的印象是,你的脑海里有10个500 GHz的微处理器。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 19:13 , Processed in 0.424803 second(s), 72 queries .

© 2020-2025 乐筑天下

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