sunshine_81 发表于 2008-11-1 19:17:00

文件保存问题

本帖最后由 作者 于 2008-11-1 19:19:44 编辑 <br /><br /> <p>最近在写一个VBA宏,实现的功能是批处理删除指定文件中指定位置的文字对象,程序运行以及运行结果都没有问题,但是在运行后发现在高版本的CAD运行后,低版本的CAD无法打开经高版本保存(宏自动保存)的文件,如:在Auto CAD 2008中运行完宏的文件,拿到2006版的CAD就打不开,提示“图形文件无效”,但是用2008打开再手动点击“保存”后再拿到2006中就可以打开了(2008已经事先设置为保存为2004格式的dwg文件),请问版主以及各位高人这是怎么回事?我写的这个宏的思路如下:<br/>1、用文档对象的Open函数打开指定文件;<br/>2、获取保存类型,如果不是保存为2004格式,就将其设置为2004格式,代码如下:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim ACADPref As AcadPreferencesOpenSave<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set ACADPref = ThisDrawing.Application.Preferences.OpenSave<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If ACADPref.SaveAsType &lt;&gt; ac2004_dwg Then ACADPref.SaveAsType = ac2004_dwg<br/>3、执行删除文字的操作;<br/>4、最后保存文档、退出,代码如下:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ThisDrawing.Save<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ThisDrawing.Close</p><p>其中思路中的第2步是因为出现上述问题而特意加上去的,本来以为可以搞定,但是谁知道还是不行!!我找了半天也没发现是哪出了问题,不知道大家有没有碰到这类问题?如果有哪位知道解决方法,请赐教,谢谢!</p>

mccad 发表于 2008-11-1 20:22:00

<p>请使用SaveAs方法来解决。</p><p><a href="http://www.mjtd.com/object/acad2004/idh_saveas.htm">http://www.mjtd.com/object/acad2004/idh_saveas.htm</a></p>

sunshine_81 发表于 2008-11-1 21:02:00

<p>谢谢明总的回帖,问题已经解决,不过不是用的明总说的SAVEAS,而是用SENDCOMMAND命令发送“保存”命令。再次谢谢明总!!</p>
页: [1]
查看完整版本: 文件保存问题