catia v5 automatisieren - images.buch.de · dieses praxisbuch, basierend auf catia v5 release 18,...
TRANSCRIPT
Jens Hansen
Kochbuch
CATIA V5 automatisieren
Hans
enKo
chbu
ch
CATI
A V5
auto
mat
isie
ren
9 783446 416215
ISBN 978-3-446-41621-5
www.hanser.de
Jens Hansen
Kochbuch
CATIA V5 automatisierenVom Powercopy bis zur C#-Programmierung
Dieses Praxisbuch, basierend auf CATIA V5 Release 18, bietet über 40 fertige Lösungenin Form von Makros, Powercopies und C#-Applikationen. Diese „Kochrezepte“ sind eineSammlung authentischer Kundenanforderungen und Anwenderwünsche aus der Praxis.
Das Buch wendet sich an:� Konstrukteure, die sich wiederkehrende und langwierige Aufgaben ersparen wollen� Administratoren, die für die Makroverwaltung nach Methoden außerhalb von PDM-
Systemen suchen� Programmierer, die Lösungen als Vorlage für ihre spezifischen Probleme benötigen� Studenten, die tiefergehende Anleitungen für die Makroprogrammierung suchen
Folgende Anwendungsbereiche werden abgedeckt: • Dateisystem und Infrastruktur • Bauteile und Baugruppen • Flächen • Zeichnungsableitung • Einbindung von Excel,Word & Co. • Windows-Applikationen mit C# • Verwaltung von Makros mit denBordmitteln von CATIA 5
Erläutert werden Makros für die Umstrukturierung von Baugruppen, das Vergleichen von Bauteilen, die Darstellung des Bauraums, das Einfärben von Gewinden und dieBeschriftung von Bauteilen. Weitere Themen sind u.a. die Generierung von Netzlinien in Zeichnungen, dynamisches Ändern des Schriftkopfes und der Zugriff über Excel,Word und Powerpoint.
Unter www.mecmod.de/hanser finden sich alle im Buch vorgestellten Lösungen.
Dipl-Ing. Jens Hansen ist technischer Leiter der Firma CADsim GmbH und Moderatorder CATIA-Foren auf CAD.DE.
41621_Hansen_190x230 03.11.2008 9:50 Uhr Seite 1
Jens Hansen
KochbuchCATIA V5 automatisieren
Vom Powercopy bis zur C#-Programmierung
Konstruktionsmethodik zur Modellierung
von Volumenkörpern
Bleiben Sie einfach auf dem Laufenden: www.hanser.de/newsletterSofort anmelden und Monat für Monatdie neuesten Infos und Updates erhalten.
v
001_004_hansen_catiaV5 11.11.2008 11:15 Uhr Seite 1
001_004_hansen_catiaV5 11.11.2008 11:15 Uhr Seite 2
Jens Hansen
Kochbuch CATIAV5
automatisierenVom Powercopy
bis zur C#-Programmierung
001_004_hansen_catiaV5 11.11.2008 11:15 Uhr Seite 3
Dipl.-Ing. (FH) Jens Hansen ist Technischer Leiter der CADsim GmbH in Aachen und moderiert die
CATIA-Foren auf CAD.de.
Alle in diesem Buch enthaltenen Informationen, Verfahren und Darstellungen wurden nach bestem
Wissen zusammengestellt und mit Sorgfalt getestet. Dennoch sind Fehler nicht ganz auszuschlie-
ßen. Aus diesem Grund sind die im vorliegenden Buch enthaltenen Informationen mit keiner Ver-
pflichtung oder Garantie irgendeiner Art verbunden. Autor und Verlag übernehmen infolgedessen
keine juristische Verantwortung und werden keine daraus folgende oder sonstige Haftung über-
nehmen, die auf irgendeine Art aus der Benutzung dieser Informationen – oder Teilen davon –
entsteht.
Ebenso übernehmen Autor und Verlag keine Gewähr dafür, dass beschriebene Verfahren usw. frei
von Schutzrechten Dritter sind. Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Waren-
bezeichnungen usw. in diesem Buch berechtigt deshalb auch ohne besondere Kennzeichnung nicht
zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzge-
bung als frei zu betrachten wären und daher von jedermann benutzt werden dürften.
CAD.DE ist mit über 85.000 aktiven Mitgliedern und über 2,2 Mio. Besuchern pro Monat die größ-
te CAD-CAM-CAE Community im deutschsprachigen Raum. Von den 500 CAx-Produktforen mit
1,4 Mio. Beiträgen werden 180 Foren von hochkarätigen Moderatoren betreut. Das Prinzip „Geben
und Nehmen“ auf CAD.DE gewährleistet ein breites Spektrum an Meinungen und ist Garant für die
Unabhängigkeit von CAD.DE.
Bibliografische Information der Deutschen Nationalbibliothek:
Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbiblio-
grafie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.
Dieses Werk ist urheberrechtlich geschützt. Alle Rechte, auch die der Übersetzung, des Nachdruckes
und der Vervielfältigung des Buches, oder Teilen daraus, vorbehalten. Kein Teil des Werkes darf
ohne schriftliche Genehmigung des Verlages in irgendeiner Form (Fotokopie, Mikrofilm oder ein
anderes Verfahren) – auch nicht für Zwecke der Unterrichtsgestaltung – reproduziert oder unter
Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden.
© 2009 Carl Hanser Verlag München (www.hanser.de)
Gesamtlektorat: Sieglinde Schaerl
Copy editing: Sandra Gottmann, Münster-Nienberge
Coverkonzept: Marc Müller-Bremer, www.rebranding.de, München
Coverrealisation: Stephan Rönigk
Datenbelichtung, Druck und Bindung: Kösel, Krugzell
Printed in Germany
ISBN 978-3-446-41621-5
5
Inhalt
Vorwort ....................................................................... 7
1 Geräte und Hilfsmittel – Editoren .......11 1.1 Editor für Powercopies ..........................11 1.2 Editoren für Makros ohne
User-Interface .........................................11 1.3 Editoren für Makros mit
User-Interface .........................................13 1.4 Externe Applikationen...........................14
2 Vorbereitungen.........................................17 2.1 Der Makro-Editor ...................................17 2.1.1 Insert object resolution..........................18 2.1.2 View Object Browser..............................19 2.2 Der VBA-Editor ......................................23 2.2.1 Fenster: Project Explorer.......................24 2.2.2 Properties ................................................27 2.2.3 Watch.......................................................27 2.2.4 IntelliSense..............................................30
3 Oft benutzt und nützlich .......................33 3.1 Grundrezepte...........................................33 3.2 Objekte für die Selektion.......................36
4 Dateisystem und Infrastruktur..............41 R1 Datenschleuder – ein VBA-Makro .......41 R2 Starten eines VBA-Makros über ein
Symbol in V5..........................................55 R3 Synchronisieren von Messungen und
Parametern..............................................57 R4 Umbenennen aller Instanzen in einer
Baugruppe ...............................................61
R5 Rootprodukt in einem Dateiordner finden.......................................................67
R6 Reorganisieren eines Dateiordners.......74
5 Bauteile und Baugruppen ...................... 91 R7 Aktives Fenster dauerhaft drehen........91 R8 Ausschalten der Transparenz aller
Bauteile einer Baugruppe ......................94 R9 Verdecken von Achsensystemen,
Ebenen, Punkten und Linien ................97 R10 Isolieren und fixieren von
Used-Edges in einer Skizze.................100 R11 Umbenennen aller booleschen
Operationen...........................................105 R12 Bauteile untereinander vergleichen...109 R13 Elemente einfach umbenennen ..........119 R14 VBA-Makro Bauteil-Beschriftung......123 R15 Starten des VBA-Makros „Bauteil-
Beschriftung“ ........................................140 R16 Das Volks-DMU: Schnittansicht einer
Baugruppe .............................................141 R17 Rohmaße ausgeben ..............................160 R18 Bauraum darstellen ..............................172 R19 Entfernungen zwischen
Veröffentlichungen ..............................187 R20 Hintergrundfarbe ändern ....................190 R21 Gewinde einfärben ...............................192
6 Flächen .....................................................197 R22 Powercopy Ballcorner_const ..............197 R23 Powercopy Ballcorner_var..................205 R24 Powercopy Hole_round .......................209 R25 Powercopy Hole_square ......................211 R26 Powercopy Hole_square_rounded......212
Inhalt
6
R27 Powercopy Hole_slot ...........................213 R28 Umbenennen der letzten Fläche in
einem geometrischen Set ....................214 R29 Endpunkte für jedes Teilstück einer
Kurve......................................................218 R30 Parametrisches Zerlegen einer
Fläche.....................................................224 R31 Flächen mit gleicher Farbe
zusammenfügen ...................................228
7 Zeichnungen........................................... 237 R32 Markieren aller unmaßstäblichen
Maße ......................................................237 R33 Zeichnungsstempel ..............................240 R34 Netzlinien erzeugen .............................244 R35 Netzlinien erzeugen –
Variante: Punkte indizieren................255 R36 VBA-Makro Schriftkopf-Editor ..........264
8 V5 & MS Office - EinTopf.................... 273 R37 Punktkoordinaten aus V5 nach
Excel ......................................................273 R38 Alle Bauteilvarianten
durchrechnen ........................................281 R39 Screenshot von V5 direkt aus MS
Word/PowerPoint.................................298 R40 Einbinden von Makros unter
MS Office...............................................303
9 Sahnetorten – C#-Anwendungen ..... 305 R41 Zugriff über V5-Bibliotheken.............306 R42 Zugriff ohne Bibliotheken –
Late Binding..........................................325 R43 Sprühsahne – Quellcodebeispiele
für Late Binding ...................................341 R44 MiniMax – Variantenberechnung......343
10 Küche – das Verwalten von Makros ..345 10.1 Mehrsprachigkeit..................................345 10.2 Versionsverwaltung .............................350 10.2.1 Szenario 1: Firma erstellt und
verwaltet Makros im eigenen Haus ...350 10.2.2 Szenario 2: Der Dienstleister ..............353 10.3 Schutz von VBA-Projekten.................356 10.3.1 Passwort für das VBA-Projekt
„Kochbuch“ ...........................................357
Index ...................................................................360
7
Vorwort
Am Anfang war der Wunsch ... „Geht das nicht einfacher?“ „Kann man das nicht irgendwie automatisieren?“ Die Antwort ist dann meistens der Hinweis auf Makros, die explizit dafür geschrieben werden müssten.
Der normale V5-Anwender winkt hier schon ab, weil Programmierung von Makros scheinbar noch schwerer zu erlernen ist als die Erzeugung von Freiformflächen; und das ist schon nur was für Spezialisten – glaubt man ...
Der ambitionierte V5-Anwender (später auch „Spezialist“ oder „Key-User“ genant) nimmt sich DAS Einsteigerbuch für die Makroprogrammierung zur Hand („Makro-programmierung mit Visual Basic Script“ von Dieter R. Ziethen) und versucht, sich durch die verwirrende Struktur von V5-Klassen zu arbeiten.
Die einzige offizielle Dokumentation seitens V5 – die Datei „V5Automation.chm“ (zu finden im Verzeichnis „..\Dassault Systemes\B18\intel_a\code\bin\“) – ist dabei leider nicht als vollständige Dokumentation aller Funktionen seitens der offenen Makro-Schnittstelle zu verstehen. Zwar sind alle Klassen von V5 aufgelistet, aber oft fehlen einige Funktionen und Eigenschaften, oder die Syntaxbeschreibung ist veraltet und basiert zum Teil noch auf R6! Immer noch findet man in der Online-Dokumentation Beispielskripte, die mit der aktuellen V5-Version nicht funktionie-ren.
Als weitere zugängliche Quelle im deutschsprachigen Raum bleibt dann nur noch das CATIA-V5-Forum für die Programmierung auf www.CAD.DE. Die gängigsten Problemfälle können hier besprochen und meistens gelöst werden – oder zumindest ein richtiger Denkanstoß verhilft dann zum gewünschten Ergebnis.
Am Ende geht jedoch viel Zeit damit verloren, die Verwendung der Funktion und Eigenschaften durch das beliebte Tryand-error-Prinzip zu ergründen.
Verzweiflung macht sich dann breit, wenn es wirklich gar nicht geht; wenn sich die gewünschte Funktion einfach nicht per Makro steuern lässt. Denken Sie also daran, wenn Sie seit zwei Wochen nach einer Lösung für eine einzige Funktion suchen:
Nicht alles, was man in V5 von Hand machen kann, lässt sich per Makro umsetzen
Die offene Makro-Schnittstelle deckt bei Weitem nicht alle Funktionalitäten von V5 ab. Die Hauptbereiche wie Skizzierer, das Part Design und Assembly Design sind gut mittels Makro zu steuern. Geht man in das Drafting oder beschäftigt man sich mit FEM-Analysen, stößt man schon bald an Grenzen.
Hier ist die Dokumentation noch dürftiger, es beschäftigt sich kaum jemand mit der Thematik, die einem weiter helfen könnte, und das Try-and-error-Prinzip liefert nur die Info, dass etwas nicht funktioniert, aber sagt nicht warum.
Vorwort
8
Hier spielt nun die Erfahrung eine Rolle. Wie viele Makros und Anwendungen hat man schon geschrieben, wo ähnliche Funktionen vorkamen? Ideal wäre eine große Sammlung von Beispielmakros zu allen Lebenslagen in V5, wo man sich das geeig-nete Stückchen Quellcode herausholt, um endlich zum Ziel zu kommen.
Ich habe im Vorfeld im oben besagten V5-Forum eine „Wunschliste“ veröffentlicht, wo jeder seine Wünsche für ein Makro, eine Powercopy oder sogar eine Software-Applikation eintragen konnte. Ich möchte in diesem Buch einen kleinen Schritt in diese große Sammlung von Makros für alle Lebenslagen machen und hier den Quellcode veröffentlichen, der manchen engagierten Makro-Programmierern schlaf-lose Nächte ersparen kann.
Neben der Programmierung von reinen Makros soll auch auf die Möglichkeit einge-gangen werden, „von außen“ auf CATIA V5 zuzugreifen; z.B. um Informationen aus MS Excel oder MS PowerPoint nach V5 und wieder zurück zu transportieren oder mit einer eigenen Windows-Applikation (geschrieben in C#) eine Funktion direkt in V5 zu steuern.
Oft taucht im Umfeld von V5-Programmierung das Stichwort „CAA“ auf. Dies ist eine Programmiersprache, mit der CATIA 5 unmittelbar programmiert werden kann. Allerdings ist diese Sprache aufgrund der hohen Lizenzgebühren und der ein-schränkenden Lizenzbedingungen sowie der Komplexität der Sprache den reinen Premium-Partnern von Dassault Systemes und den Systemhäusern vorbehalten. Daher wird CAA in diesem Buch kein Thema sein.
Ich wünsche allen Lesern viel Spaß und Ausdauer bei dieser Lektüre, und ich wün-sche mir, dass sie Ihnen bei Ihrer täglichen Arbeit nützt und Sie schneller an die eine oder andere Lösung kommen.
Wenn Sie Vorschläge, Fragen und weitere Wünsche zu diesem Buch haben, so kön-nen Sie mich direkt unter
kontaktieren. Auf der Webseite
http://www.mecmod.de/hanser/
finden Sie dann auch die Möglichkeit, alle hier behandelten Makros und C#-Appliktionen herunterzuladen.
Das Passwort für die Freischaltung finden Sie hier im Buch in Kapitel 10, „Küche“.
Vorwort
9
Danke schön ... vor allem meiner Frau, die mir den Rücken für die Arbeit an diesem Buch freigehal-ten hat. Ebenso ein „Dankeschön“ an Frau Schärl und Frau Weilhart vom Hanser Verlag für die Geduld und die Unterstützung meiner Autorentätigkeit. Ein „Danke-schön“ auch allen Teilnehmern der CATIA-Foren für die vielen Wünsche, Tipps, Hinweise und Anregungen. Nicht zu vergessen meine Kunden für die praxisrelevan-ten Anregungen, sodass man nicht übers Ziel hinaus entwickelt.
Kerpen, im September 2008 Jens Hansen
11
1 Geräte und Hilfsmittel – Editoren
Wenn wir von Makros oder sogar Applikationen reden, so ist doch jedem klar, dass hierbei fleißige Tipparbeit in Form von Tastatureingaben nötig ist. Der Code muss irgendwo aufgeschrieben und irgendwie an V5 übermittelt werden. Kommen jetzt noch Benutzer-Interfaces (Windows-Fenster für den User) ins Spiel, wird schnell das Wort „Editor“ oder „IDE“ fallen. Bekanntlich handelt es sich hierbei um eine mehr oder weniger komfortable „Text-Schreib-Oberfläche“ worin der Quellcode niederge-schrieben wird. Ausnahme macht hierbei die Erstellung von Powercopies.
1.1 Editor für Powercopies
Powercopies werden nicht mittels Quellcode „programmiert“, sondern eher durch Selektion in V5 erstellt. In den bekannten V5-Dialogfenstern werden die gewünsch-ten Elemente für das Powercopy ausgewählt und auf Wunsch mit Parametern ver-sehen.
1.2 Editoren für Makros ohne User-Interface
Die nächste Stufe der Automation sind Makros ohne eine grafische Interaktion mit dem Anwender – lässt man einfachste Meldungs- und Eingabefenster außen vor.
Diese Makro müssen geschrieben werden; sei es im V5-eigenen Editor, der ein paar ganz nette und hilfreiche Features besitzt – dazu später –, oder in jedem beliebigen Texteditor wie z.B. WordPad von Windows, wobei das Makro einzig und allein durch Abspeichern mit der Endung „.CATScript“ als solches definiert wird.
Bild 1.1: Dialogfenster für Powercopies
1 Geräte und Hilfsmittel – Editoren
12
Neben reinen Texteditoren gibt es natürlich eine Reihe besserer Programme als „WordPad“, die aber ebenfalls kostenlos nutzbar sind. Ich persönlich ziehe „PSPad“
Bild 1.2: Makro-Editor
Bild 1.3: Makro mittels WordPad
1.3 Editoren für Makros mit User-Interface
13
von Jan Fiala (http://www.pspad.com/de/) vor, da hierbei auch Zeilennummern angezeigt werden, die später bei der Fehlersuche sehr hilfreich sind.
1.3 Editoren für Makros mit User-Interface
Soll dem Anwender ein Makro mit einer grafische Oberfläche geboten werden, muss quasi der V5-eigene VBA-Editor benutzt werden. Hierbei können V5-eigene Appli-kationen erstellt werden, die eine grafische Oberfläche darstellen können; besonders schön sind diese allerdings nicht.
Der VBA-Editor lässt sich wie der „normale“ V5-Makro-Editor aus V5 heraus unter TOOLS -> MACRO -> VISUAL BASIC EDITOR aufrufen. Wer vorher schon mal mit VB6, VB.NET oder einer anderen objektorientierten Programmiersprache gearbeitet hat, wird sich hier sehr schnell zurechtfinden. Der große Vorteil des VBA-Editors ist al-lerdings, dass nicht nur V5-Applikationen mit grafischer Oberfläche damit erstellt werden, sondern es können auch „normale“ CATScript- bzw. vbs-Makros damit er-stellt werden. Dabei kann die „Debug“-Funktion des VBA-Editors genutzt werden, um das Makro schrittweise auszuführen. Somit lässt sich in jedem Schritt feststel-len, welche Werte gerade von V5 verarbeitet werden.
Bild 1.4: Makro mittels PSPad
1 Geräte und Hilfsmittel – Editoren
14
1.4 Externe Applikationen
Es gibt verschiedene Möglichkeiten von außen, auf V5 zuzugreifen, und vermutlich noch mehr Gründe, dies zu tun, anstatt ein VBA-Makro oder reines Textmakro zu schreiben. Gerade wenn es um komplexe Userführung, Design oder Integration in andere Programmstrukturen geht, sind externe Anwendungen die erste Wahl. Die zweite Wahl stellt dann die Programmiersprache dar. Die Wahl, ob Sie nun VB6, VB.NET, Java oder C# benutzen, ist Ihrem Kunden, Können, Geschmack, Ihrer Mög-lichkeit oder Notwendigkeit vorbehalten.
Wie Sie sich denken können, gibt es auch hier eine Vielzahl von Editoren; mit oder ohne grafisches Interface. Da hier in dem Buch der externe Zugriff auf V5 C# be-sprochen wird, habe ich mich für den kostenlosen Editor von Microsoft entschieden – C# 2008 Express Edition. Dieser kann bei Microsoft nach einer Registrierung kos-tenlos heruntergeladen und genutzt werden.
Für die Verwendung solcher Programme ist auf dem jeweiligen Zielrechner aller-dings das zugehörige Microsoft .NET Framework notwendig – bei C# 2008 das Microsoft .NET Framework 3.5. Dieses Framework ist eine Laufzeitumgebung für Windows, die bereits sehr viele fertige Funktionen und Routinen besitzt, die Sie in Ihrem Programm mit C# benutzen können, ohne sie nochmals neu schreiben zu müssen.
Bild 1.5: VBA-Editor
1.4 Externe Applikationen
15
Das Framework ist ebenfalls kostenlos und kann bei Microsoft in der jeweiligen Landessprache (relevant für die Fehlermeldungen) heruntergeladen werden.
Bild 1.6: IDE von C# Express
17
2 Vorbereitungen
Bevor es losgeht mit der richtigen Arbeit, sollte die Arbeitsumgebung optimal vor-bereitet sein. Ist die Kaffeemaschine in der Nähe? Ist das Telefon umgeleitet? Hat man den Urlaub für die Zeit der Einführungsphase eingereicht? Hat man überhaupt eine lauffähige CATIA V5-Version auf dem Rechner?
Nachdem diese wichtigen Fragen geklärt sind, sollte die Umgebungssprache von V5 auf englisch umgestellt werden. Dies vereinfacht die Suche nach dem entsprechen-den Feature-Namen bzw. das Wieder erkennen des anzuwendenden Befehls in der online-Dokumentationen. Es ist allerdings dabei zu beachten, dass für die Funktion „CATIA.StartCommand“ der jeweilige Befehl dann auch in englisch angeben werden muss. Wird dann später eine deutsche Sprachumgebung verwendet, muss natürlich der entsprechende deutsche Befehl verwendet werden. Werfen wir nun einen Blick auf die Frage, mit welchem Werkzeug ich meine Arbeit erledigen möchte/muss.
• Bei Powercopies ist dies schnell geklärt; hierfür muss man das normale V5 be-nutzen.
• Bei VBA-Makros ist es auch einfach; hierfür steht auch nur der V5-eigene VBA-Editor zur Verfügung.
• Bei Makros stehen seitens der V5-Bordmittel zur Verfügung:
• Makro-Editor
• VBA-Editor
2.1 Der Makro-Editor
CATTIA.StartCommand ist von der jeweiligen Umge-bungssprache abhängig
Bild 2.1: Makro-Editor