如何在AutoCAD 2019中自动加载.dll插件?

时间:2018-09-06 14:00:58

标签: .net vb.net dll autoload autocad

如何在AutoCAD 2019中自动加载.dll插件? 最好不要更改AutoCAD目录中的任何文件(我不是管理员)。 我正在尝试加载关闭AutoCAD时在Excel文件中注册的此插件。它是用.net在vb中创建的。

我已经尝试过,但是失败了,因为我不是管理员,并且无法更改AutoCAD目录中的文件:

https://knowledge.autodesk.com/support/autocad/troubleshooting/caas/sfdcarticles/sfdcarticles/How-to-autoload-DLLs-with-AutoCAD.html

必须有一个不涉及在AutoCAD目录中手动编辑文件的解决方案。特别是因为它打算在我工作的公司的200多台计算机中使用。

我使用vb中的.net在Visual Studio中创建了此插件,如下所示:

Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD.ApplicationServices
Imports Excel = Microsoft.Office.Interop.Excel
Imports System.IO

Public Class Class1
    <CommandMethod("AddAppEvent")>
    Public Sub AddAppEvent()
        AddHandler Application.SystemVariableChanged, AddressOf appSysVarChanged
    End Sub

    <CommandMethod("RemoveAppEvent")>
    Public Sub RemoveAppEvent()
        RemoveHandler Application.SystemVariableChanged, AddressOf appSysVarChanged
    End Sub

    Public Sub appSysVarChanged(ByVal senderObj As Object,
                                ByVal sysVarChEvtArgs As Autodesk.AutoCAD.ApplicationServices.
                                SystemVariableChangedEventArgs)

        Dim oVal As Object = Application.GetSystemVariable(sysVarChEvtArgs.Name)

        Dim fileTest As String = "C:\Users\rita.aguiar\Documents\AutoCAD plug-in\Registo de Eventos.xlsx"
        If File.Exists(fileTest) Then
            File.Delete(fileTest)
        End If

        Dim oExcel As Object
        oExcel = CreateObject("Excel.Application")
        Dim oBook As Excel.Workbook
        Dim oSheet As Excel.Worksheet

        oBook = oExcel.Workbooks.Add
        oSheet = oExcel.Worksheets(1)

        oSheet.Name = "Fecho do AutoCAD"
        oSheet.Range("A1").Value = "O AutoCAD foi encerrado."
        oBook.SaveAs(fileTest)
        oBook.Close()
        oBook = Nothing
        oExcel.Quit()
        oExcel = Nothing
    End Sub

End Class

如果我可以在这里写一些其他东西来至少自动启用事件注册,而不必总是通过在AutoCAD中单击“ AddAppEvent”命令来启用它,那将是很可爱的。而且我还想自动化插件的加载,而不是每次我打开autoCAD文件时都必须手动点击“ netload”并选择.dll文件。

非常感谢。

3 个答案:

答案 0 :(得分:2)

只需使用ApplicationPlugins文件夹。

这就是AutoCAD加载插件的方式。 (可以是Dll的)

在此处查看示例:

https://knowledge.autodesk.com/search-result/caas/CloudHelp/cloudhelp/2018/ENU/AutoCAD-Customization/files/GUID-40F5E92C-37D8-4D54-9497-CD9F0659F9BB-htm.html

答案 1 :(得分:1)

就AutoCAD所知,只能通过注册表编辑或通过链接中提到的文件来自动加载插件。 没有管理员权限,就我所知,没有办法解决此问题

答案 2 :(得分:0)

我知道如何自动加载。实际上非常简单:

  1. 我创建了一个名为acad.lsp的lsp文件

  2. 该文件调用netload命令来加载我的.dll(以及我创建的其他命令)。

  3. 我将文件存储在C:\ Program Files \ Autodesk \ AutoCAD 2019 \ Support

  4. 现在,每次我打开AutoCAD时,它都会自动加载我的插件!