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