pmxcad 发表于 2022-7-5 15:36:53

仅具有偶数属性的块

大家好,
我发现了一个lisp,它可以选择具有属性范围的块。
效果很好,但我只想选择属性值为偶数的块,如1002、1004、1006、1008等
 
 

(defun filter_set (blk tag lo hi / ss olst)
(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 (<= lo (atof (vla-get-textstring att)) hi))
      (ssdel blk ss)
   )
   )
   )
)
ss
)

(sssetfirst nil (filter_set "U00025" "TEXT1" 1101 11012))

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

ronjonp 发表于 2022-7-5 15:46:24

见第10篇

pmxcad 发表于 2022-7-5 15:51:31

 
哈哈,我的意思是阅读第4篇文章。我想我应该说我的帖子在上面更新了。很高兴分类了!
 
如果要查看多个属性的范围,可以使用以下内容:
(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)标记)(或(非(

ronjonp 发表于 2022-7-5 15:52:40

pmxcad 发表于 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.
 
 
 

(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 (

ronjonp 发表于 2022-7-5 16:06:13

 
Please see post #4.

pmxcad 发表于 2022-7-5 16:09:12

still selecting all in range but odd blocks outside the range.

ronjonp 发表于 2022-7-5 16:15:21

 
Sorry .. can't replicate that. Did you download my initial code again ( post #2 )?

pmxcad 发表于 2022-7-5 16:18:06

Using this drawing
test2.dwg

pmxcad 发表于 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
页: [1] 2
查看完整版本: 仅具有偶数属性的块