CATIA V5 Programmierung Möglichkeiten und Grenzen von
Transcription
CATIA V5 Programmierung Möglichkeiten und Grenzen von
Know-how für Ihre virtuelle Produktentwicklung. Whitepaper der :em engineering methods AG CATIA V5 Programmierung Möglichkeiten und Grenzen von CATScript, VBS, VBA & CAA © 2013 :em engineering methods AG Know-how für Ihre virtuelle Produktentwicklung. CATIA V5 Programmierung Möglichkeiten und Grenzen von CATScript, VBS, VBA & CAA ¹ API: Application Programming Interface, englisch für Programmierschnittstelle. ² PLM: Product Lifecycle Management (Produktlebenszyklusmanagement) bezeichnet ein IT-System, mit dem alle Daten, die bei der Entstehung, Lagerhaltung und dem Vertrieb eines Produkts anfallen, einheitlich gespeichert, verwaltet und abgerufen werden. ³ CATIA V5: Akronym für Computer Aided Three-dimensional Interactive Application. CATIA V5 hat sich als leistungsfähiges 3D-Konstruktionswerkzeug in vielen PLM-Prozessen etabliert. Gerade aber wenn es um die Integration in unternehmensspezifische Prozessketten geht, ist es meist unabdingbar Anpassungen vorzunehmen. Dies mündet häufig in Zusatzsoftware, die es erlaubt, Informationen der 3D-CAD Daten so aufzubereiten, sodass nachfolgende Prozessketten diese verarbeiten können. CATIA V5 bietet dazu vielfältige Alternativen zur Programmierung an. Die Möglichkeiten reichen von der frei verfügbaren V5 Automation API ¹ bis hin zur kostenpflichtigen CAAV5 API. Den Überblick zu gewinnen, die Vor- und Nachteile abzuwägen und dabei abzuschätzen, für welche konkrete Aufgabe sich welche API am Besten eignet, überfordert vielfach die Anwender. Dieser Artikel zeigt, basierend auf den Projekterfahrungen der :em AG als V5 Development Service Provider und CAAV5 Adopter, wie man Transparenz erzielen und Entscheidungskriterien bei der Auswahl definieren kann. Damit können Kosten und Nutzen einer Anpassungsprogrammierung optimal aufeinander abgestimmt werden. Überblick Erfolgreiches Product Lifecycle Management ² (PLM) beruht auf der Integration von PLM Lösungen in vorhandene Prozesse und Systeme in Unternehmen, damit Produktinformationen über den gesamten Produktlebenszyklus effizient verwaltet werden können. Die Integration bewirkt, dass zwischen unterschiedlichen Anwendungen ausgetauschte Daten seltener manuell konvertiert werden müssen, wodurch die Datenverarbeitung an Produktivität, Effizienz und Zuverlässigkeit gewinnt. Integrationsfähigkeit ist daher die zentrale Anforderung an PLM-Applikationen, da sie die Grundlage für Interoperabilität zwischen Systemen und Prozessen darstellt. Dassault Systèmes (DS) PLM-Lösung für die digitale Produktdefinition und -simulation ist CATIA V5 ³ . Als 3D-Konstruktionswerkzeug ermöglicht es Anwendern, Produktentwicklungen entsprechend ihren Branchenspezifischen Anforderungen durchzuführen. Die Anforderung der Integrationsfähigkeit erfordert einerseits Offenheit von CATIA V5 für Programmierung und andererseits die Fähigkeit, Bestandteile wieder zu verwenden, um in unterschiedlichen Anwendungskontexten gleiches Verhalten oder Fähigkeiten zu erzielen. Für die Entwicklung und Erweiterung wurde daher von DS die Component Application Architecture V5 (CAAV5) entwickelt. Mithilfe von CAAV5 und der zugehörigen Rapid Application Development Environment (RADE) können Entwickler Applikationen konzipieren, modellieren, implementieren, testen und sowohl Quellcode als auch Konfigurationen verwalten. CAAV5 unterstützt dazu C++ und JAVA auf den Betriebssystemen UNIX und Windows. Die CAA © 2013 :em engineering methods AG C++ API bietet umfangreiche Funktionen für die Anpassung von CATIA V5 und ENOVIA LCA V5. Die CAA JAVA-API richtet sich speziell an JAVA-Entwickler, die sich mit der Anpassung von ENOVIA Portal 3d befassen und wird daher im Folgenden nicht weiter betrachtet. Ergänzend zur CAA C++ und JAVA-API bietet Dassault Systèmes mit CATScript, CATIA VBScript und CATIA-VBA die so genannte V5 Automation API speziell für die Programmierung von Makros an. V5 Automation API – Programmieren mit CATScript, CATIA-VBScript & CATIA-VBA Auf der ersten und vergleichsweise einfachsten Stufe der Programmierung bietet CATIA V5 im Rahmen der V5 Automation API die Programmiersprachen CATScript, CATIA-VBScript und CATIA-VBA an. Die V5 Automation API stellt dem Entwickler eine Objekthierarchie zum Zugriff auf die laufende CATIA V5 Session und deren Modelle zur Verfügung. Die komplette API wird auf Windows Systemen zusätzlich über Microsofts (MS) Component Object Model (COM) Technologie allen COM-fähigen Programmiersprachen (wie z. B. MS C# und Python) zugänglich gemacht. Die Erstellung von Scripten wird im interaktiven CATIA V5 mit einfachen Editoren unterstützt, im Falle von VBA sogar mit einer kompletten Entwicklungsumgebung, wie sie auch von MS Office Produkten bekannt ist. 2/8 Know-how für Ihre virtuelle Produktentwicklung. CATIA V5 Programmierung Möglichkeiten und Grenzen von CATScript, VBS, VBA & CAA ⁴ Ein Objekt ist ein Behälter, der Informationen speichert. Diese CATScript, CATIA-VBScript CATScript ist die Grundlage zur Programmierung von Makros. Dassault Systèmes hat dazu eine Untermenge von MS VBScript um Objekte ⁴ und Methoden⁵ erweitert, um die Erzeugung und Manipulation von Geometrie zu ermöglichen. Information kann z. B. ein CATPart aber auch eine Linie oder Fläche sein. ⁵ Eine Methode ist eine Anweisung, mit der ein Objekt erzeugt, verändert oder seine Information ausgelesen werden kann. ⁶ IntelliSense ist eine von MS entwickelte Technologie, die im Quelltexteditor Zusatzinforma- CATScript ist eine Interpretersprache und wird in der Regel verwendet, um Automatisierungen in CATIA V5 vorzunehmen. Makros, die in CATScript geschrieben sind, können unter Windows und unter UNIX eingesetzt werden. Ergänzend zu CATScript unterstützt CATIA V5 auch CATIA VBScript. Dabei ist der Übergang von CATScript zu VBScript fließend, da VBScript das komplette MS-VBScript umfasst, d. h. es beinhaltet als Untermenge auch CATScript. Somit deckt VBScript die gleichen Einsatzgebiete wie CATScript ab. tionen anzeigt, wie z. B. die Eigenschaften und Methoden eines Objektes, dessen Name gerade geschrieben wurde. CATIA-VBA Eine weitere Möglichkeit der Programmierung von V5-Makros bietet CATIA-Visual-Basic-for-Applications (CATIA-VBA). CATIA-VBA ist ebenfalls eine auf „Basic“ basierende Programmiersprache. Die Verwendung von CATIAVBA bietet sich für die Erstellung komplexerer Applikationen an, die über ein Script-Niveau hinausgehen. Hervorzuheben ist hier vor allem die Unterstützung der Programmierung durch eine vollwertige Entwicklungsumgebung. Diese ermöglicht z. B. die Erstellung und Einbindung von grafischen Benutzeroberflächen in Form von Dialogen. Die schrittweise Analyse der Anwendung zur Laufzeit (Debugging) erleichtert die Fehlerfindung bei komplexeren Programmen erheblich. Des Weiteren wird eine höhere Produktivität bei der Erstellung des Codes durch das sog. IntelliSense ⁶ erreicht. Wie Tabelle 1 zeigt, sind CATScript und VBScript plattformunabhängig und daher unter Windows und UNIX lauffähig. Im Gegensatz dazu kann CATIA-VBA ausschließlich unter Windows eingesetzt werden. Ein Anwender, der CATScript beherrscht, kann seine Kenntnisse leicht auf VBScript und CATIA-VBA ausweiten. Insbesondere sind die Grenzen zwischen CATScript und VBScript wegen der großen Schnittmenge an Befehlen fließend. VBScript unterstützt nur zwei einfache, grafische Benutzerdialoge (“InputBox” und “MessageBox“). Anspruchsvollere Benutzerdialoge sind mit CATIA-VBA möglich, aber lediglich unter Windows lauffähig. Typische Einsatzgebiete der V5 Automation API sind die schnelle, effiziente Erstellung von Makros zur Automatisierung von Alltagstätigkeiten und die Entwicklung von Assistenten-Lösungen. Sprache Dateiformat Beschreibung Anwendungsbereich CATScript *.CATScript Reduziertes VBScript Interpreter (WIN, UNIX) Makros (WIN und UNIX), CATIA KnowledgeWare CATIA-VBScript *.catvbs Vollständiges VBScript Interpreter (WIN, UNIX) Makros (WIN und UNIX), CATIA KnowledgeWare CATIA-VBA *.catvba Visual Basic Application Compiler (WIN) Menü-/Dialog-gestützte Anwendungen (WIN) Tabelle 1: Vergleich CATScript, CATIA-VBScript und CATIA-VBA © 2013 :em engineering methods AG 3/8 Know-how für Ihre virtuelle Produktentwicklung. CATIA V5 Programmierung Möglichkeiten und Grenzen von CATScript, VBS, VBA & CAA Überblick über die V5 Automation API Vorteile der V5 Automation API: • Ein Makro-Rekorder zur Aufzeichnung von manuellen Aktionen/Abläufen ist in CATIA V5 integriert. • In den Grundzügen ist VBScript den Sprachen Visual Basic (VB) und VBA ähnlich, so dass mit entsprechenden Vorkenntnissen (z. B. aus der MS Office Programmierung) ein leichter Einstieg möglich ist. • Die V5 Automation API verfügt über eine gute Unterstützung durch die Internet-Community. Nachteile der V5 Automation API: • Es ist nur ein Subset der in CAA enthaltenen Funktionsumfänge verfügbar, dadurch sind bestimmte Funktionalitäten nicht umsetzbar. • Hochkomplexe Anwendungen sind mit V5 Automation nur schwer realisierbar. Notwendige Programmierfähigkeiten: • VB-Programmierer mit V5-Wissen oder • CATIA V5 Anwender mit VB-Kenntnissen Entwicklungskosten: • Mittel Benötigte V5 Lizenzen: • Für die V5 Automation API selbst wird keine spezielle Lizenz benötigt, da sie im CATIA V5 Kern integriert ist • Für die Ausführung der jeweiligen V5 Automation API Aufrufe werden jedoch die Lizenzen für die interaktiven Produkte benötigt. Um z. B. Automation API Aufrufe für Part Design zu verwenden, muss eine Lizenz für CATIA V5 Part Design verfügbar sein. Unterschiede zwischen CATScript/VBScript und CATIA-VBA • Das Debugging ist nur mit CATIA-VBA möglich. • Der Funktionsumfang von CATScript/CATVBS ist gegenüber VBA reduziert. • Gegenüber Visual Basic (VB) und CATIA-VBA kennt CATScript/CATVBS keine Typisierung der Daten, es gibt nur den Datentyp Variant, der in sich alle anderen Typen speichern kann. • Bei CATScript/VBScript ist ein Schutz des eigenen Programm-Codes gegen Einsichtnahme nur in geringem Maße möglich. © 2013 :em engineering methods AG • CATScript/VBScript besitzt nur rudimentäre Unterstützung für Objektorientierung; der Schwerpunkt liegt hier auf traditioneller, prozeduraler Programmierung. CAAV5 – Programmieren mit C++ Auf der zweiten Stufe der Programmierung unterstützt CATIA V5 im Rahmen der CAAV5 API die Programmiersprache C++. Die zugehörige RADE stellt dem Softwareentwickler auf Windows innerhalb der Entwicklungsumgebung von MS Visual Studio über Add-Ins eine umfangreiche Tool-Sammlung zur zur Verfügung: • Tools zur Erstellung von CAAV5 Klassen, CATIA V5 Add-Ins, interaktiven Befehlen, Benutzeroberflächen, ... • Hilfsmittel zum verteilten und parallelen Arbeiten bei großen Entwicklungsteams. • Durchführung von Unit-Test. • Unterstützung statische Code Überprüfungen. • Zugriff auf die CAAV5 Enzyklopädie. • Unterstützung von Remote-Kompilierung auf UNIX. Die RADE ist dabei für alle DS Produktlinien (CATIA, ENOVIA und DELMIA) identisch. Die typischen Einsatzgebiete der CAA C++ API sind: • Entwicklung von CATIA V5 Add-Ins mit eigenen Werkzeugleisten, Befehlen und Benutzungsoberflächen. • Automatische Prüfung von unternehmensspezifischen Regeln und Standards. • Erweiterung des CATIA V5 Datenmodells um neue Featuretypen oder neue geometrische Objekte. • Anreicherung bestehender CATIA V5 Featuretypen um zusätzliche Daten und Verhaltensweisen. • Erstellung CAA V5 basierter Applikationen und Produkte in Form von Workbenches und Workshops. • Anbindung von externen Anschlusssystemen und Fremdapplikationen. • Entwicklung von CATIA V5 Applikationen für den Batch-Betrieb. 4/8 Know-how für Ihre virtuelle Produktentwicklung. CATIA V5 Programmierung Möglichkeiten und Grenzen von CATScript, VBS, VBA & CAA ⁷ CDC: CAA C++ Extended Development Configuration ⁸ CDV: CAA C++ Base Development Configuration CAA C++ API Vorteile der CAA C++ API: • Integration der RADE in MS Visual Studio. • Es steht eine umfassende Anzahl von APIs zur Verfügung, welche nahezu alle Anwendungsbereiche von CATIA V5 abdecken. • CAA C++ hat eine gemeinsame Code-Basis für WINDOWS und UNIX. • CAA C++ bietet Performanz und Robustheit. • Die objektorientierte Architektur von C++ ermöglicht wesentlich komplexere und umfangreichere Applikationen im Vergleich zur V5 Automation API. • Die einfache Einbindung von externen C++ Schnittstellen anderer Anbieter sichert eine weitgehende Integrationsfähigkeit. Nachteile der CAA C++ API: • Bei Eigenentwicklung sind die Lizenzkosten für CDV/CDC zu beachten. • Es wird eine externe Entwicklungsumgebung/ Compiler benötigt (MS Visual Studio). • Die nahtlose Integration der CAA C++ Applikationen und Add-Ins in existierende CATIA V5 Infrastrukturen erfordert in der Regel einmalig erhöhte, administrative Aufwände. Programmierfähigkeiten: • C++/CAA V5 Entwickler (Spezialist) mit guten CATIA V5 Kenntnissen © 2013 :em engineering methods AG Entwicklungskosten: • Hoch V5-Lizenzen: • CDC ⁷ oder CDV ⁸ zur Erstellung und Kompilierung von Anwendungen und Add-Ins. • CATIA V5 Lizenz für den entsprechenden Anwendungsbereich/Workbench. Entscheidungskriterien V5 Automation vs. CAAV5 Viele Wege führen nach Rom, aber manche sind besser gangbar als andere! Mit V5 Automation und CAAV5 bietet Dassault Systèmes eine Vielzahl möglicher APIs, abgestimmt auf unterschiedliche Zielsetzungen, geeignet für simple bis hochkomplexe Entwicklungen sowohl für Endanwender als auch für Entwickler. Dabei den Überblick zu behalten, die Vor- und Nachteile der APIs abzuwägen und abzuschätzen, für welche konkrete Aufgabe sich nun welche API am Besten eignet, überfordert vielfach die Anwender. Die folgenden Kriterien spiegeln die Erfahrungen der :em AG als V5 Development Service Provider und CAAV5 Adopter wieder und sollen als Entscheidungshilfen dienen. 5/8 Know-how für Ihre virtuelle Produktentwicklung. CATIA V5 Programmierung Möglichkeiten und Grenzen von CATScript, VBS, VBA & CAA Mit Hilfe der folgenden Checkliste kann der Anwender durch einfaches Ankreuzen festhalten, welche Betriebssystemplattformen zu unterstützen sind, welche Anwendungskomplexität zu erwarten ist, ob eine Benutzerführung oder Benutzeroberfläche erforderlich ist, welches Budget für die Entwicklung zur Verfügung steht, welche Anwenderzahl zu erwarten ist und ob bestimmte Sicherheitsanforderungen eingehalten werden müssen. Die anschließende Auswertung der Verteilung der Kreuze auf die jeweiligen Spalten zeigt in der Regel den Trend zu einer der drei Möglichkeiten (CATScript/VBScript, CATIA-VBA und CAAV5 C++) an und gibt gleichzeitig Hinweise auf mögliche Kompromisse die ggf. in Kauf genommen werden müssen. Neben den Kriterien, die die Leistungsfähigkeit und Einsatzmöglichkeiten der APIs betreffen, spielt auch das vorhandene Qualifikationsprofil bei den Anwendern eine entscheidende Rolle. So können die Entwicklung neuer Datentypen mit Hilfe von so genannten UDFs sowie die Abbildung von Verhalten mit Hilfe von CATIA V5 KnowledgeWare von erfahrenen CATIA V5 Experten durchgeführt werden. Für die Automatisierung manueller Abläufe mit der CATIA V5 Automation API ist jedoch ein Programmierer mit speziellen VB-Kenntnissen und CATIA V5 Basiskenntnissen notwendig. Anspruchsvolle Benutzungsoberflächen und komplexes Verhalten machen einen erfahrenen CAAV5 C++ Experten unabdingbar. CATScript/ VBScript CATIA-VBA CAAV% C++ Plattformen UNIX und Windows Nur Windows UNIX und Windows Anwendungskomplexität Überschauber Geringe bis mittlere Komplexität Mittlere bis hohe Komplexität Benutzerführung Keine/minimal Grafische Benutzeroberflächen Grafische Benutzeroberflächen Budget Klein Mittel Mittel bis groß Anwenderzahl Einzelne Besucher Einzelne Besucher Bereichs-/unternehmensweiter Produktvertrieb Sicherheitsanforderungen Niedrig Niedrig bis mittel Hoch Tabelle 2 – Checkliste Leistungsfähigkeit und Einsatzmöglichkeit © 2013 :em engineering methods AG 6/8 Know-how für Ihre virtuelle Produktentwicklung. CATIA V5 Programmierung Möglichkeiten und Grenzen von CATScript, VBS, VBA & CAA Know-How Softwareentwicklung CAAV5 API CATIA V5 Automation API CATIA V5 Experte Visual Basic Objektorientierte Programmiersprache (c++, JAVA) Ausbildung CATIA V5 Basics UDF CATIA V5 Basics CATIA V5 Basics CATIA V5 Basics VB Programmierer C++/CAA Experte CATIA V5 Knowledge Ware Know-How Konstruktion Bild 1 – Fähigkeiten und Ausbildung Fazit Die Vielfalt der Kriterien und Möglichkeiten, nach denen man V5 Automation und CAAV5 bewerten kann (von der Portabilität bis zur Gratis-Verfügbarkeit), zeigt, dass es keine eindeutig und allgemein „beste“ API geben kann. D. h. die Entscheidungskriterien sind in der Regel nicht hinreichend, um der einen oder der anderen Möglichkeit eindeutig oder gar generell den Vorzug zu geben. In der Realität sind immer Kompromisse nötig, deren Gewichtung vom individuellen Anwendungsfall und den jeweiligen Rahmenbedingungen abhängt. Um dem Endanwender nach getroffener Entscheidung qualifizierte CAAV5 Entwicklungsservices zu garantieren und unabhängigen Softwareanbietern die Möglichkeiten der CAA V5-Plattform für die Entwicklung und den Vertrieb von Anwendungen zu bieten, hat DS das V5 Development Service Provider © 2013 :em engineering methods AG Programm sowie das CAAV5 Adopter Programm geschaffen. :em AG – V5 Development Service Provider & CAAV5 Adopter Das V5 Development Service Provider Programm ist ein Netzwerk von Unternehmen, die über die nötigen Kompetenzen und Kenntnisse verfügen, um kundenspezifische Applikationen auf der Basis von CAA V5 zu entwickeln. Ziel ist die Lösung spezifischer Anforderungen von DS-Kunden hinsichtlich CAA V5basierter Services, darunter: • Kundenspezifische Anwendungsentwicklung • Individuelle Auslegung von Anwendungen auf V5-Basis • Integration der V5 PLM-Lösungen von DS mit Drittlösungen 7/8 Know-how für Ihre virtuelle Produktentwicklung. CATIA V5 Programmierung Möglichkeiten und Grenzen von CATScript, VBS, VBA & CAA Als V5 Development Service Provider ist die :em AG als Anbieter in der Lage, dem Endanwender Services zur Verfügung zu stellen, die die CAA V5Plattform unterstützen und die beim Kunden auch ohne eigene CAAV5-Umgebung zum Einsatz kommen können. Die :em AG bietet als V5-Entwicklungspartner Entwicklungsfähigkeiten und Know-how für die PLM-Lösungen von DS und trägt zur Bereitstellung von Lösungen bei, die die Anforderungen in der Fertigungsindustrie erfüllen. Um darüber hinaus möglichst umfassend Geschäftsprozesse zu unterstützen, hat Dassault Systems zusätzlich das CAAV5 Adopter Programm für mehrwertbasierte Software-Entwicklungspartner ins Leben gerufen, die mit ihren eigenen CAAV5-Produkten die Lösungen von DS ergänzen und somit den Einsatz der V5-Plattform optimieren und Innovationen fördern. So integriert z. B. die :em AG als CAAV5 Adopter die eigene :TBeditor Lösung in das CAD-Standardprodukt CATIA V5 und bietet so den Konstrukteuren eine Applikation für das effiziente Erstellen und Editieren von Zeichnungsköpfen an. Herausgeber: Warenzeichen: :em engineering methods AG Alle im Newsletter genannten Produkte, Namen oder Firmen- Rheinstraße 97 namen sind Warenzeichen bzw. eingetragene Warenzeichen 64295 Darmstadt der jeweiligen Eigentümer/ Hersteller. Aus dem Fehlen Telefon +49 (0) 6151 . 95 0 54 20 der Markierung kann nicht geschlossen werden, dass eine Telefax +49 (0) 6151 . 950 54 21 Bezeichnung ein freier Warenname ist. Erik Claassen, Stephan Kümpel mail: [email protected] www.em.ag Rechtliche Hinweise: Die :em engineering methods AG übernimmt keinerlei Sitz und Registergericht Gewähr für die Aktualität, Korrektheit, Vollständigkeit oder Darmstadt, HRB 8644 Qualität der bereitgestellten Informationen. Der Newsletter USt.-IdNr: DE 224250979 und alle in ihm enthaltenen Beiträge sind urheberrechtlich StNr: 07 232 14948 geschützt. Eine auszugsweise Verwendung durch Entnahme von Informationen aus dem Whitepaper ist untersagt. Der Vorsitzender des Aufsichtsrates: Whitepaper darf weiteren Interessenten zur Verfügung Benno Rösch, Betriebswirt (VWA) gestellt werden. Vorstand: Dr. Erik Claassen Urheber- und Verlagsrecht: Das Whitepaper und alle in ihm Christian Donges veröffentlichten Beiträge und Abbildungen sind urherber- Dr. Sven Kleiner rechtlich geschützt. Nachdrucke, Vervielfältigungen, Überset- Dr. Marcus Krastel (Vors.) zungen, Mikroverfilmungen, Kopien, sowie Speicherung und Verarbeitung in elektronischen Systemen, auch auszugs- Redaktion: weise, bedürfen der ausdrücklichen schriftlichen Genehmi- Dr. Marcus Krastel gung der :em engineering methods AG. Erfüllungsort und Gerichtsstand ist Darmstadt. Gestaltung/Layout/Grafik: Eva Anhäuser © 2013 :em engineering methods AG Weitere Whitepaper finden Sie zum Download unter www.em.ag 8/8