明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 881|回复: 10

[提问] LSP搜索某个标注样式,如存在则删除

[复制链接]
发表于 2020-5-28 19:39:08 | 显示全部楼层 |阅读模式
以下这段代码是用来搜索标注样式,如果存在“ISO-25”标注样式,则删除,但是实际测试并不通过不知道是哪里有错,求助!

(if (/= nil dimsn)   ;搜索样式,若有,删除ISO-25
           (progn
            (command "-dimstyle" "r" "standard" )   ;设置当前式样为standard,为了删除ISO-25
            (vla-delete (vla-item (vla-get-dimstyles (vla-get-activedocument (vlax-get-acad-object))) "ISO-25"))
            )
)



发表于 2020-5-29 09:28:25 | 显示全部楼层
如果图中使用了这个样式,就不能被删除。
发表于 2020-5-29 09:30:16 | 显示全部楼层
应该首先搜索图中有无使用这种样式的对象,若有,要么删除,要么改为其它样式,最后才能删除样式。
 楼主| 发表于 2020-5-29 10:20:48 | 显示全部楼层
原地踏步 发表于 2020-5-29 09:30
应该首先搜索图中有无使用这种样式的对象,若有,要么删除,要么改为其它样式,最后才能删除样式。

(command "-dimstyle" "r" "standard" )   ;设置当前式样为standard,为了删除ISO-25

这一句就是修改当前标注样式的啊
发表于 2020-5-29 11:30:23 | 显示全部楼层
如果是已经完成的图纸要删除图层或者标注样式那是比较麻烦的事,只要有一个点属于这图层就删除不了了,你可以选中全部这种标注的对象删除,但是有些在图块里面的就要特殊处理,这就很麻烦了,直接改名称是比较简单的处理方法

评分

参与人数 1明经币 +1 收起 理由
xvjiex + 1 很给力!

查看全部评分

 楼主| 发表于 2020-5-29 11:33:13 | 显示全部楼层
start4444 发表于 2020-5-29 11:30
如果是已经完成的图纸要删除图层或者标注样式那是比较麻烦的事,只要有一个点属于这图层就删除不了了,你可 ...

我测试的CAD图形可以手动删除ISO-25这个标注样式,但是用上面的代码却不行,因为代码是网上找来的,不知道是否哪里有错误
发表于 2020-5-29 11:34:19 | 显示全部楼层
huxu823 发表于 2020-5-29 11:33
我测试的CAD图形可以手动删除ISO-25这个标注样式,但是用上面的代码却不行,因为代码是网上找来的,不知 ...

如果确定是可以删除就直接用 PURGE 命令好了
 楼主| 发表于 2020-5-29 11:51:45 | 显示全部楼层
start4444 发表于 2020-5-29 11:34
如果确定是可以删除就直接用 PURGE 命令好了

新手啊,不知道怎么写,能劳烦兄弟直接帮改一下吗?

点评

pu 啊 清除垃圾的命令你不知道吗?把无用的样式 图层都会清除以减少文件大小的  发表于 2020-5-29 11:58
 楼主| 发表于 2020-5-29 12:06:48 | 显示全部楼层
huxu823 发表于 2020-5-29 11:51
新手啊,不知道怎么写,能劳烦兄弟直接帮改一下吗?

你可能没理解我的意思,我是需要通过代码来查找删除这个标注样式,这个代码只是一个LSP插件中的一个片段
 楼主| 发表于 2020-5-31 17:36:54 | 显示全部楼层
终于找到原因了,原来是代码不完整,需要在最前面加一句:
(setq dimsn (tblsearch "dimstyle" "ISO-25"))
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-17 23:38 , Processed in 0.217560 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表