删除整个文本对象
你好我在这里的第一篇帖子得到了很好的回复,所以我希望这次我也能找到一些理解。
我的画有66个布局是用不正确的模板创建的,每个布局都有很多文本对象需要删除。
和以前一样,我排除故障的时间非常有限,所以我希望有人能帮忙。
基于其他几个线程,它们都有一些类似于我所需要的方面,我得出了这一行:
(entdel (car (sssetfirst nil (ssget "_X" '((1 . "TQ00E"))))))产生
error : bad argument type <NIL> ; expected ENTITYNAME at
我希望这是因为sssetfirst返回多个实体,entdel一次需要一个实体——如果是这样,我知道出了什么问题,只是没有时间学习如何进行循环。
如果有帮助的话,文本对象包含特定的已知字符串,如上面的TQ00E-在单个文本实体中没有其他内容。
我很乐意使用Find和replace将所有这些文本替换为空格,但这是一种糟糕的做法,所以我希望有人能更正我的代码。当然,我不介意我得到脏的、非最佳的多行代码。
提前感谢! 可能是这样的
(if (setq ss (ssget "x" '((1 . "TQ00E"))))(command "erase" ss "")) 多美啊。周末愉快!
欢迎光临。如果将“TQ00E”更改为“TQ00E”,(用逗号)则同时删除空文本。
祝你周末愉快。
gr.Rlx 好的,我有点忘乎所以,这段代码只在当前布局上有效,我希望我可以删除所有布局上特定文本对象的所有副本。这容易做到吗?
(vl-load-com)
(defun del-txt ()
(if (ssget "_x" '((0 . "text")(1 . "TQ00E")))
(vlax-for n (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object)))
(vla-delete n)))(princ))
gr.Rlx 嗨,我需要继续画图,所以我用空格替换了所有相关的字符串。我知道它不好看,但这不是我的错,我继承了一个有问题的模板绘图。可惜Bricscad Quick Select一次只能用于一个布局。我肯定会调查这个VL业务,虽然它不断出现,当我谷歌我的LISP问题。再次感谢您。 pateksan这里是一个单步浏览布局选项卡的示例,通常我也会检查/=“model”
(setq doc (vla-get-activedocument (vlax-get-acad-object)))
(vlax-for lay (vla-get-Layouts doc)
(setvar 'ctab (vla-get-name lay) )
(alert (strcat "Tab has changed to " (vla-get-name lay)))
)
@pateksan:
快速选择确实仅限于当前空间。这完全符合逻辑,同样适用于编辑命令。
页:
[1]