autocad 文件错误,过大的原因分析和解决办法

一、问题:

图形文件DWG体积很大,通常没有明显的数据。同时,还其他症状包括:

(1)无法复制和粘贴图元。

(2)悬挂较长时间选择文本与 “特性” 选项板上打开。

(3)图形文件需要很长时间才能打开。

症状:

从一个包含有 “DGN线型” 文件拷贝到别的DWG文件时,导致DWG文件变得非常大,这是因为复制过程中包含了大量的非必要数据,这部分数据无法体现及使用PU命令清除。(这些数据会伴随着复制、插入等命令跟随到别的文件中)

DGN是一种文件格式,通常是建筑在画总图时使用到相关软件,而在相互参照过程中,使得这些无用的数据存在于DWG文件中且不可见。

解决方法:

1、AutoCAD2012/2013、2014使用DGN 修补程序。

下载附件:  

AutoCAD DGN 修补程序适用于 AutoCAD 2012

AutoCAD DGN 修补程序适用于 AutoCAD 2013/2014

 该修补程序(DGN 修补程序)包括两个文件:

(a)DGNLsPurge.dll加载后,可使用 DGNPURGE 命令。

(b)AcDgnLS.dbx,防止非必要数据传播到新文件中。

 使用方法,输入DGNPURGE命令 删除不需要的DGN 图元,体积大的文件可能需要几分钟的时间(与电脑配置也有关系)。完成后,请使用PU命令清理所有图形。安装方法请参见关联的自述文件的说明。 

2、 AutoCAD 2015(或更高版本),直接使用 PURGE 命令,启用复选框标记为 “自动清理孤立的数据”。(AutoCAD 2012、2013 和 2014 中“DGN 修补程序”功能已添加到 2015的 PURGE 命令中)

3、使用第三方插件“Drawing Purge”(图形清理)

可以同一时间内清除多个图形。官方的补丁只能处理单文件,而且问题文件太大的话会假死半个小时或以上;所以推荐这个第三方软件,用于处理多个文件,无须打开,每个文件处理时间基本在一分钟以内,视电脑配置而定。)

下载附件:  

Drawing Purge(软件原名称为:AjilalVijayanDrawingPurge,可查看Autodesk官网介绍:地址 

 插件使用方法:

(为防止未知问题的发生,请在处理前先备份要处理的dwg文件,本人使用至今未出问题>

关闭CAD,安装“图纸清理V4.0(CAD2012).msi”

安装完成后打开CAD,输入命令:DWG-PURGE-BATCH,弹出如下对话框:

点击 “Select Drawings to Purge”

在弹出的对话框中选择要处理的dwg文件(注:如要处理的文件已被打开,会导致处理失败),选择好后,点击“打开”。

可在选项“options”中的白框内写上数字或字母,用于处理好后文件名的增加后缀,可在复选框内选择另存的版本。

点击“Start”按钮开始处理文件,

请耐心等待处理完毕(过程中出现未响应属正常现象,时间不会很久)。

完成后查看文件,确认没有问题后,可删除备份文件。

另:软件安装完成后有两个命令可用,一个是上面的DWG-PURGE-BATCH,可处理多个文件,

一个是DWG-PURGE,可处理当前打开的图纸,但会把"ACAD_DGNLINESTYLECOMP"这个字典都删除,

删除后是否会有其它问题,暂时未知。所以建议使用批处理那个命令

(小技巧,在CAD的命令行输入“DWG”后,按“TAB”键,会自动完成后面的命令,然后按空格就好了)

    4、若只是清理当前文件,也不怕字典被删除后出现其它问题,可不用安装此软件,只须把下面的代码另存为.lsp后执行就行(处理用时:极速)。

(defun c:VF ();;;;"

(dictremove (namedobjdict) "ACAD_DGNLINESTYLECOMP")

(command "-purge" "a" "*" "n")

(princ "\n*********已清理完毕。")

       (princ));;

 

官方原文地址:

https://knowledge.autodesk.com/support/autocad/troubleshooting/caas/sfdcarticles/sfdcarticles/AutoCAD-DWG-files-unexpectedly-increase-in-file-size.html#mtc-chinese-(simplified)

二问题、

        当使用 DGNPURGE 命令在 AutoCAD 2012、2013 或 2014进行清理时(使用官方DGN 修补程序),该过程反复显示以下消息,然后结束标记,零个未参照的线型或零笔划已清除:

无法删除笔划 (AcDbZombieObject eNotAllowedForThisProxy)

会导致:

         可能是第三方插件或插件出现冲突 。也可能是您 AutoCAD安装缺少某些注册表键,导致使用 DGN 修补程序文件清理时失败。

解决方案:

方法一:

        若要解决该问题,请尝试以下方法:

•      在 AutoCAD 中,键入 DEMANDLOAD 在命令行,并将其值设置为 0。

•      卸载任何已添加到 AutoCAD 中的第三方附加或插件。

•      将关键帧添加到您的系统上的注册表,请按以下步骤操作:

1.     退出 AutoCAD。

2.     创建一个新的文本文件使用记事本和复制以下内容:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\ObjectDBX\R19.1\Applications\AcDgnLS]

"LOADCTRLS" = DWORD: 00000009

"LOADER" = "AcDgnLS.dbx"

" 说明 " = " DGN 线样式组件”

3.     保存到您选择的位置,并关闭该文件。

4.     重命名该文件,扩展名改为 .reg 而不是 .txt 。确保它不是 .reg.txt 。(重命名后,可右键单击 > “属性” 中来查看完整文件名)。

5.     双击刚才创建的文件,以将其应用到注册表中。

6.     打开AutoCAD,使用DGNPURGE命令,一般来说能解决问题。

 官方原文地址:

https://knowledge.autodesk.com/support/autocad/troubleshooting/caas/sfdcarticles/sfdcarticles/Some-DWG-files-cannot-be-purged-with-DGNPURGE-in-AutoCAD.html#mtc-chinese-(simplified)

方法二:

 老外把这些无用且无法清理的对象叫做僵尸zombies。清理僵尸对象的命令就叫kill zombies。首先需要下载老外的这个清理僵尸对象的插件,叫做zombieskiller。

下载完了,双击安装。安装好了就可以用了。操作也很简单,打开cad,用cad打开需要清理的那张图,输入命令 findzombies,注意两个单词连着写,中间不要加空格,就可以查看到图纸中有多少无用的僵尸对象了。然后使用命令killzombies,就可以清除所有僵尸对象,同样,两个单词之间也不要有空格。

一般几十兆的图纸里面可能会有几十万个僵尸对象,使用killzombies命令后,瞬间清除几十万僵尸对象,让人看着非常过瘾。使用这个命令清理完僵尸对象之后,然后再使用dgnpu命令,接着再使用pu命令,然后还不行的话再配合使用输出为块的操作,我个人觉得基本上百分之九十以上的图纸都能很快缩小。

使用zombies killer也是有条件的。先使用我说的几种常规办法,特别是输出为块等简单办法,假如都不奏效,再试试DGNPU。使用完之后,如果提示zombies object,那么再使用zombies killer,否则一上来就想着通过这个办法来达到一劳永逸是不行的。

三、问题:

当尝试复制和粘贴元素在 AutoCAD 图形中,该过程会较长时间(甚至几分钟的时间), 也无法工作,甚至可能会崩溃。

解决方案:

多种因素可能会导致复制和粘贴停止工作,最基本的是数据损坏的图形中。 

要修复的复制和粘贴功能,请尝试修复图形中使用以下方法: 

修复图形 
使用 RECOVER 命令打开图形。这将会核查文件并修复所有错误。 

移除过多的线型 
使用 PURGE 命令,然后选择 “全部” 选项以清除额外的线型,可在图形中。AutoCAD 2012、2013 和 2014 中,使用 DGN 修补程序(该修补程序将合并到 AutoCAD 2015 及更高版本中,并不是 available for AutoCAD 2011 和更早的版本)。这里的链接:

删除约束 
太多的约束将会降低图形并停止复制和粘贴操作。通常,这些在图形中是不可见的,并且可以启用 “参数化” 选项卡在功能区中。要删除它们,请选择 “所有图形中的元素,并使用 DELCON 命令。 

重置比例列表 
使用 -SCALELISTEDIT 命令并选择 “重置” 选项。 

删除图层过滤器 
使用 “过滤器” 命令可删除所有图层过滤器。 

将 Windows 剪贴板 
内存碎片可能已损坏的剪贴板。退出并重新启动 AutoCAD 以将其重置。

https://knowledge.autodesk.com/support/autocad/troubleshooting/caas/sfdcarticles/sfdcarticles/Copy-and-paste-in-AutoCAD-hangs-for-a-long-time-or-fails-to-work.html#mtc-chinese-(simplified)

总结:介绍了几种减肥办法,一一列举如下:

        第一,使用pu或者 -purge命令(也就是加强版pu命令)能清除一部分没用到的图元图层。

        第二,使用-scalelistedit命令,清理比例。然后选择“删除”所有或者“重置”选项。

        第三,把图形拷贝出来,粘贴到一个新建的dwg文件中,然后另存。这个办法对于有些臃肿的cad是有用的。

        第四,把cad图形做成块,使用wblock命令,然后另存。(隐藏和冻结的图层不会跟着过来)

        第五,用低版本打开或者用高版本打开,另存,效果不明显。

        第六,存成dwf版本,然后再从dwf存成dwg。

     第七,用DGNPURGE的补丁

     第八,使用输出位块方法,先打开图纸,然后依次点文件-输出。在弹出的对话框里,填好图纸名称,类型选择块(*.dwg),在出现的对话框中,输入星号“*”,然后直接输出。

     第九,使用清理僵尸对象的插件或官方的批处理文件。

 最后,建议清理顺序:先进行第一第二步,还是大的话,进行第七步,如果过程中发现僵尸对象,则进行第九步,然后在回到第七步,然后第一步,还可以在配合使用输出为块的操作,相信最后一定可以了。

猜你喜欢

转载自blog.csdn.net/pilifeng1/article/details/88528293