简而言之,答案是肯定的。您可以构建一个C#项目,该项目将打开AutoCAD或使用其已打开的现有实例,然后向其发送一个命令,该命令将加载并运行您选择的LISP程序。我总是这样做。我使用COM方法,更喜欢尽可能远离AutoCAD环境。我使用的LISP代码还读取文本文件以输入创建图形。哦,我应该提到我使用VB。净额。如果你在互联网上搜索,你会发现很多这样做的例子。它看起来像这样。为此,您需要添加对AutoCAD的引用。
- Imports AutoCAD
- Module LaunchAutoCAD
- '**************************************************************************************************************
- ' LAUNCH AUTOCAD & LISP
- '**************************************************************************************************************
- Sub Launch_AutoCAD(ByVal DwgName As String)
- Dim vAcadApp As AcadApplication
- Dim vAcadDoc As AcadDocument
-
- Dim DwgPath As String = "\\My_Path_To\Engineering\Automated Drawings"
- Dim LispPath As String = "//My_Path_To/LISPFiles/"
- 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)
- vAcadDoc.SendCommand("(load """ & LispPath & My_Lisp & ".lsp"" ""The load failed"") " & Cmd_To_Start_LISP_Program & Chr(13))
- Catch ex As Exception
- Finally
- vAcadApp = Nothing
- vAcadDoc = Nothing
- End Try
- End Sub
这段代码大约在一年前与我共享,它是为AutoCAD 13配置的。当我的项目全天候通过Internet收到请求时,它还会使AutoCAD实例保持打开状态。也许有更好的方法,但这适合我的需要。 |