Vererbung von SOLIDWORKS Klassen in C#

Im folgenden Artikel wird beschrieben, wie mit Visual Studio und C# die bereits im vorherigen TecTip erstellten Klassen so angepasst werden können, dass diese vererbt werden können. Dies soll die Handhabung mit Vererbung verdeutlichen und verständlicher machen. Hierzu werden drei Klassen für die verschiedenen Dateitypen „SLDPRT“,„SLDASM“,„SLDDRW“ erstellt. Diese werden anschliessend von einer Hauptklasse verwendet.

1 Einführung

Wenn Anwendungen für SOLIDWORKS geschrieben werden, kann es schnell dazu kommen, dass der Code einfach in einer Klasse geschrieben wird oder der Code doppelt vorkommt. Dies führt dazu, dass irgendwann niemand mehr in der Lage ist diesen zu lesen. Um dies zu verhindern, kann die Vererbung eingesetzt werden. Hiermit ist es möglich Hierarchien aufzubauen, welche es ermöglichen Methoden, die von anderen Klassen bereits zur Verfügung gestellt wurden, ganz einfach zu verwenden,

2 Was ist Vererbung?

Die Vererbung ist eines der wichtigsten Funktionen bei der objektorientierten Programmierung. Der Aufbau dieser sieht eine Basisklasse und mehrere abgeleitete Klassen vor.

Hier ein klassisches Beispiel:

  • Basisklasse: das „Tier“
  • abgeleitete Klassen: die „Katze“ sowie der „Hund“

Das Tier hat zum Beispiel die Eigenschaft Alter oder Farbe. Da “Hund” und “Katze” von der Klasse “Tier” abgeleitet sind, stehen dem “Hund” sowie der “Katze” diese Eigenschaften zur Verfügung. “Hund” und “Katze” können nun unterschiedliche Methoden haben, wie zum Beispiel die Geräusche, die sie von sich geben. Der Hund bellt und die Katze miaut.

Abbildung 1: Beispiel Klassendiagramm Ableitung

3 Vorüberlegung

Ziel dieses Technical Tips ist es, eine Basisklasse SolidworksFile zu erstellen. Jede SOLIDWORKS-Datei erhält nun z.B. die Eigenschaft einen Pfad zu besitzen oder den Namen in die Datei zu integrierent. Wir verwenden im Folgenden die bereits vorhandene Methode GetFileType().

Die abgeleiteten Klassen bestehen aus folgenden drei Klassen: PartFile, AssemblyFile und DrawingFile. Die Vererbung wird jedoch nur an einer Klasse präsentiert.

4 Klasse erstellen

Da die Klasse SolidworksFile bereits zur Verfügung steht, wird in dem selben Ordner eine neue Klasse erzeugt. Gestartet wird mit der Klasse PartFile. Nachdem eine leere Klasse erstellt wurde, wird diese mit einem Doppelpunk nach dem Klassennamen, gefolgt von dem Klassennamen, welcher vererbt werden soll, vererbt.

Da in der Basisklasse ein Konstruktor verwendet wird, muss dieser auch in der abgeleiteten Klasse vorhanden sein. Der Konstruktor wird hierbei ganz normal erstellt, jedoch folgt hier ebenfalls ein Doppelpunkt mit dem Schlüsselwort „base“. Dieses Schlüsselwort verweist auf den Basiskonstruktor und benötigt ebenfalls einen Parameter, welcher mit runden Klammern angegeben wird. Das Gerüst der abgeleiteten Klasse sieht nun aus wie auf Abbildung 2:

Abbildung 2: Gerüst abgeleitete Klasse PartFile

Sobald dies geschehen ist, kann die Methoden der Basisklasse verwendet werden. In Abbildung 3 wird die PartFile Klasse verwendet und die Methode der Basisklasse aufgerufen.

Abbildung 3: Verwendung der Methoden der Basisklasse

Nun kann für die abgeleitete Klasse eine Methode zur Verfügung gestellt werden. Hier kann zum Beispiel eine Methode, die das Drehen des PartTeils ermöglicht, erstellt werden. Im folgenden sehen Sie eine Beispielmethode:

Abbildung 4: Methode Spin in PartFile

Wird nun ein Objekt der Klasse PartFile instantiiert, kann diese Methode verwendet werden. Bei einer Instanz von SolidworksFile ist dies jedoch nicht möglich.

5 Überschreiben

Es kann jedoch vorkommen, dass die Basisklasse eine Methode zur Verfügung stellt, welche in der abgeleiteten Klasse nicht so funktionieren darf. Um dieses Problem zu lösen, müssen Methoden überschrieben werden. Hierzu muss zuerst die Methode in der Basisklasse mit dem Schlüsselwort „virtual“ deklariert werden, damit ganz genau festgelegt ist, dass diese Methode überschrieben werden darf. Ist das Schlüsselwort gesetzt, sieht die Methode aus wie in Abbildung 5.

Abbildung 5: Methode Virtualisieren

Ist die Basisklasse, wie in der Abbildung gezeigt geschrieben, kann die abgeleitete Klasse nun überschrieben werden. Dies wird mit dem Schlüsselwort „override“ durchgeführt. Ein Beispiel in der PartFile Klasse ist in Abbildung 6 ersichtlich:

Abbildung 6: Überschreiben der Methode

Spannend hierbei ist, dass jederzeit in der abgeleiteten Klasse die Eigenschaften und Methoden der Basisklasse verwendet werden können. Hierzu wird die Basisklasse einfach mit dem Schlüsselwort „base“ aufgerufen und anschliessend wird über einen Punkt die gewünschte Eigenschaft oder Methode hinzugefügt.

6 Fazit

Zusammenfassend lässt sich sagen, dass die Basisklasse dafür zuständig ist, den vererbten Klassen Basisfunktionalitäten zur Verfügung zu stellen. Darunter fallen nicht nur Eigenschaften, sondern auch Methoden. Die abgeleiteten Klassen brauchen somit nur noch durch die spezifischen Methoden ergänzt werden. Diese Funktionalität ist ebenfalls zum Überschreiben der Methoden nützlich, wenn die abgeleitete Klasse etwas anderes machen soll, als die in der Basisklasse zur Verfügung gestellte Methode.

Wir hoffen sehr, dass Ihnen dieser Technical Tip dabei hilft erstellte Klassen zu vererben.

  • Wie hilfreich sind diese Technical Tips für Sie im Alltag?
  • Haben Sie Vorschläge für einen Technical Tip?

Teilen Sie Ihre Erfahrungen mit uns: Am besten als Kommentar, hier oder auf unserer LinkedIn-Seite.

Autor des Artikels

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

Sie möchten keine News aus der CAD-Welt mehr verpassen?

Mit unserem Newsletter bleiben Sie auf dem Laufenden: Produktneuheiten, Tipps und Tricks, Anleitungen, Erfahrungsberichte, Erfolgsgeschichten, Fotos, Veranstaltungsberichte und vieles mehr.

Bleiben Sie informiert und abonnieren Sie unseren Newsletter: