SOLIDWORKS Tipp: Add-In

Im folgenden Artikel wird beschrieben, wie mit Visual Studio und C# die Optionen in SOLIDWORKS gelesen, und geändert werden können.

1. Einführung

In vorherigen Technical Tips wurde erklärt, wie es möglich ist SOLIDWORKS Funktionen in Standalone-Anwendungen zu verwenden. Diese müssen neben SOLIDWORKS gestartet und verwendet werden. In diesem Technical Tip wird jedoch erklärt, wie ein AddIn geschrieben werden kann, sodass eine DLL direkt in SOLIDWORKS geladen wird.

2. Ausgangslage

Oft kommt es vor, dass Anwender separate Dateien benutzen, um diverse Funktionen in SOLIDWORKS auszuführen. Diese Vorgehensweise wird vermutlich eingesetzt, weil es einfacher oder schneller ist, diese so zu schreiben. In diesem Technical Tip wird jedoch gezeigt, wie man einfach und schnell eine Anwendung direkt in SOLIDWORKS programmieren kann.

3. Erstellen des Addins

3.1 Projekt erstellen

Als Erstes muss ein Projekt erstellt werden. Hierzu wird nun anstatt einer App eine Class Library (.NET Framework) ausgewählt. Ein Projektname, bzw. Solution-Name kann im nächsten Schritt frei gewählt werden. Anschliessend muss das Projekt erstellt werden.

Abbildung 1: Erstellung eines neuen Projekts in Visual Studio

Jetzt kann mit einem Rechtsklick auf das Projekt und „Manage Nuget Packages…“ die Paketverwaltung geöffnet werden. Dann kann im Browser-Fenster nach unseren Visiativ-Paketen gesucht werden. Anschliesend können Sie das SOLIDWORKS Paket mit der entsprechenden Version herunterladen und installieren.

Abbildung 2: Hinzufügen SOLIDWORKS API

3.2 Aufbau der Klasse

Als Erstes wird das benötigte Interface ausgewählt und implementiert. Die Grundstruktur der Klasse sollte nun wie folgt aussehen:

Das Addin könnte jetzt grundsätzlich geladen werden, jedoch muss es auch z.B. einen Menüeintrag geben, damit eine bestimmte Funktion gestartet werden kann. Damit SOLIDWORKS die Library lesen kann, wird der Klasse eine GUID zugewiesen und das Attribut ComVisible auf true gesetzt. In der Connect Methode speichern wir die Referenz zu SOLIDWORKS und die Cookies. Hier wird auch das CallBack definiert, sodass dieses Addin aufgerufen werden kann, sobald etwas ausgeführt wird.

Der Command Manager von SOLIDWORKS wird nun abgefragt. Mit diesem wird eine neue Command Group erzeugt. Genaueres zu den einzelnen Parametern kann unter folgender URL nachgelesen werden:

SOLIDWORKS Hilfe

Wichtig ist hierbei, dass beim Aufrufen des AddCommandItem2 die String Parameter, mit den aktuellen Werten Main und EnableButton, den gleichen Namen besitzen, wie die Methoden in dieser Klasse. Diese werden später aufgerufen. In der Methode EnableButton kann definiert werden, wann die Funktion aufrufbar sein darf. In der Main Methode kann dann angegeben werden, was dieses Addin ausführen soll. Zum Schluss wird true zurückgegeben, um den korrekten Verbindungsvorgang zu bestätigen. Eine DisconnectFromSW Methode wird ebenfalls aufgebaut, in welcher wir alle Ressourcen wieder freigeben.

4. Registrierung des Addins

Um das Addin richtig in SOLIDWORS laden zu können, benötigt es zwei Schritte. Die erstellte DLL-Datei muss zuerst auf dem PC registriert werden. Hierzu muss die Konsole mit Adminrechten gestartet werden und folgender Befehl ausgeführt werden:

“C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe”  /codebase “PATH_TO_DLL”

Wobei der Text PATHTODLL durch den kompletten Pfad der zu registrierenden DLL ersetzt werden muss. War dies erfolgreich, wird der Text TTypes registered successfullyïn der Konsole ausgegeben.

In einem zweiten Schritt muss die DLL in der Registry von SOLIDWORKS eingetragen werden. Hierzu wird die Regedit gestartet und zu folgenden Schlüssel gewechselt:

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\SolidWorks\AddIns

Dann muss ein neuer Key erstellt werden, mit der GUID des Addins. Dieser Key hat dann zwei Werte für Description und Title, welche später in SolidwSOLIDWORKS angezeigt werden. Ist dies fertig, sollte der Eintrag wie folgt aussehen:

Abbildung 3: Eintrag in Regedi

5. Ergebnis

Wurden alle Schritte erfolgreich durchgeführt, kann SOLIDWORKS gestartet werden. Nun sollte unter Tools –> Addin das eben erstellte Addin aufgelistet werden. Hier sollte ebenfalls ein Button unter Tools zu finden sein, der dieses Addin aufruft.

Abbildung 4: Ergebnis

Der fertige Code kann von unserem GitHub Profil heruntergeladen werden:

GitHub-Profil

Autor des Artikels

Martin Bartolomé, R&D Developer bei Visiativ