在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)
);确认坐标相同,图元名相同,图层相同,颜色相同,就确定是重元删除一个。
;没有你的图纸,这个程序没有测试,基本上按这个思路来检查