Software-as-a-Service (SaaS) ist inzwischen nichts Exotisches mehr. SaaS-Architekturen bieten eine breite Palette von Vorteilen, die manchmal nicht auf den ersten Blick herausstechen, aber neue Prozesse und Funktionen oft erst ermöglichen. Mit Onshape kam im Dezember 2015 das erste Cloud-native CAD-System auf den Markt, das System ist ein gutes Beispiel dafür, dass Cloud mehr ist als „nur“ Speicherplatz und Rechenleistung ohne Grenzen. In einer Artikelreihe möchte ich diese Vorteile genauer analysieren. Heute geht es um die Integration zusätzlicher Funktionen in Onshape und die Einbindung des Systems in Entwicklungsumgebungen.
Die reine 3D-Modellierung reißt heute niemand mehr vom Hocker, in Zeiten des digitalen Zwillings wird das CAD-System zu einem von vielen Systemen in einer mehr oder weniger stark integrierten Unternehmens-IT. Das 3D-Modell dient als Basis vieler Prozesse und eine ganze Reihe von Werkzeugen unterstützen den Konstrukteur, von der Simulation über Kinematik und Visualisierung bis hin zu PLM– und CAM-Systemen. Doch wie bindet man ein Cloudsystem wie Onshape in solche Entwicklungsumgebungen ein?
In „herkömmlichen“ Entwicklungsumgebungen mit mehreren lokal installierten Systemen für Modellierung, Simulierung und andere Spezialaufgaben rund um das Modell ist die CAD-Datei das typische Austauschmedium. Man muss also darauf achten, dass beispielsweise die Simulationslösung die Dateien des CAD-Systems möglichst nativ ein- und eventuell auch wieder auslesen kann.
Dieser Datenaustausch über Dateien hat den großen Nachteil, dass das Zielsystem in der Lage sein muss, die Informationen richtig und möglichst vollständig zu interpretieren, die das Quellsystem in die Datei geschrieben hat. Dabei geht es immer stärker um Metadaten, die neben den eigentlichen 3D-Daten vom Konstrukteur festgelegt und im CAD-System eingegeben wurden. Wird schon im CAD-System festgelegt, aus welchem Material ein Bauteil gefertigt werden soll, können weitere Systeme wie die Festigkeitssimulation oder das Renderprogramm diese Daten nutzen, statt sie nochmals vom Bediener abzufragen.
API statt Dateien – der Onshape-Weg zu den Daten
Nun gibt es in Onshape ja, wie wir schon beschrieben haben, keine Dateien. Die erzeugten Geometrien und andere Daten liegen in Form von Datenschnipseln in einer Datenbank. Nur Onshape selbst kann diese Daten zu einem kompletten Modell zusammensetzen, so dass auch bei der Kommunikation mit Zusatzprogrammen Onshape diese Daten liefern muss. Für solche Anwendungen bieten Cloudlösungen üblicherweise eine API – Application Programming Interface oder Programmierschnittstelle.
Über eine solche API können Systeme von außen auf das Zielsystem zugreifen und Daten anfordern. Das Zielsystem kann auch selbsttätig Daten oder Informationen über bestimmte Ereignisse liefern, dazu kommen sogenannte Webhooks zum Einsatz. Bei Webhooks handelt es sich um Internetadressen, auf denen ein Programm lauschen und auf Änderungen reagieren kann. So ist Onshape beispielsweise in der Lage, einem externen PLM-System zu signalisieren, wenn eine Datei einen bestimmten Zustand erreicht hat, etwa „freigegeben“.
Der Vorteil von APIs ist zum einen, dass viele davon einen standardisierten Befehlssatz nutzen, der in der REST-Architektur definiert ist – es ist also für den Programmierer einer externen Applikation relativ einfach, die Schnittstelle und deren Bedienung zu verstehen und diese zu nutzen. Zum anderen liefern Programme über APIs direkt nutzbare, strukturierte und verständliche Daten – im Gegensatz zu einer Datei, deren Format in vielen Fällen nicht dokumentiert ist und das der Formatentwickler jederzeit ändern kann. APIs sind üblicherweise umfassend dokumentiert, was die Nutzung weiter vereinfacht – ebenfalls im Gegensatz zu den meisten sogenannten proprietären Dateiformaten.
Onshape besitzt nicht nur eine solche API, sondern geht noch darüber hinaus, indem es eine eigene Programmiersprache namens Feature Script enthält. Das Besondere ist, dass quasi alle Funktionen von Onshape in Feature Script entstanden sind – von Befehlen wie „Extrudieren“ oder „Fase“ bis hin zu Part Studio, der Modellierumgebung selbst. Damit ist es für Programmierer von Zusatzanwendungen sehr einfach, weit in das System einzugreifen, Daten zu nutzen, eigene Funktionen zum Funktionsumfang des CAD-Systems hinzuzufügen oder die Funktionen der Onshape Standard Library zu nutzen.
Feature Script – Eine eigene Programmiersprache für Onshape
Damit lässt sich Onshape sehr weitgehend von außen steuern und Zusatzapplikationen lassen sich nahtlos in das System integrieren. In den Custom Feature Spotlights, einer Beispielsammlung für Programmierer, wird beispielsweise gezeigt, wie mit Hilfe von Feature Script Programmen eine Funktion zur Erzeugung einer dreidimensionalen Verkabelung entsteht. Basis der Verkabelung ist eine CSV-Tabelle, in der die Anfangs- und Endpins der einzelnen Kabel hinterlegt sind. So einfach ist es, Onshape neue Funktionen hinzuzufügen.
Und so bietet eine Vielzahl von Entwicklern, Anwendern und natürlich Onshape beziehungsweise PTC selbst Erweiterungen für das CAD-System an, von einfachen, kostenlosen Effizienztools bis hin zu komplexen PLM- oder Simulationssystemen bekannter Hersteller. Ein Streifzug durch den App-Store lohnt sich in jedem Fall, um zu erfahren, wie sich Onshape an die eigenen Anforderungen anpassen lässt. Was sich dort nicht findet, lässt sich in Feature Script selbst programmieren. Da die Programmierphilosophie von Feature Script an Sprachen wie C++ oder Javascript angelehnt ist, ist wenig Spezialwissen notwendig, um das System zu erweitern. Und nicht zuletzt hilft eine rege Community, wenn man einmal nicht weiterkommt.
Onshape unterscheidet sich technisch sehr von anderen Systemen und bietet deshalb völlig neue, bisher undenkbare Möglichkeiten. In dieser Serie stelle ich diese Besonderheiten jeweils einzeln vor. Testen Sie Onshape kostenlos selbst – nach einer kurzen Anmeldung steht Ihnen das System direkt zur Verfügung! Onshape stellt im Learning Center einen interessanten Kurs namens Hands-On Test Drive zur Verfügung, der einen guten Überblick über die CAD-Funktionen bietet.