通过VBA关闭AutoCAD对话
我正在编写一个例程来清理来自外部的绘图。发生的事情是,我偶尔会遇到一个不稳定的绘图,并抛出AutoCAD“检测到程序错误”。建议您保存工作并重新启动程序。有什么方法可以防止这种情况在VBA出现,或者在VBA有什么方法可以关闭它?这是我写的一段代码。Sub dwgclean()
Set objFSO = New FileSystemObject
Set objFolder = objFSO.GetFolder(Me.txtFolderSource.Text)
For Each objFile In objFolder.Files
If objFile.Type = "AutoCAD Drawing" Then
WholeFile = Me.txtFolderSource.Text & "\" & objFile.Name
AutoCAD.AcadApplication.Documents.Open WholeFile
ThisDrawing.PurgeAll
ThisDrawing.PurgeAll
ThisDrawing.PurgeAll
ThisDrawing.PurgeAll
ThisDrawing.SendCommand ("-purge r *" & vbCr & "n" & vbCr)
ThisDrawing.AuditInfo True
RemoveLayerFilters
DeletePageSetups
DeleteScaleList
ThisDrawing.AuditInfo True
ThisDrawing.SaveAs Me.txtFolderdestination.Text & "\" & objFile.Name
ThisDrawing.Close
End If
Next
deletebackup
End Sub
我已经在没有帮助的情况下尝试了“nomutt”、“expert”和“filedia”系统变量。如果你需要一个绘图的例子让我知道,我会通过电子邮件发送。几乎10Mb...如果我能以某种方式模仿scriptpro关闭对话的能力,那该有多好。
**** Hidden Message ***** 如果您知道是哪一行导致了问题,您可以使用“错误恢复下一步”。如果问题不在VBA中,则可能无法解决。
示例:
…
此绘图。PurgeAll<br>在出现错误时,继续下一个<br>此绘图。SendCommand(“-purge r*”&vbCr和“n”&vbCr)
,错误转到0<br>此绘图。这是真的吗 是的,当您审核不稳定的图形时,它是标准的AutoCAD消息。 我也尝试从vba运行恢复,但消息仍然出现...
另外,“摇晃”是什么意思? 我使用脚本处理外部图形。这样,如果它像你的一样崩溃,我就能看到它停在哪里了。我仍然使用VBA来清理它。 这意味着它断裂或失败。 摘自《澳大利亚初学者英语》 脚本可以工作,但不像整个VBA。我没有发布的代码复制了整个目录,破坏了任何令人讨厌的文件类型,并提出了我们关心的放在服务器上的东西。还有一堆如果其他事情也能完成,则永远无法通过脚本完成,这是我正在创建的整个应用程序的一部分。最终产品将是一个检查层和标准符合的审计例程...
我想这里的整体问题是例程没有崩溃,它正在暂停输入。这是我不想要的,因为我正在处理整个图纸目录。 我正在做同样的事情,我的意思是从脚本调用您的vba,这样如果它崩溃,您可以看到它停止的位置。我意识到崩溃是错误的词,但你知道我的意思。我有一个非常相似的程序,用于检查来自顾问的内容、运行审计、清除、检查层、线型、字体、暗淡等。
但是对话不是VBA代码出错的结果,而是绘图数据库损坏的结果,AutoCAD 2008现在有一种方法可以警告用户数据库损坏,而不是稍后崩溃。如果您运行AutoCAD脚本来审核绘图,它会抛出相同的错误。用户每天都会遇到这种情况,因为我们每次打开绘图都会对它们进行审核。 好吧,我们又见面了…我在另一个论坛上监测了你的帖子,等着看你是否上传了一张有错误的图片-这样我就可以重现对话框,并尝试编写代码来关闭窗口
如果您或其他阅读本文的人有一张在检查错误时将生成上述对话框的图纸,请将其上载…以便我可以尝试为其编码…
页:
[1]
2