BlackBox 发表于 2022-7-6 10:49:36

考虑到您列出的格式,此修订可能会起作用:
 

(defun c:FOO (/ text ss)
(if (and (/= "" (setq text (getstring T "\n>>Enter Group Number: ")))
          (setq ss (ssget "_x" (list '(0 . "TEXT,MTEXT") (cons 1 (strcat text "*"))))))
   (sssetfirst nil ss)
   (prompt "\n<!>Nothing Selected<!> "))
(princ))

Lee Mac 发表于 2022-7-6 10:54:14

 
阅读wcmatch上的帮助文件

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

仅在我选择的对象内不搜索。它在看整个图纸。只有当整个文本是我无法在文本中搜索时,它才能找到它

Lee Mac 发表于 2022-7-6 10:59:52

我可以这样做
 

(defun c:find2 nil
(sssetfirst nil
   (ssget
   (list (cons 0 "MTEXT,TEXT")
       (cons 1 (strcat "*" (getstring "\nText to Find <All>: ") "*"))
   )
   )
)
(princ)
)

BlackBox 发表于 2022-7-6 11:04:17

 
我今天一定很傻,但你在说什么?
 
并不是说我的代码是正确的(因为它显然不适合你),但我很难理解你(请耐心等待)。
 
那么您想(手动)选择一组文本实体,然后输入组码,然后根据组码标准对其进行过滤?
 
编辑:
我刚刚在写这篇文章的时候看到了李的帖子,可能唯一遗漏的就是过滤条件中前面的“*”。

BlackBox 发表于 2022-7-6 11:04:55

 
我很欣赏你的程序的优雅,但是getstring=“…”呢。。。?

alanjt 发表于 2022-7-6 11:09:10

看近一点。

MikeP 发表于 2022-7-6 11:12:51

李的代码更接近我所看到的。它允许我选择一个我想搜索的组。但只有当所需文本等于文本块的整个上下文时,它才会找到它。
 
 
 
(1) 1.02底背厚34.8975 x 12.86
(2) 1.01底背厚34.8975 x 12.86
(3) 1.02底背厚34.8975 x 12.86
(4) 1.01底背厚34.8975 x 12.86
 
让我们只说上面是我试图搜索的文本对象的一个例子。“1.01”组是我唯一要找的组。
 
我想能够输入“1.01”,它应该只突出显示红色的内容。
 
(1) 1.02底背厚34.8975 x 12.86
(2) 1.01底背厚34.8975 x 12.86
(3) 1.02底背厚34.8975 x 12.86
(4) 1.01底背厚34.8975 x 12.86
 
然而,如果我输入“(1)1.02 Base Back Thick 34.8975 x 12.86”,它只会突出显示一些内容

alanjt 发表于 2022-7-6 11:14:57

出于好奇,是你的(1)。。。(4) 示例一段多行文字或单独的(M)文字对象?

MikeP 发表于 2022-7-6 11:17:47

对不起,是的,它们是4个不同的单行文本对象
页: 1 [2]
查看完整版本: 需要一个类似于t的lisp