sakinen 发表于 2022-7-5 20:05:53

自定义块选择lisp

我需要根据属性值进行选择。选择过滤器由块名称、块属性和该属性的值集组成。例如,我有一打在我的画块,但我只需要散热器块。这个bloc有几个属性,但我需要根据其room number属性进行过滤。数值为1,2,3,4,5,6,7,8。我只想选择2,4,7。是否有一个lisp例程,我可以修改或你有一些其他的想法。

Lee Mac 发表于 2022-7-5 20:13:19

您必须使用SS过滤器过滤块名和属性块,然后过滤收集集的一种方法是将其转换为列表,并使用诸如“vl remove if”“vl remove if not”之类的函数。。。等

flowerrobot 发表于 2022-7-5 20:15:50

你好。。
您想对值为2,4,7的项做什么?
 
 
我会将其用于选择集
这将使属性成为一个项。
 

(setq blockname (getstring ("\nWhat is the blocks name")))
(setq ss(ssget "X" '((0 . "INSERT")(2 . blockname)(66 . 1))))
 
然后是属性的数量
 
然后你可以说
这将成为一个列表。
 
请原谅剪贴这件事。这会让你上路的。。
除非在中不使用lisp。那么很抱歉,其他人中的一个会帮助你

Lee Mac 发表于 2022-7-5 20:24:09

另一种方法:
 
3
 
使用块名、标记名和要筛选的属性值列表来调用它。

sakinen 发表于 2022-7-5 20:25:43

我想选择这些特定块,以在“属性”选项卡中更改其查找参数值。

sakinen 发表于 2022-7-5 20:30:25

谢谢。这很有帮助。有没有办法让lisp要求您选择不喜欢的块,然后插入属性名?

Lee Mac 发表于 2022-7-5 20:36:55

 
您需要使用getstring函数提示输入块/属性名称,并包括一些错误检查,以查看名称是否有效等。

BIGAL 发表于 2022-7-5 20:42:27

我有一个vba,它可能做你想要的,但关于最后一个问题,最容易选择一个正确的块,只需返回其名称,你可以做一个确认,所以再次选择,如果错误的一个。然后继续执行程序。
 
您也可以单步遍历属性并选择正确的属性,例如enter=no Y=correct

Lee Mac 发表于 2022-7-5 20:45:31

块选择可以是这样的:
 
4

Commandobill 发表于 2022-7-5 20:48:03

 
这条线的目的到底是什么?如果(setq ent(car(entsel)))返回nil,那就是。。。那么第二个检查是没有意义的是吗?
页: [1] 2
查看完整版本: 自定义块选择lisp