Bill Tillman 发表于 2022-7-6 22:24:38

退出或不退出

我使用以下方法获取AutoCAD的现有实例,如果它在那里,如果没有打开,则打开现有图形,然后加载并运行LISP程序。问题是我允许LISP程序关闭图形,然后关闭VB。NET关闭AutoCAD。但它会在LISP程序完成之前关闭它。有没有办法强制Quit命令等待LISP程序完成。我试过睡觉,但似乎不起作用。LISP程序大约需要5-10秒才能完成其工作。
 

Try

   IfProcess.GetProcessesByName("acad").Length > 0 Then
   vAcadApp = GetObject(, "AutoCAD.Application.19")
   Else
   vAcadApp = NewAcadApplication
   EndIf

   Dim TemplateName AsString = "My_Automated_Drawing.dwg"
   vAcadApp.Visible = True
   vAcadApp.WindowState = AcWindowState.acMax
   vAcadDoc = vAcadApp.Documents.Open("\\my_server_path\" & TemplateName, True)
   vAcadDoc.SendCommand("(load ""//my_server_path/LISP/" _
                     & lisptype & ".lsp"" ""The load failed"") " & lsiptype & Chr(13))

Catch ex AsException

Finally
   'vAcadApp.Quit()
   vAcadApp = Nothing
   vAcadDoc = Nothing

EndTry

BlackBox 发表于 2022-7-6 23:33:46

不调用Quit()方法,再次调用SendStringToExecute()不会同步运行Quit命令吗?
 

// C#
         vAcadDoc.SendStringToExecute(
               "Quit\n", false, false, true
         );
//
页: [1]
查看完整版本: 退出或不退出