MikeP 发表于 2022-7-6 10:17:13

需要一个类似于t的lisp

我需要做的是使用find命令,而不是查找/替换文本。我需要它来搜索我输入的文字,并选择它,这样我就可以来,改变后的颜色。如果它可以使用相同的“查找”界面,那就太棒了。

eldon 发表于 2022-7-6 10:22:21

您是否已经研究了整个FIND命令,包括“缩放到”选项?
 
如果有内置的AutoCAD函数,您可能会发现实际上不需要人为您编写lisp。

MikeP 发表于 2022-7-6 10:25:52

 
 
不,我离开命令后仍然需要选择所有内容。仅find命令无法做到这一点。

BlackBox 发表于 2022-7-6 10:28:38

像这样的事情会起作用吗
 

(defun c:FOO (/ text ss)
(if (and (setq text (getstring T "\n>>Enter Text To Find: "))
          (setq ss (ssget "_x" (list '(0 . "TEXT,MTEXT") (cons 1 text)))))
   (sssetfirst nil ss))
(princ))

 
 
注意-这不会处理通配符。
 
希望这有帮助!

Lee Mac 发表于 2022-7-6 10:30:46

 
是的,会的

MikeP 发表于 2022-7-6 10:34:55

它起作用了。但它几乎就要到了。有两件事是它不做的。我只需要在选择集中搜索,而不需要搜索整个图形。我需要它能够搜索文本对象,并在文本中找到一个或多个单词。但它可以选择整个文本对象。我需要它,因为我的图纸上有一大群零件。每个零件都有描述和组号。我需要选择具有特定组号的每个部分。
 
也许它还能告诉我找到了多少。
 
不过我很感激你的帮助

BlackBox 发表于 2022-7-6 10:38:30

 
笑死我了。。。哦,是的!
 
我现在有太多事情要做。

BlackBox 发表于 2022-7-6 10:42:27

 
 
这可能是因为我有很多事情要做,但我很困惑。。。。
 
 
 
我发布的代码创建了一个仅包含符合筛选条件(即匹配文本字符串)的项目的选择集。
 
你指的是什么选择集。。。您的意思是要将选择集传递给此函数(即(FOO-ss))?
 
 
 
再说一次,我肯定遗漏了什么,如果描述和组号不一样,这不应该构成问题。
 
组号文本是否碰巧位于它自己的层上?如果是这样,那么我们可以修改过滤标准。
 
让我知道。

Lee Mac 发表于 2022-7-6 10:44:48

我认为Mike没有意识到他必须使用通配符来搜索字符串中的单词。

MikeP 发表于 2022-7-6 10:46:07

我可能只是解释得很糟糕。我希望能够选择一组文本对象。这些文本对象是我拥有的零件的名称和描述。我可能有5组,但总共有100个不同的部分。而不是我手动在我的窗口周围平移并读取每个组号,以查找我要查找的组中的特定部分。我希望能够选择部分,并使用FOO命令,只输入组号。例如,描述文本对象如下所示。“1.01右侧”我有“2.1右侧”、“3.1右侧”。但我只想找到“1.01”下的所有内容
 
什么是通配符,我如何将其与FOO命令一起使用
页: [1] 2
查看完整版本: 需要一个类似于t的lisp