CATIA V5 automatisieren
Transcrição
CATIA V5 automatisieren
Jens Hansen Kochbuch CATIA V5 automatisieren Vom Powercopy bis zur C#-Programmierung Jens Hansen Kochbuch CATIA V5 automatisieren Vom Powercopy bis zur C#-Programmierung Konstruktionsmethodik zur Modellierung von Volumenkörpern v Bleiben Sie einfach auf dem Laufenden: www.hanser.de/newsletter Sofort anmelden und Monat für Monat die neuesten Infos und Updates erhalten. Jens Hansen Kochbuch CATIA V5 automatisieren Vom Powercopy bis zur C#-Programmierung 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 Verpflichtung oder Garantie irgendeiner Art verbunden. Autor und Verlag übernehmen infolgedessen keine juristische Verantwortung und werden keine daraus folgende oder sonstige Haftung übernehmen, 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, Warenbezeichnungen usw. in diesem Buch berechtigt deshalb auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung 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 Nationalbibliografie; 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 Inhalt R5 Rootprodukt in einem Dateiordner finden.......................................................67 R6 Reorganisieren eines Dateiordners.......74 Vorwort ....................................................................... 7 1 Geräte und Hilfsmittel – Editoren .......11 1.1 Editor für Powercopies ..........................11 5 Bauteile und Baugruppen ...................... 91 1.2 Editoren für Makros ohne User-Interface .........................................11 R7 Aktives Fenster dauerhaft drehen ........91 R8 1.3 Editoren für Makros mit User-Interface .........................................13 Ausschalten der Transparenz aller Bauteile einer Baugruppe ......................94 R9 1.4 Externe Applikationen...........................14 Verdecken von Achsensystemen, Ebenen, Punkten und Linien ................97 2 Vorbereitungen.........................................17 R10 Isolieren und fixieren von Used-Edges in einer Skizze.................100 2.1 Der Makro-Editor ...................................17 R11 2.1.1 Insert object resolution..........................18 Umbenennen aller booleschen Operationen...........................................105 2.1.2 View Object Browser..............................19 R12 Bauteile untereinander vergleichen ...109 2.2 Der VBA-Editor ......................................23 R13 Elemente einfach umbenennen ..........119 2.2.1 Fenster: Project Explorer.......................24 R14 VBA-Makro Bauteil-Beschriftung......123 2.2.2 Properties ................................................27 R15 2.2.3 Watch.......................................................27 Starten des VBA-Makros „BauteilBeschriftung“ ........................................140 2.2.4 IntelliSense..............................................30 R16 Das Volks-DMU: Schnittansicht einer Baugruppe .............................................141 3 Oft benutzt und nützlich .......................33 R17 Rohmaße ausgeben ..............................160 3.1 Grundrezepte...........................................33 R18 Bauraum darstellen ..............................172 3.2 Objekte für die Selektion.......................36 R19 Entfernungen zwischen Veröffentlichungen ..............................187 4 Dateisystem und Infrastruktur..............41 R20 Hintergrundfarbe ändern ....................190 R1 Datenschleuder – ein VBA-Makro .......41 R21 Gewinde einfärben ...............................192 R2 Starten eines VBA-Makros über ein Symbol in V5..........................................55 6 Flächen .....................................................197 R3 Synchronisieren von Messungen und Parametern ..............................................57 R22 Powercopy Ballcorner_const ..............197 R23 Powercopy Ballcorner_var..................205 R4 Umbenennen aller Instanzen in einer Baugruppe ...............................................61 R24 Powercopy Hole_round .......................209 R25 Powercopy Hole_square ......................211 R26 Powercopy Hole_square_rounded......212 5 Inhalt R27 Powercopy Hole_slot ...........................213 10 Küche – das Verwalten von Makros ..345 R28 Umbenennen der letzten Fläche in einem geometrischen Set ....................214 10.1 Mehrsprachigkeit..................................345 10.2 Versionsverwaltung .............................350 R29 Endpunkte für jedes Teilstück einer Kurve......................................................218 10.2.1 Szenario 1: Firma erstellt und verwaltet Makros im eigenen Haus ...350 R30 Parametrisches Zerlegen einer Fläche.....................................................224 10.2.2 Szenario 2: Der Dienstleister ..............353 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 6 10.3 Schutz von VBA-Projekten.................356 10.3.1 Passwort für das VBA-Projekt „Kochbuch“ ...........................................357 Index ...................................................................360 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 („Makroprogrammierung 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 OnlineDokumentation Beispielskripte, die mit der aktuellen V5-Version nicht funktionieren. 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 ab. gut mit offene Makro-Schnittstelle deckt bei Weitem nicht alle Funktionalitäten von V5 Die Hauptbereiche wie Skizzierer, das Part Design und Assembly Design sind mittels Makro zu steuern. Geht man in das Drafting oder beschäftigt man sich 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. 7 Vorwort 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 geeignete 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 SoftwareApplikation 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 schlaflose Nächte ersparen kann. Neben der Programmierung von reinen Makros soll auch auf die Möglichkeit eingegangen 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 einschrä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ünsche 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önnen Sie mich direkt unter [email protected] 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“. 8 Vorwort Danke schön ... vor allem meiner Frau, die mir den Rücken für die Arbeit an diesem Buch freigehalten 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 „Dankeschö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 praxisrelevanten Anregungen, sodass man nicht übers Ziel hinaus entwickelt. Kerpen, im September 2008 Jens Hansen 9 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 niedergeschrieben 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ünschten Elemente für das Powercopy ausgewählt und auf Wunsch mit Parametern versehen. Bild 1.1: Dialogfenster für Powercopies 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. 11 1 Geräte und Hilfsmittel – Editoren Bild 1.2: Makro-Editor Bild 1.3: Makro mittels WordPad Neben reinen Texteditoren gibt es natürlich eine Reihe besserer Programme als „WordPad“, die aber ebenfalls kostenlos nutzbar sind. Ich persönlich ziehe „PSPad“ 12 1.3 Editoren für Makros mit User-Interface von Jan Fiala (http://www.pspad.com/de/) vor, da hierbei auch Zeilennummern angezeigt werden, die später bei der Fehlersuche sehr hilfreich sind. Bild 1.4: Makro mittels PSPad 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 Applikationen 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 allerdings, dass nicht nur V5-Applikationen mit grafischer Oberfläche damit erstellt werden, sondern es können auch „normale“ CATScript- bzw. vbs-Makros damit erstellt werden. Dabei kann die „Debug“-Funktion des VBA-Editors genutzt werden, um das Makro schrittweise auszuführen. Somit lässt sich in jedem Schritt feststellen, welche Werte gerade von V5 verarbeitet werden. 13 1 Geräte und Hilfsmittel – Editoren Bild 1.5: VBA-Editor 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öglichkeit 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# besprochen wird, habe ich mich für den kostenlosen Editor von Microsoft entschieden – C# 2008 Express Edition. Dieser kann bei Microsoft nach einer Registrierung kostenlos heruntergeladen und genutzt werden. Für die Verwendung solcher Programme ist auf dem jeweiligen Zielrechner allerdings 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. 14 1.4 Externe Applikationen 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 15 2 Vorbereitungen Bevor es losgeht mit der richtigen Arbeit, sollte die Arbeitsumgebung optimal vorbereitet 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 entsprechenden 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. CATTIA.StartCommand ist von der jeweiligen Umgebungssprache abhängig • Bei Powercopies ist dies schnell geklärt; hierfür muss man das normale V5 benutzen. • Bei VBA-Makros ist es auch einfach; hierfür steht auch nur der V5-eigene VBAEditor zur Verfügung. • Bei Makros stehen seitens der V5-Bordmittel zur Verfügung: • Makro-Editor • VBA-Editor 2.1 Der Makro-Editor Bild 2.1: Makro-Editor 17