2017-09-18 6 views
0

Hallo, ich versuche, dll-Dateien auf Autocad 2018 zu laden, wie kann ich das erreichen. Ich möchte automatisieren, damit es beim Start geht. Mit Netload funktioniert alles. Ich habe * .lsp Wege verwendet. Kann mir bitte jemand helfen. Ich habe viele Wege gefunden, aber keine funktioniert.Autocad 2018 autoload dll

Antwort

1

offiziellen Weg AutoCAD-Dateien geschrieben in .NET auf Start laden DLL ist Autoloader-Funktion zu verwenden. Sie bündeln die .dll-Datei grundsätzlich mit allen anderen gewünschten Dateien in einem Standardordner, in dem AutoCAD beim Start alle Plug-Ins lädt. Dies ist besonders nützlich, wenn Sie Ihr Plug-in (.dll) als Setup-Datei zur Installation auf mehreren Computern verteilen möchten.

Der erste Schritt besteht darin, einen Bündelordner in "%ProgramData%/Autodesk/ApplicationPlugins" zu erstellen. Der Bundle-Ordner ist ein normaler Windows-Ordner, der mit .bundle (ex. MyApp.bundle) endet.

Innerhalb dieses Ordners müssen Sie einen Ordner namens ("Contents") und eine Datei namens ("PackageContents.xml") haben.

Platz DLL innerhalb der Inhalt Ordner

Code in PackageContents.xml kann so einfach sein wie die folgenden (Ändern Dinge wie „MyApp“, „MyName“, etc .. und es sollte für Sie arbeiten):

<?xml version="1.0" encoding="utf-8"?> 
<ApplicationPackage SchemaVersion="1.0" ProductType="Application" Name="MyAPP" AppVersion="1.0" Description="MyAPP, My description" Author="My Name" Icon="./Contents/MyAPPIcon.ico" OnlineDocumentation="http://MyWebSite.com" HelpFile="" ProductCode="{xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx}" FriendlyVersion="1.0" SupportedLocales="Enu" AutodeskProduct="AutoCAD"> 
    <CompanyDetails Name="My Name" Phone=" " Url="http://MyWebsite.com" Email="[email protected]" /> 
    <Components Description="Main"> 
    <RuntimeRequirements SupportPath="./Contents" OS="Win32|Win64" Platform="AutoCAD*" SeriesMin="R19.0" SeriesMax="R22.0" /> 
    <ComponentEntry AppName="MyAPP" Version="1.0" ModuleName="./Contents/MyAPP.dll" AppDescription="My description" LoadOnAppearance="True" LoadOnAutoCADStartup="True" LoadOnCommandInvocation="True"> 
    </ComponentEntry> 
    </Components> 
</ApplicationPackage> 

ich denke, die oben genug, um Ihre Frage zu beantworten, aber wenn Sie mehr um den Artikel unter folgendem Link lesen müssen: http://adndevblog.typepad.com/autocad/2013/01/autodesk-autoloader-white-paper.html

+0

Obwohl dies zwei funktioniert, habe ich zwei Fragen für Sie. 1) Wie hilft mir das, Befehle zu automatisieren? 2) Was ist der Pfad zum Modulnamen? – panoskarajohn

+0

Fragen Sie und ich werde versuchen zu antworten, wenn ich kann – mavios

+0

Ich habe ein .net-Plugin geschrieben. Ich möchte automatisch einige benutzerdefinierte Befehle ausführen. Ich möchte es in .Net machen, weil es eine größere Flexibilität als VBA/ActiveX (Makros) bietet. 2. Wenn wir auf das XML schauen und sehen in Module Name = "./ Inhalt" -> Wohin führt dies? Welcher Ordner? 3. Wie hilft mir die XML bei der Automatisierung? – panoskarajohn

1

Sie geben Ihre NETLOAD Befehle in eine LSP Datei ein und fügen die LSP Datei zu Ihrer Startup Suite hinzu.

Denken Sie auch daran die Pfade 2 Schrägstriche wie diese verwenden müssen:

(command "netload" "C:\\Internal Tools\\Detect Overlap\\Type 5\\x86\\Detect Overlap.dll") 
+0

wo ist die Startup-Suite? – panoskarajohn

+0

Geben Sie in Autocad APPLOAD ein und es wird ein Bild eines Koffers angezeigt. – braX

+0

ok danke ich werde es testen und Sie wissen lassen. – panoskarajohn

1

Es ist auch ziemlich ea sy mit der Registrierung zu tun, und ist meine bevorzugte Art und Weise. Siehe Link unten. Zur Bereitstellung können Sie entweder ein Installationsprogramm erstellen, um die Registrierungsschlüssel festzulegen, oder Sie können es direkt im Code ausführen, wenn Code außerhalb von AutoCAD ausgeführt wird.

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

+0

sehr interessante Weise, ehrlich gesagt hatte ich Angst, mit der Registrierung zu spielen, aber das scheint sehr einfach zu sein. Vielen Dank. – panoskarajohn