Michaels 发表于 2022-7-6 10:33:40

ssget to me的新代码

我希望有人能向我解释以下(ssget)相关代码。
 

(setq ss (ssget (list (cons -4 "<OR") (cons 0 "TEXT") (cons 0 "MTEXT") (cons -4 "OR>"))))

 
非常感谢。

Kerry Brown 发表于 2022-7-6 10:56:51

传递给ssget的列表称为“过滤器列表”,其中包含ssget例程用于选择选择集的dxf键值列表的关联对,仅选择匹配的dxf对。
条件仅表示(在这种情况下);
 
使用以下任一项筛选实体
 
“TEXT”的dxf 0值

“多行文字”的dxf 0值
 
 
另一种写作方式是
(setq ss(ssget’((cons 0“TEXT,MTEXT”)))
这将从屏幕上选择的项目中过滤掉除文本和多行文字之外的所有内容。

Michaels 发表于 2022-7-6 11:15:18

谢谢Kerry,
 
根据您宝贵的回复,我认为根本不需要使用(cons-4”)。
 
所以我不应该再使用它们了,因为它们是无用的。。。。。正当
 
谢谢

Kerry Brown 发表于 2022-7-6 11:26:58

我不建议你忘记他们。。。当您需要复杂的条件过滤时,它们仍然很有用。。。只是你展示的例子可以简化。
 
如果我回忆正确,AutoLisp文档中有一些关于选择集条件过滤的合理注释。
 
当做

Lee Mac 发表于 2022-7-6 11:48:09

 
确实如此,布朗先生:

Using the AutoLISPLanguage
> UsingAutoLISP to Manipulate AutoCAD Objects
   > Selection Set Handling
   > Selection Set Filter Lists
       > Logical Grouping of Filter Tests
页: [1]
查看完整版本: ssget to me的新代码