lisp 删除编组中图元_CAD中怎样快速删除重复图元、块等一些重叠对象

本文介绍了在AutoCAD中如何删除重叠图元,包括使用内置的OVERKILL命令和天正插件的「删除重元」功能。此外,还提供了一个LISP程序的示例,用于自定义删除相同属性的重叠对象,但需注意可能存在的图元缺失问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在AutoCAD2016版本里面,命令【62616964757a686964616fe58685e5aeb931333337616536overkill】(其它的版本不清楚有没有),可以删除重叠的对象(包括直线,多段线,文字等等)

安装天正插件,里面有【删除重元】功能,把重叠的对象删除。

这个删除重叠对象也有缺点,如果对象复杂会造成图元缺失。

你的情况有两个方法给你参考:

1)autoCAD有【自动保存】功能,每10分钟保存一次,右键,选项,在文件里面查看自动保存路径,找到这个文件夹,把自动保存的文件后缀修改为【dwg】,这样打开文件就可以找回最近的文件,减少损失。

2)如果会编程的话,自己编辑一个程序,由于不清楚你的图纸情况无法测试程序,只是提供一个思路:

(defun C:tes ( / &dis1 &dis2 &k1 &k2 &kw1 &ob1 &ob2 c01 c02 c621 c622 c81 c82 i n1 n2 pt1 pt11 pt12 pt2 pt21 pt22)

(vl-load-com)

(princ "\n请选择要删除重叠的对象")

(if (setq &kw1 (ssget))

(progn

(while (setq &k1 (ssname &kw1 0))

(setq &kw1 (ssdel &k1 &kw1) c01 (cdr (assoc 0 (entget &k1))))

;得到图元名

(setq &ob1 (vlax-ename->vla-object &k1));变VBAX对象

(vla-GetBoundingBox &ob1 'pt1 'pt2);包围盒检查

(setq pt11 (Vlax-SafeArray->List pt1) pt21 (Vlax-SafeArray->List pt2))

;得到左下角及右上角坐标

(setq c81 (vla-get-layer &ob1) c621 (vla-get-color &ob1) i 0)

;得到图层及颜色,如果有其它相同的地方,越详细越好

(setq n1 (sslength &kw1) n2 1)

(if (> n1 1)

(progn

(while (setq &k2 (ssname &kw1 i))

(setq i (1+ i) c02 (cdr (assoc 0 (entget &k2))))

(setq &ob2 (vlax-ename->vla-object &k2))

(vla-GetBoundingBox &ob2 'pt1 'pt2)

(setq pt12 (Vlax-SafeArray->List pt1) pt22 (Vlax-SafeArray->List pt2))

(setq c82 (vla-get-layer &ob2) c622 (vla-get-color &ob2))

(if (and (= c01 c02) (

)

)

)

(if (= n2 2) (vla-delete &ob1) )

)

)

)

(princ)

);确认坐标相同,图元名相同,图层相同,颜色相同,就确定是重元删除一个。

;没有你的图纸,这个程序没有测试,基本上按这个思路来检查

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值