mlabell 发表于 2022-7-6 17:23:46

关闭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
       "THIS IS WHERE I NEED THE DIALOGUE CLOSE!"
       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关闭对话的能力,那么什么才是理想的呢。

ML0940 发表于 2022-7-6 17:32:29

姆拉贝尔
 
代码是否为VBA格式?
 
如果是这样,您可以使用
用户窗体。隐藏
 
这将关闭表单并继续
 
毫升

mlabell 发表于 2022-7-6 17:37:47

是的,我的代码在表格中。但是,当您多次审核图形以删除粘液时,错误对话框是与AutoCAD相关的对话框。无论是通过脚本、lisp还是vba进行审核,拨号都是标准警告,以让用户知道数据库中存在图形不稳定。
我的最终目标是合并一个scriptpro类型控件,它可以抑制任何AutoCAD对话框。。。

ASMI 发表于 2022-7-6 17:40:38

SendKeys "{ESC}"

ML0940 发表于 2022-7-6 17:45:17

这可能管用,阿斯米,好主意
 
在线路之后

ThisDrawing.AuditInfo True


SendKeys "{ESC}"
 
我相信您说过您已经尝试了filedia,设置为0?
 
如果这仍然不起作用,请告诉我,然后我可以尝试运行代码。
 
我看到你在使用FSO,我喜欢!我一直在用它!:)
毫升

ML0940 发表于 2022-7-6 17:50:15

 
如果上述想法不起作用,那么我可以让你用FTP将图纸传给我,这不会是一个问题
 
毫升

alanjt 发表于 2022-7-6 17:58:35

当图形与项目不关联时,这是否适用于绕过land desktop的弹出窗口?我一直试图永远绕开它。

ML0940 发表于 2022-7-6 18:01:38

嗨,艾伦
 
这是找到答案的一种方法
 
毫升

alanjt 发表于 2022-7-6 18:05:53

对不起,我应该更坦率一点。我对vba一无所知;我只知道lisp。我一直想学习vba,但我真的没有时间,而且我读到它将被取代。net for autocad。我不想麻烦地学习一门一两年后就会过时的语言(关于autocad的使用)。

ML0940 发表于 2022-7-6 18:13:43

嗨,艾伦
我正好相反,我对VB相当熟悉,对LISP知之甚少。
 
至于VBA是否会完全消失,我们拭目以待,然而,如果你使用VB的话。net的基础上,我可以告诉你,了解VBA将比LISP更好地为你服务。
 
话虽如此,英语中还有其他四种语言。net,因此您甚至可能不会决定以后使用VB
 
毫升
页: [1] 2
查看完整版本: 关闭AutoCAD对话框