【问题标题】:How can I load automatically .dll plugins in AutoCAD 2019?如何在 AutoCAD 2019 中自动加载 .dll 插件?
【发布时间】:2019-02-11 19:44:23
【问题描述】:

如何在 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 文件。

非常感谢。

【问题讨论】:

  • 您能列出您正在尝试使用的特定插件,以及到目前为止您尝试过的没有奏效的插件吗?
  • 能否提供编译插件的文件路径?
  • 另外,如果没有管理员权限,您是否无法编辑链接中提到的 .lsp 文件?我已经能够在没有管理员权限的情况下使用 Notepad++ 编辑和保存我的
  • 如何自动将文件路径提供给 AutoCAD?即使在记事本++中我也不能,谢谢。此外,在我公司的每台计算机上编辑每个文件也不理想。
  • 如果您向我提供您导出的 DLL 文件的目录,即 C:/User/YourName/Documents 等。我可以尝试为您制作所需的文件。

标签: .net vb.net dll autoload autocad


【解决方案1】:

只需使用 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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 您可以通过运行 regedit.exe 访问 Windows 上的注册表编辑(您可以在开始菜单中键入此内容)。不幸的是,它需要管理员凭据,因此不会有太大用处,如果您不确定自己在做什么,则不建议这样做。容易破解软件等
    【解决方案3】:

    我想出了如何自动加载。其实很简单:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2019-09-24
      • 2019-03-23
      • 1970-01-01
      • 2012-05-11
      • 1970-01-01
      • 2023-02-05
      • 2017-01-01
      • 2011-08-22
      • 2022-02-28
      相关资源
      最近更新 更多