乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 37|回复: 8

[编程交流] 删除整个文本对象

[复制链接]

3

主题

8

帖子

5

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 15:28:26 | 显示全部楼层 |阅读模式
你好
我在这里的第一篇帖子得到了很好的回复,所以我希望这次我也能找到一些理解。
我的画有66个布局是用不正确的模板创建的,每个布局都有很多文本对象需要删除。
和以前一样,我排除故障的时间非常有限,所以我希望有人能帮忙。
基于其他几个线程,它们都有一些类似于我所需要的方面,我得出了这一行:
  1. (entdel (car (sssetfirst nil (ssget "_X" '((1 . "TQ00E"))))))
产生
  1. error : bad argument type <NIL> ; expected ENTITYNAME at [entdel]

我希望这是因为sssetfirst返回多个实体,entdel一次需要一个实体——如果是这样,我知道出了什么问题,只是没有时间学习如何进行循环。
如果有帮助的话,文本对象包含特定的已知字符串,如上面的TQ00E-在单个文本实体中没有其他内容。
我很乐意使用Find和replace将所有这些文本替换为空格,但这是一种糟糕的做法,所以我希望有人能更正我的代码。当然,我不介意我得到脏的、非最佳的多行代码。
提前感谢!
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 15:37:36 | 显示全部楼层
可能是这样的
  1. (if (setq ss (ssget "x" '((1 . "TQ00E"))))(command "erase" ss ""))
回复

使用道具 举报

3

主题

8

帖子

5

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 15:47:17 | 显示全部楼层
多美啊。周末愉快!
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 15:53:34 | 显示全部楼层
 
 
欢迎光临。如果将“TQ00E”更改为“TQ00E”,(用逗号)则同时删除空文本。
 
 
祝你周末愉快。
 
 
gr.Rlx
回复

使用道具 举报

3

主题

8

帖子

5

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 16:00:45 | 显示全部楼层
好的,我有点忘乎所以,这段代码只在当前布局上有效,我希望我可以删除所有布局上特定文本对象的所有副本。这容易做到吗?
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 16:12:07 | 显示全部楼层
 
  1. (vl-load-com)
  2. (defun del-txt ()
  3. (if (ssget "_x" '((0 . "text")(1 . "TQ00E")))
  4.    (vlax-for n (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object)))
  5.      (vla-delete n)))(princ))

 
gr.Rlx
回复

使用道具 举报

3

主题

8

帖子

5

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 16:15:31 | 显示全部楼层
嗨,我需要继续画图,所以我用空格替换了所有相关的字符串。我知道它不好看,但这不是我的错,我继承了一个有问题的模板绘图。可惜Bricscad Quick Select一次只能用于一个布局。我肯定会调查这个VL业务,虽然它不断出现,当我谷歌我的LISP问题。再次感谢您。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 16:26:20 | 显示全部楼层
pateksan这里是一个单步浏览布局选项卡的示例,通常我也会检查/=“model”
  1. (setq doc (vla-get-activedocument (vlax-get-acad-object)))
  2. (vlax-for lay (vla-get-Layouts doc)
  3. (setvar 'ctab (vla-get-name lay) )
  4. (alert (strcat "Tab has changed to " (vla-get-name lay)))
  5. )
回复

使用道具 举报

18

主题

1529

帖子

973

银币

中流砥柱

Rank: 25

铜币
649
发表于 2022-7-5 16:35:44 | 显示全部楼层
@pateksan:
快速选择确实仅限于当前空间。这完全符合逻辑,同样适用于编辑命令。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-14 00:07 , Processed in 0.670848 second(s), 81 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表