Tipp: Schreiben Sie ein Addin für SOLIDWORKS, welches auf Events reagiert

Sie möchten Ihr eignes Addin für SOLIDWORKS schreiben, welches auf bestimmte Events reagiert? Unser Experte zeigt Ihnen wie. Wenn Sie diesen 11 Schritten folgen, können Sie problemlos selbst eine MessageBox hinzufügen oder andere auf Ihre Bedürfnisse angepasste Addins schreiben.

Um zu starten und ein Addin für SOLIDWORKS schreiben zu können, benötigen Sie zuerst eine Entwicklungsumgebung. Unser Experte bevorzugt hierfür Visual Studio, welches direkt von der Microsoft Website heruntergeladen werden kann (https://visualstudio.microsoft.com/de/).

Schritt 1

Sobald Sie diesen Download durchgeführt haben, können wir ein “Neues Projekt” erstellen. Hierfür wählen wir eine Klassenbibliothek (.NET Framework).

Anschliessend wird für das Projekt noch ein beliebiger Namen vergeben und das Projekt kann erstellt werden.

Nun müssen wir dem Projekt noch die Referenzen von SOLDIWORKS zuweisen. Dazu klicken wir mit der rechten Maustaste auf “Verweise” und anschliessend auf “Verweis hinzufügen”.

Schritt 2

In dem neu geöffneten Fenster klicken wir auf “Durchsuchen”. Dort wechseln wir in unser SOLDIWORKS-Verzeichnis (Bei mir lautet dies: C:\Program Files\SOLIDWORKS2020\SOLIDWORKS\SOLIDWORKS) und wählen die folgenden Dateien aus:

  1. Interop.sldworks.dll
  2. Interop.swconst.dll
  3. Interop.swpublished.dll

Um diesen Schritt abzuschliessen klicken wir auf “hinzufügen”.

Schritt 3

In den Einstellungen des Projekts (Rechtsklick auf die Projektmappe -> Einstellungen) müssen wir unter Assemblyinformationen noch unsere COM- sichtbar machen.

Jetzt kann es auch schon los gehen.

Schritt 4

Wir sollten bereits unser Dokument Class1.cs geöffnet haben. Dies können wir auf Wunsch natürlich auch umbenennen.

Nun fügen wir alle 3 dlls in unseren Usingbereich hinzu, indem wir ganz oben im Dokument diese 3 Zeilen hinzufügen:

  • using SolidWorks.Interop.sldworks;
  • using SolidWorks.Interop.swconst;
  • using SolidWorks.Interop.swpublished;

Zusätzlich fügen wir auch noch folgendes Using hinzu:

  • using System.Runtime.InteropServices;

und schreiben oberhalb der Klasse :

  • [Guid(“B0E96179-3455-46CE-AFC4-EBD875A76446”), ComVisible(true)]

Die GUID kann unter anderem unter Extras-«GUID-Erstellen» erstellt werden

Schritt 5

Anschliessend leiten wir unsere Classe von «ISwAddin» ab und importieren die Schnittstelle. Unser Code sieht dann wie folgt aus:

Schritt 6

Nun muss das Objekt “ThisSW”, welches die Instanz von SOLIDWORKS enthält noch in ein SldWorks Objekt konvertiert werden. Anschliessend können wir an dieses Objekt unsere Events anknüpfen.

Welche Events verfügbar sind, können Sie unter diesem Link einsehen:

https://help.solidworks.com/2020/english/api/swconst/solidworks.interop.swconst~solidworks.interop.swconst.swappnotify_e.html?verRedirect=1

Schritt 7

Wenn wir uns nun unser benötigtes Event herausgesucht haben, können wir dies mit dem SldWorks Objekt verknüpfen, indem wir eine neue Methode erstellen und diese dann an das Event knüpfen.

In meinem Beispiel habe ich das Event „FileOpenPostNotify“ gewählt und lasse eine „MessageBox“ anzeigen. Nun sollte unser Programm wie folgt aussehen:

Schritt 8

Damit unser Programm auch richtig erkannt wird, müssen wir dies noch registrieren lassen.

Dazu fügen wir ein weiteres Using hinzu:

  • using System.Runtime.InteropServices;

und ergänzen unseren Code um folgende Methoden:

Hier müssen wir ebenfalls noch die Description und den Titel anpassen:

  • SetValue(“Description”, “HIER DIE BESCHREIBUNG”);
  • SetValue(“Title”, “HIER DER TITEL”);

Schritt 9

Diese Methoden wurden bereits so konfiguriert, dass hier nichts mehr eingestellt werden muss.

Sobald wir diese Methoden eingefügt haben, können wir unser Programm erstellen und anschliessend registrieren. Dazu öffnen wir unsere Eingabeaufforderung (StartButton und «cmd» tippen. Je nachdem werden hierfür Administratorberechtigungen benötigt).

Zum Registrieren unseres Addins geben wir folgenden Befehl ein und ersetzten den Pfad unserer erstellten DLL (im Projektverzeichnis unter bin\Release oder bin\Debug):

  • C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe “PFAD ZUR DLL” /tlb /codebase

Um dies rückgängig zu machen, geben wir diesen Befehl ein:

  • C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe ” PFAD ZUR DLL” /U /tlb /codebase

Schritt 10

Nun sollten wir diese Ausgabe erhalten haben und es sollte eine neue Datei mit der Endung tlb in unserem Verzeichnis vorliegen:

Schritt 11

Sollte alles geklappt haben, kommt nun nach dem Öffnen einer Datei die gewünschte MessageBox:

Wir hoffen sehr, dass Ihnen dieser Technical Tip gefallen hat und Ihren Arbeitsalltag mit SOLIDOWORKS erleichtert

Viel Spass beim Anwenden und schreiben eines Addins für SOLIDWORKS.

Autor des Artikels

Martin Möllenhoff, R&D Developper bei Visiativ Solutions Switzerland