谢谢这是我用来启动AutoCAD的代码。。。
- Imports AutoCAD
- Module LaunchAutoCAD
- '**************************************************************************************************************
- ' LAUNCH AUTOCAD & LISP
- '**************************************************************************************************************
- Sub Launch_AutoCAD(ByVal DwgName As String, ByVal LispCMD As String)
- Dim vAcadApp As AcadApplication
- Dim vAcadDoc As AcadDocument
- Dim FrmType As String
- If Left(HatchType, 1) = "A" Then
- FrmType = "Angle"
- Else
- FrmType = "Trough"
- End If
- Dim DwgPath As String = "\\A_Long_Novell_Path\MyDrawings"
- Dim LispPath As String = "//A_Long_Novell_Path/LISP/"
- Try
- If Process.GetProcessesByName("acad").Length > 0 Then
- vAcadApp = GetObject(, "AutoCAD.Application.19")
- Else
- vAcadApp = New AcadApplication
- End If
- vAcadApp.Visible = True
- vAcadApp.WindowState = AcWindowState.acMax
- vAcadDoc = vAcadApp.Documents.Open(DwgPath & DwgName, True)
- [color="blue"] vAcadDoc.SendCommand("(load """ & LispPath & LispCMD & ".lsp"" ""The load failed"") " & LispCMD & Chr(13))[/color]
- Catch ex As Exception
- Finally
- vAcadApp = Nothing
- vAcadDoc = Nothing
- End Try
- End Sub
- End Module
我有我的项目结构,以便LISP程序的名称和启动它的命令是相同的文本。而被调用的那个取决于通过互联网传入的请求。
蓝色代码行是我从VB直接与AutoCAD对话的地方。NET,就在VB之前。NET程序退出舞台左侧。我想我可以添加另一行类似的代码来设置变量,这个变量会告诉LISP程序需要加载哪些其他LISP程序。现在用这个做更多的测试。
我应该提到,不完全关闭AutoCAD是故意的。如果一个AutoCAD实例没有打开,这将启动一个新的AutoCAD实例,但这需要时间,而且由于来自Internet的这些请求之间的间隔可能只有几秒钟,我只需将一个实例保持24/7打开,这将大大加快速度。 |