乐筑天下

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

[编程交流] 仅具有偶数属性的块

[复制链接]

73

主题

261

帖子

195

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
375
发表于 2022-7-5 15:36:53 | 显示全部楼层 |阅读模式
大家好,
我发现了一个lisp,它可以选择具有属性范围的块。
效果很好,但我只想选择属性值为偶数的块,如1002、1004、1006、1008等
 
 
  1. (defun filter_set (blk tag lo hi / ss olst)
  2. (vl-load-com)
  3. (if (setq ss (ssget "_X" (list (cons 0 "INSERT") (cons 2 blk) (cons 66 1))))
  4.    (foreach blk (mapcar 'cadr (ssnamex ss))
  5.      (foreach att (vlax-invoke (vlax-ename->vla-object blk) 'getattributes)
  6.    (and (eq tag (vla-get-tagstring att))
  7.         (not (<= lo (atof (vla-get-textstring att)) hi))
  8.         (ssdel blk ss)
  9.    )
  10.      )
  11.    )
  12. )
  13. ss
  14. )
  15. (sssetfirst nil (filter_set "U00025" "TEXT1" 1101 11012))

这是在查看属性“TEXT1”时,它抓取1102、1104和1106的块(都在您的范围内,甚至是)
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2022-7-5 15:46:24 | 显示全部楼层
见第10篇
回复

使用道具 举报

73

主题

261

帖子

195

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
375
发表于 2022-7-5 15:51:31 | 显示全部楼层
 
哈哈,我的意思是阅读第4篇文章。我想我应该说我的帖子在上面更新了。很高兴分类了!
 
如果要查看多个属性的范围,可以使用以下内容:
[code](defun filter\u set(blk tags lo hi/iseven ss v)(defun iseven(x)(zerop(rem x 2)))(vl load com)(if(setq ss(ssget“\u x”(list(cons 0“INSERT”)(cons 2 blk)(cons 66 1))(foreach blk(mapcar’cadr(ssnamex ss))(foreach att(vlax invoke(vlax ename->vla object blk)’getattributes)(和(member(vla get tagstring att)标记)(或(非(
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2022-7-5 15:52:40 | 显示全部楼层
回复

使用道具 举报

73

主题

261

帖子

195

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
375
发表于 2022-7-5 15:59:21 | 显示全部楼层
ronjonp
 
yes and no.
 
it selects still all the blocks in range 1101 -1106 but it selects the even blocks (same blockname) in an other range.
I think (not (iseven v)) has effect on other blocks outside the range.
 
 
 

[code](defun filter_set (blk tag lo hi / iseven ss v) (defun iseven (x) (zerop (rem x 2))) (vl-load-com) (if (setq ss (ssget "_X" (list (cons 0 "INSERT") (cons 2 blk) (cons 66 1))))   (foreach blk (mapcar 'cadr (ssnamex ss))     (foreach att (vlax-invoke (vlax-ename->vla-object blk) 'getattributes)   (and (eq tag (vla-get-tagstring att))        (not (
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2022-7-5 16:06:13 | 显示全部楼层
 
Please see post #4.
163658j1sks38u1ucugccz.jpg
回复

使用道具 举报

73

主题

261

帖子

195

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
375
发表于 2022-7-5 16:09:12 | 显示全部楼层
still selecting all in range but odd blocks outside the range.
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2022-7-5 16:15:21 | 显示全部楼层
 
Sorry .. can't replicate that. Did you download my initial code again ( post #2 )?
163659tw0mm5d6gamdg0sl.jpg
回复

使用道具 举报

73

主题

261

帖子

195

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
375
发表于 2022-7-5 16:18:06 | 显示全部楼层
Using this drawing
test2.dwg
回复

使用道具 举报

73

主题

261

帖子

195

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
375
发表于 2022-7-5 16:23:40 | 显示全部楼层
Yeb....works fine.  In post 6 you said: Please see post #4.
That didnt work post2 works fine.
ronjonp Many thanks
 
PmxCAD
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-13 23:09 , Processed in 0.334824 second(s), 74 queries .

© 2020-2025 乐筑天下

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