10
CATIA V5 - Makroprogrammierung mit Visual Basic Script von Dieter R. Ziethen 2., aktualisierte und erweiterte Auflage Hanser München 2006 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 446 40325 3 Zu Inhaltsverzeichnis schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG

CATIA V5 - Makroprogrammierung mit Visual Basic Script ... · PDF fileCATIA V5 - Makroprogrammierung mit Visual Basic Script von Dieter R. Ziethen 2., aktualisierte und erweiterte

  • Upload
    vandien

  • View
    228

  • Download
    1

Embed Size (px)

Citation preview

Page 1: CATIA V5 - Makroprogrammierung mit Visual Basic Script ... · PDF fileCATIA V5 - Makroprogrammierung mit Visual Basic Script von Dieter R. Ziethen 2., aktualisierte und erweiterte

CATIA V5 - Makroprogrammierung mit Visual Basic Script

vonDieter R. Ziethen

2., aktualisierte und erweiterte Auflage

Hanser München 2006

Verlag C.H. Beck im Internet:www.beck.de

ISBN 978 3 446 40325 3

Zu Inhaltsverzeichnis

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG

Page 2: CATIA V5 - Makroprogrammierung mit Visual Basic Script ... · PDF fileCATIA V5 - Makroprogrammierung mit Visual Basic Script von Dieter R. Ziethen 2., aktualisierte und erweiterte

CATIA V5 - Makroprogrammierung mit

Visual Basic Script

Dieter R. Ziethen

ISBN 3-446-40325-6

Leseprobe

Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-40325-6 sowie im Buchhandel

Page 3: CATIA V5 - Makroprogrammierung mit Visual Basic Script ... · PDF fileCATIA V5 - Makroprogrammierung mit Visual Basic Script von Dieter R. Ziethen 2., aktualisierte und erweiterte

43

2 Kommunikation mit der Umgebung

Das Kapitel „Kommunikation mit der Umgebung“ beschreibt, wie ein Makro interaktiv

gestaltet werden kann. Ein interaktives Makro ist ein Makro, das mit

einem Anwender,

einem Betriebssystem,

einer Datei oder

einem externen Programm

kommuniziert.

2.1 Bildschirmausgabe und -eingabe

CATScript erlaubt, einen Dialog mit Textaustausch zwischen einem Anwender und Makro

zu programmieren. Die Funktionen heißen:

MsgBox für Ausgaben und

InputBox für Eingaben.

2.1.1 Bildschirmausgabe

Eine Ausgabe auf einen Bildschirm erfolgt über die Funktion MMsgBox. MMsgBox zeigt ei-

nen Text in einem Ausgabefenster an und meldet zurück, welche Schaltfläche des Ausga-

befensters ein Anwender gedrückt hat. Die Syntax der Funktion lautet:

Func MsgBox ([Ausgabe] As String{, [Knopf] As Long, [Titel, Hilfe-datei, Kontext] As String}) As Long

Die Parameter definieren:

„Ausgabe“ bestimmt den Text des Ausgabefensters.

„Knopf“ bestimmt das Aussehen des Ausgabefensters und die Anzahl und Art der Schaltflächen, die ein Anwender drücken kann (Tabelle 2.1). Dieser Parameter ist optional.

„Titel“ definiert den Titel des Ausgabefensters. Dieser Parameter ist optional.

„Hilfedatei“ und „Kontext“ verweisen auf Zusatzinformationen. Diese Parameter sind optional.

Der Rückgabewert der Funktion MMsgBox kennzeichnet die von einem Anwender gedrück-

te Schaltfläche. Eine Aufstellung der möglichen Rückgabewerte gibt Tabelle 2.2.

Page 4: CATIA V5 - Makroprogrammierung mit Visual Basic Script ... · PDF fileCATIA V5 - Makroprogrammierung mit Visual Basic Script von Dieter R. Ziethen 2., aktualisierte und erweiterte

2 Kommunikation mit der Umgebung

44

Schaltflächen in Abhängigkeit des Parameters „Knopf“

Schaltfläche Wert Schaltfläche Wert

OK (OK) 1 Abbrechen (Cancel) 2

Abbrechen (Abort) 3 Wiederholen (Retry) 4

Ignorieren (Ignore) 5 Ja (Yes) 6

Nein (No) 7

MsgBox bricht einen angezeigten Text in Abhängigkeit des verfügbaren Platzes in einem Ausgabefenster automatisch um. In einigen Fällen soll ein ZZeilenumbruch gezielt beein-

flusst werden. Dies geschieht, indem unter Windows das Zeichen CChr(13) in einem Text an

der Stelle eines Zeilenumbruchs eingefügt wird. Soll ein Makro unter Windows und UNIX

eingesetzt werden, sind die Zeichen CChr(13) und CChr(10) zu verwenden.

Beispiel 2.1: Ausgabe mit Zeilenumbruch

Ein Makro soll die Länge eines Rohres, gespeichert in der Variablen „Laenge“, in einem Fenster gemäß Bild

2.1 darstellen.

Sub CATMain()

Tabelle 2.1:

Schaltflächen eines

Ausgabefensters der

Funktion „MsgBox“

Tabelle 2.2:

Rückgabewerte der

Funktion „MsgBox“

Page 5: CATIA V5 - Makroprogrammierung mit Visual Basic Script ... · PDF fileCATIA V5 - Makroprogrammierung mit Visual Basic Script von Dieter R. Ziethen 2., aktualisierte und erweiterte

2.1 Bildschirmausgabe und -eingabe

45

Dim Box, Laenge As Long Laenge = 75 Box = MsgBox ("Die Länge ist:" & Chr(13) & Chr(10) & Laenge & " mm", 64, "Ausgabe der Rohrlänge")

End Sub

In einigen Fällen soll ein Ausgabefenster nur dazu dienen, einem An-

wender eine Nachricht anzuzeigen, ohne dass ein Makro eine vom

Anwender gedrückte Schaltfläche auswerten soll. In diesem Fall er-

laubt CATScript, die Wertzuweisung der Funktion MMsgBox wegzulas-

sen. Es können in diesem Fall keine Anzeigeoptionen definiert werden.

MsgBox ([Ausgabe] As String)

Beispiel 2.2 Ausgabefenster ohne Wertzuweisung

Sub CATMain()

MsgBox ("Die Länge ist:" & Chr(13) & Chr(10) & "75 mm")

End Sub

2.1.2 Bildschirmeingabe

Eine Eingabe am Bildschirm erfolgt über die Funktion InputBox. Die Funktion zeigt ein

Eingabefenster mit einem Eingabefeld an und gibt die eingegebene Zeichenfolge eines Anwenders zurück. Die Syntax der Funktion lautet:

Func InputBox ([Text{, Titel, Defaultwert}] As String{, [XPosition, YPosition] As Long, [Hilfedatei, Kontext] As String}) As String

Die Parameter bedeuten:

„Text“ bestimmt den Text über dem Eingabefeld des Eingabefensters.

„Titel“ bestimmt die Überschrift des Eingabefensters. Dieser Parameter ist optional.

„Defaultwert“ gibt den Startwert an, der in dem Eingabefeld erscheint und von einem Anwender überschrieben werden kann. Dieser Parameter ist optional.

„XPosition“ und „YPosition“ bestimmen die Position der linken oberen Ecke des Einga-befensters am Bildschirm. Diese Parameter sind optional. Werden die Parameter nicht genutzt, wird ein Fenster zentriert dargestellt.

„Hilfedatei“ und „Kontext“ verweisen auf Zusatzinformationen. Diese Parameter sind optional.

Beispiel 2.3: Eingabefenster

Ein Benutzer soll aufgefordert werden, seinen Nachnamen in einem Eingabefenster mit dem Titel „Eingabe

Nachname“ einzugeben. Als erklärender Text soll „Bitte geben Sie Ihren Nachnamen ein.“ erscheinen. Es

soll der Beispielname „Mustermann“ als Defaultwert angezeigt werden (Bild 2.2).

Bild 2.1:

Ergebnis des Beispiels

„Ausgabe mit Zeilen-

umbruch“

Page 6: CATIA V5 - Makroprogrammierung mit Visual Basic Script ... · PDF fileCATIA V5 - Makroprogrammierung mit Visual Basic Script von Dieter R. Ziethen 2., aktualisierte und erweiterte

2 Kommunikation mit der Umgebung

56

SELECTION.VisProperties As VisPropertySet (Read Only)

Die Klasse VVisPropertySet ist ein Werkzeug zum Analysieren und Verändern der visuellen

Eigenschaften der Elemente, die soeben in einer CATIA-Sitzung selektiert sind (vgl. Ab-

schnitte 2.3 und 2.4). Um Veränderungen der visuellen Eigenschaften vorzunehmen, müs-

sen daher auch Elemente selektiert sein. Ein Element kann gezielt über die Methode AAdd

der Klasse SSelection selektiert werden:

Sub SELECTION.Add [Objekt] As AnyObject

Ist ein Element selektiert, kann es anschließend eingefärbt oder ausgeblendet werden.

2.5.1 Einfärben

CATIA V5 unterscheidet für ein Element zwei Farben: die sichtbare Farbe und die reale

Farbe. Die reale Farbe ist die Farbe, die direkt einem Element zugeordnet ist. Die sichtbare

Farbe ist die Farbe, in der das Element im 3D-Fenster dargestellt ist. Dieser Unterschied kann dadurch bedingt sein, dass beispielsweise einem Körper eine Farbe zugewiesen wurde

und in dessen Farbe auch alle anderen Elemente angezeigt werden, die sich in diesem

Körper befinden; obwohl die realen Farben der Elemente von derjenigen des Körpers ab-

weichen. Diesen Effekt, die sichtbare Farbe auf untergeordnete Elemente übertragen zu

können, wird auch Vererbung der Farbe genannt.

Die reale Farbe eines Elementes kann über die Methode SSetRealColor der Klasse VVisPro-pertySet (siehe S. 502 ff.) festgelegt werden:

Sub VISPROPERTYSET.SetRealColor [Rot, Grün, Blau, Vererbung] As Long

„Rot”, „Grün” und „Blau” bestimmen die Farbe. Ihr Wertebereich ist eine ganze Zahl zwi-

schen „0“ und „255“ (siehe Tabelle 2.5). „Vererbung“ legt fest, ob die Farbe sich als sicht-

bare Farbe auf untergeordnete Elemente vererben soll. „1“ aktiviert eine Vererbung, „0“

deaktiviert eine Vererbung.

Rot Grün Blau Farbe Rot Grün Blau Farbe

0 0 0 Schwarz 255 0 0 Rot

255 255 255 Weiß 0 255 0 Grün

200 200 200 Grau 0 0 255 Blau

Beispiel 2.15: Einfärben von Geometrieelementen

Der Hauptkörper eines geöffneten, aktiven CATParts soll mit aktivierter Vererbung grün eingefärbt wer-

den, so dass die sichtbare Farbe aller Elemente innerhalb des Hauptkörpers auch Grün ist (Bild 2.9).

Dim Liste As Selection Set Liste = CATIA.ActiveDocument.Selection Liste.Clear

Tabelle 2.5:

Beispiele für Farbwerte

Page 7: CATIA V5 - Makroprogrammierung mit Visual Basic Script ... · PDF fileCATIA V5 - Makroprogrammierung mit Visual Basic Script von Dieter R. Ziethen 2., aktualisierte und erweiterte

2.6 Lesen und Schreiben von Datensätzen

57

Liste.Add CATIA.ActiveDocument. Part.MainBodyListe.VisProperties.SetRealColor0, 255, 0, 1

2.5.2 Ausblenden

Das Ausblenden eines oder mehrerer Elemente einer Selektion erfolgt über die Methode

SetShow der Klasse VVisPropertySet (siehe S. 502 ff.):

Sub VISPROPERTYSET.SetShow [Status] As CATVisPropertyShow

„Status“ besitzt folgenden Wertebereich: „catVisPropertyShowAttr” (Anzeigen) und „cat-VisPropertyNoShowAttr” (Verdecken).

Beispiel 2.16: Ausblenden von Geometrieelementen

Innerhalb eines geöffneten, aktiven CATParts soll der Hauptkörper ins „No-Show“ gestellt werden (Bild

2.9).

Dim Liste As Selection Set Liste = CATIA.ActiveDocument.Selection Liste.ClearListe.Add CATIA.ActiveDocument.Part.MainBody Liste.VisProperties.SetShow catVisPropertyNoShowAttr

2.6 Lesen und Schreiben von Datensätzen

Das Lesen und Schreiben von Datensätzen wird durch die Klassen FFile (siehe S. 191) und TextStream (siehe S. 491) gehandhabt. Ein Objekt der Klasse FFile repräsentiert eine Datei,

eines der Klasse TTextStream einen Lese- oder Schreibvorgang. Es handelt sich hierbei um

einen sequenziellen Dateizugriff, d.h., eine Datei wird von Anfang bis Ende gelesen.

2.6.1 Datei deklarieren oder erzeugen

Für einen Lese- oder Schreibvorgang muss im ersten Schritt ein Objekt der Klasse FFile erzeugt werden. Ist eine Datei schon vorhanden, wird die Datei deklariert. Ist diese noch

nicht vorhanden, so wird sie erzeugt.

Wenn eine Datei schon existiert, wird diese über die Methode GGetFile der Klasse FFile-

system (siehe S. 192) deklariert:

Func FILESYSTEM.GetFile ([Name] As CATBSTR) As File

Bild 2.8:

Ergebnis des Beispiels

„Einfärben von Geo-

metrieelementen“

Bild 2.9:

Ergebnis des Beispiels

„Ausblenden von

Geometrieelementen“

Page 8: CATIA V5 - Makroprogrammierung mit Visual Basic Script ... · PDF fileCATIA V5 - Makroprogrammierung mit Visual Basic Script von Dieter R. Ziethen 2., aktualisierte und erweiterte

64

3 Bestandteile eines CATParts

Ein CATPart besitzt zwei Gruppen von Bestandteilen. Die erste Gruppe sind geometriebe-

zogene Inhalte wie Ursprungsebenen, Körper, geometrische Sets und Geometrien (Bild 3.1).

Die zweite Gruppe sind Metadaten wie Teilenummern, Nomenklaturen und benutzerdefi-

nierte Attribute. Auf diese zwei Gruppen wird über die Ankerobjekte PPart und PProduct

zugegriffen (Abschnitte 1.10.3 und 1.10.4).

Der geometriebezogene Inhalt eines CATParts ist einem

Objekt der Klasse PPart (siehe S. 424 ff.) zugeordnet. Der

Zugriff auf dieses Objekt erfolgt über die Eigenschaft PPart

eines Objektes PPartDocument (siehe S. 429).

PARTDOCUMENT.Part As Part (Read Only)

Die Metadaten eines CATParts sind einem Objekt der Klasse

Product (siehe S. 435 ff.) zugeordnet. Ein Objekt der Klasse wird über die Eigenschaft PProduct der Klasse PPartDocu-

ment (siehe S. 429) abgeleitet.

PARTDOCUMENT.Product As Product (Read Only)

Neben den Elementen, die für einen Anwender sichtbar sind, verfügt ein CATPart über

Referenzen und Richtungsdefinitionen. Eine Referenz ist ein CATIA-interner Zeiger auf ein

Objekt, eine Richtungsdefinition die Beschreibung einer Raumrichtung.

In diesem Kapitel wird beschrieben, wie die hier aufgezählten Elemente in einem Makro erzeugt oder deklariert werden.

3.1 Attribute

Die Attribute eines CATParts lassen sich in Standardattribute und benutzerdefinierte Attri-bute aufteilen. Standardattribute sind in jedem CATPart vorhanden. Standardattribute sind

die Teilenummer, Überarbeitung, Definition, Nomenklatur, Quelle und Beschreibung. Be-

nutzerdefinierte Attribute existieren nur dann, wenn diese von einem Anwender in einem

CATPart erzeugt wurden. Die Benennung eines benutzerdefinierten Attributes ist individu-

ell.

3.1.1 Standardattribute

Die Standardattribute „Teilenummer“, „Überarbeitung“, „Definition“, „Nomenklatur“,

„Quelle“ und „Beschreibung“ sind über die Eigenschaften PPartNumber, RRevision, DDefini-

tion, NNomenclature, SSource und DDescriptionRef der Klasse PProduct (siehe S. 435 ff.) beschrieben:

PRODUCT.PartNumber As String

PRODUCT.Revision As String

Bild 3.1:

Geometriebezogener

Inhalt eines CATParts

Page 9: CATIA V5 - Makroprogrammierung mit Visual Basic Script ... · PDF fileCATIA V5 - Makroprogrammierung mit Visual Basic Script von Dieter R. Ziethen 2., aktualisierte und erweiterte

3.2 Ursprungselemente

65

PRODUCT.Definition As String

PRODUCT.Nomenclature As String

PRODUCT.Source As CatProductSource

PRODUCT.DescriptionRef As String

Beispiel 3.1: Standardattribute eines CATParts

In einem geöffneten, aktiven CATPart sollen die Standardattribute gesetzt werden. Das Bauteil soll als

Kaufteil gekennzeichnet werden.

Dim Produkt As Product Set Produkt = CATIA.ActiveDocument.ProductProdukt.PartNumber = "4911" Produkt.Revision = "A" Produkt.Nomenclature = "Schraube M10" Produkt.Source = 2 Produkt.DescriptionRef = "Lieferant Neckermann"

3.1.2 Benutzerdefinierte Attribute

Die Liste der benutzerdefinierten Attribute ist durch das Listenobjekt UUserRefProperties

der Klasse PProduct (siehe S. 435 ff.) beschrieben. Attribute werden über die Eigenschaften

der Klasse PParameters (siehe S. 421 ff.) erzeugt oder entfernt.

PRODUCT.UserRefProperties As Parameters (Read Only)

Beispiel 3.2: Benutzerdefinierte Attribute eines CATParts

In einem geöffneten, aktiven CATPart soll das boolesche Attribut „Normteil“ mit dem Wert „Wahr“ erzeugt

werden.

Dim Produkt As Product Set Produkt = CATIA.ActiveDocument.ProductDim BenAttrib As Parameters Set BenAttrib = Produkt.UserRefPropertiesDim B As BoolParam Set B = BenAttrib.CreateBoolean ("Normteil", true)

3.2 Ursprungselemente

Ein Ursprungselement ist eine Geometrie, die in jedem CATPart automatisch nach dessen

Erzeugung vorhanden ist. Jede Geometrie, die von einem Anwender oder Makro in einem CATPart erzeugt wird, stützt sich auf ein oder mehrere Ursprungselemente. Die Ursprungs-

elemente eines CATParts sind die xy-, yz- und zx-Ebene. Ein Listenobjekt aller Ursprungs-

elemente wird über die Eigenschaft OOriginElements der Klasse PPart (siehe S. 424 ff.) abge-

leitet.

Page 10: CATIA V5 - Makroprogrammierung mit Visual Basic Script ... · PDF fileCATIA V5 - Makroprogrammierung mit Visual Basic Script von Dieter R. Ziethen 2., aktualisierte und erweiterte

6 3D-Drahtgeometrie und Flächen

102

Schritt Eigenschaften und Methoden

1. 3D-Werkzeugkasten und geometrisches Set deklarieren oder erzeugen:

PART.HybridShapeFactory As Factory (Read Only)

PART.HybridBodies As HybridBodies (Read Only)

Func HHYBRIDBODIES.Add As HybridBody

2. Geometrie über den 3D-Werkzeugkasten vordefinieren:

Func HYBRIDSHAPEFACTORY.AddNew... As HybridShape

3. Geometrie einem Körper, geometrischen Set oder geordneten geometrischen Set zuwei-

sen und erzeugen:

Sub HHYBRIDBODY.AppendHybridShape [Geometrie] As HybridShape

Sub OORDEREDGEOMETRICALSET.InsertHybridShape [Geometrie] As HybridShape

Sub BBODY.InsertHybridShape [Geometrie] As HybridShape

Beispiel 6.1: Erzeugen eines Punktes

In einem geöffneten, aktiven CATPart soll das geometrische Set „Punkte“ und in diesem der Punkt (20 /

40,5 / 100,25) erzeugt werden.

' 3D-Werkzeugkasten deklarieren --------------------------------- Dim Wzk3D As Factory Set Wzk3D = CATIA.ActiveDocument.Part.HybridShapeFactory

' Geometrisches Set erzeugen ------------------------------------ Dim HBody As HybridBody Set HBody = CATIA.ActiveDocument.Part.HybridBodies.AddHBody.Name = "Punkte"

' Geometrie vordefinieren --------------------------------------- Dim Punkt As HybridShapePointCoord Set Punkt = Wzk3D.AddNewPointCoord (20, 40.5, 100.25)

' Geometrie dem geometrischen Set zuweisen ---------------------- HBody.AppendHybridShape Punkt CATIA.ActiveDocument.Part.Update

6.2 Punkte

Ein Punkt ist ein Geometrieelement ohne räumliche Ausdehnung. Ein Punkt kann über

Koordinaten oder seine relative Lage zu einem anderen Geometrieelement beschrieben

werden.

Die übergeordnete Klasse aller Punkte ist die Klasse PPoint (siehe S. 432), die Basismetho-

den für alle Punktarten zur Verfügung stellt. Eine Übersicht der Arten von Punkten gibt

Tabelle 6.2. Jede Punktart besitzt eine spezialisierte Klasse, die mit der Bezeichnung „HHybridShapePoint...“ beginnt. Eine Ausnahme bilden Steuerpunkte und Extrema, die

direkt aus der Klasse HHybridShape abgeleitet sind.

Tabelle 6.1:

Allgemeines Vorgehen

zur Erzeugung von 3D-

Draht- und Flächenge-

ometrie