Как я могу автоматически загрузить плагины .dll в AutoCAD 2019? - PullRequest
0 голосов
/ 06 сентября 2018

Как автоматически загрузить плагины .dll в AutoCAD 2019? Желательно без изменения какого-либо файла в каталоге AutoCAD (я не администратор). Я пытаюсь загрузить этот плагин, который регистрируется в файле Excel, когда AutoCAD закрыт. Он был создан с помощью .net в VB.

Я пробовал это, но не смог, потому что я не администратор и не могу изменить файлы в каталоге AutoCAD:

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

Должно быть решение, которое не предполагает ручного редактирования файлов в каталоге AutoCAD. Особенно потому, что он предназначен для использования на более чем 200 компьютерах в компании, в которой я работаю.

Я создал этот плагин в visual studio с помощью .net в vb следующим образом:

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

Было бы замечательно, если бы было что-то еще, что я мог бы написать здесь, чтобы по крайней мере включить регистр событий автоматически, вместо того, чтобы всегда включать его, нажимая команду AddAppEvent в AutoCAD. И я также хотел автоматизировать загрузку плагина, вместо того, чтобы вручную нажимать «netload» и выбирать файл .dll каждый раз, когда я открываю файл autoCAD.

Большое спасибо.

Ответы [ 3 ]

0 голосов
/ 07 сентября 2018

Просто используйте папку ApplicationPlugins.

Именно так AutoCAD загружает плагины. (который может быть Dll's)

См. Пример здесь:

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

0 голосов
/ 10 сентября 2018

Я понял, как автоматически загружаться. Это на самом деле очень просто:

  1. Я создал файл lsp с именем acad.lsp

  2. Файл вызывает команду netload для загрузки моего .dll (и других созданных мной команд).

  3. Я сохранил файл в C: \ Program Files \ Autodesk \ AutoCAD 2019 \ Support

  4. Теперь каждый раз, когда я открываю AutoCAD, он автоматически загружает мой плагин!

0 голосов
/ 06 сентября 2018

Насколько мне известно о AutoCAD, плагины могут быть автоматически загружены либо с редактированием реестра, либо путем редактирования файла, как указано в ссылке. Без прав администратора не будет способа обойти это, насколько мне известно

...