alijahed 发表于 2022-7-6 07:26:25

Qselect公司

大家好,
 
如何在lisp中使用QSELECT命令并设置其参数以通过块名称过滤器选择特定块。
 
干杯
 
阿里

lpseifert 发表于 2022-7-6 07:30:56

转而考虑使用ssget。

alijahed 发表于 2022-7-6 07:35:15

我有动态块,所以我更喜欢使用QSELECT。

alanjt 发表于 2022-7-6 07:40:48

QSelect没有命令行选项。

alanjt 发表于 2022-7-6 07:46:14

如果您想自己滚动,可以指定块名并循环选择(删除与vla get effectivename不匹配的部分),然后使用sssetfirst选择剩余部分。
 
(ssget "_X" (list '(0 . "INSERT") (cons 2 (strcat "`*U*," name))))
 
这将选择所有动态块和与指定名称匹配的块。从那里,你可以循环(我上面说的)。

alijahed 发表于 2022-7-6 07:49:40

几周后,我回到这个话题,我感到困惑!
因此,最好简化情况。
假设我在屏幕上插入了一个动态块,我知道动态块的名称。
如何按名称选择动态块?
 
干杯
 
阿里

Tharwat 发表于 2022-7-6 07:53:04

阿里,
 
可以使用Autolisp过滤任何需要的实体,但不需要保留选择,因此在选择任何实体后必须执行操作。
 
例如,这个lisp是我做的,它会要求你选择一个块,它会不停地插入选定的块,直到你点击回车键。试试看。
(defun c:qs (/ a ins)
(setq b (cdr(assoc 2 (entget(car(entsel"\nSelect a Block: "))))))
(while (setq ins (getpoint"\n Insertion point <enter to exit> :"))
(command "_insert" b ins"" "" "" ))
(princ "Written by Tharwat")
(princ))

 
塔瓦特

Tharwat 发表于 2022-7-6 07:58:10

你好
 
你的问题不清楚,它是献给谁的?
 
请澄清
 
塔瓦特

Lee Mac 发表于 2022-7-6 08:03:39

 
当动态块属性被更改时,它将成为匿名块,因此您无法在ssget过滤器中使用其名称来选择它,相反,请使用Alan建议的过滤器,过滤结果集(如果有),并对照EffectiveName属性进行检查。

sinnerboy 发表于 2022-7-6 08:07:55

抱歉在这里掘墓人。我需要能够选择一个块,并让AutoCAD告诉我该块在图形文件中放置了多少次。塔瓦特的常规看起来可以改变来做到这一点,但我不知道如何做到这一点。有人能帮忙吗?
页: [1] 2
查看完整版本: Qselect公司