CATIA V5 - Effiziente Konstruktion mit Makros - beck-shop.de · PDF fileCATIA V5 - Effiziente...
Transcript of CATIA V5 - Effiziente Konstruktion mit Makros - beck-shop.de · PDF fileCATIA V5 - Effiziente...
CATIA V5 - Effiziente Konstruktion mit Makros
Automatisierte Erstellung von Volumenkrpern, Drahtgeometrie und Flchen mit CATScript
vonDieter R. Ziethen
1. Auflage
Hanser Mnchen 2003
Verlag C.H. Beck im Internet:www.beck.de
ISBN 978 3 446 22347 9
Zu Inhaltsverzeichnis
schnell und portofrei erhltlich bei beck-shop.de DIE FACHBUCHHANDLUNG
http://www.beck-shop.de/Ziethen-CATIA-V5-Effiziente-Konstruktion-Makros/productview.aspx?product=580227&utm_source=pdf&utm_medium=clickthru_lp&utm_campaign=pdf_580227&campaign=pdf/580227http://www.beck-shop.de/fachbuch/inhaltsverzeichnis/9783446223479_TOC_001.pdf
CARL HANSER VERLAG
Dieter Ziethen
CATIA V5 - Effiziente Konstruktion mit Makros Automatisierte Erstellung von Volumenkrpern, Drahtgeometrie und
Flchen mit CATScript
3-446-22347-9
www.hanser.de
127
6.2 Skizzenbasierte Volumenkrper
6.2 Skizzenbasierte Volumenkrper
Ein skizzenbasierter Volumenkrper ist ein Volumenkrper, dessen Form durch eine odermehrere Skizzen bestimmt wird. Besitzt ein Volumenkrper eine Skizze, die entlang einerGeraden gezogen wird, spricht man von einem Prisma. Wird eine Skizze um eine Rotations-achse gedreht, liegt ein Rotationskrper vor. Wenn eine Skizze entlang einer Kurve gezo-gen wird, wird dies als Translationskrper bezeichnet. Bei einem bergangskrper wer-den zwei oder mehr Skizzen zu einem Volumenkrper verbunden. Eine bersicht derskizzenbasierten Volumenkrper gibt Tabelle 6.2.
Ein Volumenkrper kann ein positives oder negatives Vorzeichen besitzen. Volumenkrpermit gleichem Vorzeichen werden addiert, wenn sie einem Krper (vgl. Abschnitt 3.2) zu-geordnet werden, Volumenkrper mit unterschiedlichem Vorzeichnen subtrahiert. Wennz. B. ein Block und eine Tasche in einem Krper erzeugt werden, entfllt die Schnittmengeaus Block und Tasche.
Die folgenden zwei Abschnitte stellen die Methoden zum Erzeugen eines skizzenbasiertenVolumenkrpers und zwei Fallbeispiele dar.
Bild 6.1:Ergebnis desBeispiels Erzeugeneines Volumen-krpers
Tabelle 6.2:bersichtskizzenbasierterVolumenkrper
Art Anzahl Skizzen Positiver Volumenkrper Negativer Volumenkrper
Block (Pad) Tasche (Pocket)
Versteifung (Stiffener)
Prisma 1
Bohrung (Hole)
Rotationskrper 1 Welle (Shaft) Nut (Groove)
Translationskrper 2 Rippe (Rib) Rille (Slot)
bergangskrper 2 bis n Loft (Loft) Loft (Removed Loft)
128
6.2.1 Methoden zum Erzeugen von skizzenbasierten Volumenkrpern
Die Methoden zum Erzeugen eines skizzenbasierten Volumenkrpers sind der KlasseShapeFactory (siehe S. 404 ff.) zugeordnet. Eine bersicht der Methoden gibt Tabelle6.3.
Die Methoden verlangen als Parameter fr eine Skizze entweder ein Objekt der KlasseSketch (siehe S. 419) oder Reference (siehe S. 390). Die Erzeugung einer Skizze ist inKapitel 4 dargestellt, die Deklaration einer Referenz in Abschnitt 3.4.
Tabelle 6.3:Methoden zumErzeugenskizzenbasierterVolumenkrper
(Details zu den Methoden: Klasse ShapeFactory, S. 404 ff.)
Volumenkrper Methode Objekt
Block Func AddNewPad ([Skizze] As Sketch, [Hhe] As Double)
Func AddNewPadFromRef ([Skizze] As Reference, [Hhe] As Double) Pad, S. 369
Tasche Func AddNewPocket ([Skizze] As Sketch, [Tiefe] As Double)
Func AddNewPocketFromRef ([Skizze] As Reference, [Tiefe] As Double)
Pocket, S. 382
Versteifung Func AddNewStiffener ([Kontur] As Sketch)
Func AddNewStiffenerFromRef ([Kontur] As Reference) Stiffener, S. 424
Bohrung Func AddNewHole ([Sttzebene] As Reference, [Tiefe] As Double)
Func AddNewHoleFromPoint ([X, Y, Z] As Double, [Sttzebene] As Reference, [Tiefe] As Double)
Func AddNewHoleFromRefPoint ([Referenzpunkt, Sttzebene] As Reference, [Tiefe] As Double)
Func AddNewHoleFromSketch ([Skizze] As Sketch, [Tiefe] As Double)
Func AddNewHoleWith2Constraints ([X, Y, Z] As Double, [Kante1, Kante2, Sttzebene] As Reference, [Tiefe] As Double)
Func AddNewHoleWithConstraint ([X, Y, Z] As Double, [Referenzkante, Sttzebene] As Reference, [Tiefe] As Double)
Hole, S. 196
Welle Func AddNewShaft ([Skizze] As Sketch)
Func AddNewShaftFromRef ([Skizze] As Reference) Shaft, S. 403
Nut Func AddNewGroove ([Skizze] As Sketch)
Func AddNewGrooveFromRef ([Skizze] As Reference) Groove, S. 196
Rippe Func AddNewRib ([Kontur, Zentralkurve] As Sketch)
Func AddNewRibFromRef ([Kontur, Zentralkurve] As Reference) Rib, S. 396
Rille Func AddNewSlot ([Kontur, Zentralkurve] As Sketch)
Func AddNewSlotFromRef ([Kontur, Zentralkurve] As Reference) Slot, S. 422
Loft Func AddNewLoft
Removed Loft
Func AddNewRemovedLoft
Loft, S. 367
6 Volumenkrper
129
Bei folgenden Objekten sind einige Besonderheiten zu beachten:
Eine Bohrung (Hole) kann ber eine Skizze oder einen Raumpunkt definiert werden. Wirdeine Skizze verwendet, so darf diese als Standardelement nur einen Punkt beinhalten.
Ein Rotationskrper (Shaft oder Groove) bentigt innerhalb einer Skizze eine Rotations-achse (Abschnitt 4.3).
Ein bergangskrper (Loft) basiert im internen CATIA-Datenmodell auf einer ber-gangsflche der Klasse HybridShapeLoft (siehe S. 303). Soll ein Objekt der Klasse Lofterzeugt werden, wird im ersten Schritt das Objekt ber die Methode AddNewLoft oderAddNewRemovedLoft erzeugt und ber dessen Eigenschaft HybridShape das zugrundeliegende Flchenobjekt deklariert. Im zweiten Schritt werden ber das Flchenobjekt dieKonturen des bergangskrpers definiert (vgl. Abschnitt 5.6).
LOFT.HybridShape As HybridShapeLoft (Read Only)
6.2.2 Fallbeispiele: Skizzenbasierte Volumenkrper
Beispiel 6.2: Block mit Bohrung
In einem geffneten, aktiven CATPart existiere im Hauptkrper eine Skizze Skizze.1 miteinem Rechteck der Abmessung 50 50 mm. Das Rechteck sei in der XY-Ebene mittigzum Achsensystem positioniert. Es soll im Hauptkrper ein Block mit einer Hhe von20 mm und in dessen Mitte eine Durchgangsbohrung mit einem Durchmesser von 10 mmerzeugt werden (Bild 6.2).
Sub CATMain ()
' Hauptkrper deklarieren und in Bearbeitung setzen ----------------
Dim Bauteil As Part
Set Bauteil = CATIA.ActiveDocument.Part
Dim HKoerper As Body
Set HKoerper = Bauteil.MainBody
Bauteil.InWorkObject = HKoerper
Bild 6.2:Ergebnis desBeispielsBlock mit Bohrung
6.2 Skizzenbasierte Volumenkrper
130
' Skizze deklarieren -----------------------------------------------
Dim Skizze As Sketch
Set Skizze = HKoerper.Sketches.Item ("Skizze.1")
' Werkzeugkasten deklarieren ---------------------------------------
Dim Wzk3D As ShapeFactory
Set Wzk3D = Bauteil.ShapeFactory
' Block erzeugen ---------------------------------------------------
Dim Block As Pad
Set Block = Wzk3D.AddNewPad (Skizze, 20)
' Referenzflche der Bohrung deklarieren ---------------------------
Dim Face, E, RSur, Ref
Face = "Face:(Brp:(Pad.1;2);None:())"
E = "WithTemporaryBody;WithoutBuildError;WithSelectingFeatureSupport"
RSur = "RSur:(" & Face & ";" & E &")"
Set Ref = Bauteil.CreateReferenceFromBRepName (RSur, Block)
' Bohrung erzeugen -------------------------------------------------
Dim Bohrung As Hole
Set Bohrung = Wzk3D.AddNewHoleFromPoint (0, 0, 0, Ref, 20)
Bohrung.Diameter.Value = 10
Bohrung.Type = 0
Bohrung.ThreadingMode = 1
Bohrung.BottomLimit.LimitMode = 0
Bauteil.Update
End Sub
Beispiel 6.3: Welle mit Ausdrehung
In einem geffneten, aktiven CATPart existieren im Hauptkrper die Skizzen Skizze.1und Skizze.2. Skizze.1 beschreibe die Auenkontur einer Welle, Skizze.2 die Kontureiner Ausdrehung. Aus beiden Konturen soll im Hauptkrper eine Welle mit einer Aus-drehung erzeugt werden (Bild 6.3).
Bild 6.3:Ergebnis desBeispiels Welle mitAusdrehung
6 Volumenkrper
131
Sub CATMain ()
' Hauptkrper deklarieren und in Bearbeitung setzen ----------------
Dim Bauteil As Part
Set Bauteil = CATIA.ActiveDocument.Part
Dim HKoerper As Body
Set HKoerper = Bauteil.MainBody
Bauteil.InWorkObject = HKoerper
' Skizzen deklarieren ----------------------------------------------
Dim Skizze1, Skizze2 As Sketch
Set Skizze1 = HKoerper.Sketches.Item ("Skizze.1")
Set Skizze2 = HKoerper.Sketches.Item ("Skizze.2")
' Werkzeugkasten deklarieren ---------------------------------------
Dim Wzk3D As ShapeFactory
Set Wzk3D = Bauteil.ShapeFactory
' Welle erzeugen ---------------------------------------------------
Dim Welle As Shaft
Set Welle = Wzk3D.AddNewShaft (Skizze1)
' Ausdrehung erzeugen ---------------------------------------------
Dim Nut As Groove
Set Nut = Wzk3D.AddNewGroove (Skizze2)
Bauteil.Update
End Sub
6.3 Flchenbasierte Volumenkrper
Ein flchenbasierter Volumenkrper ist ein Volumenkrper, dessen Definition sich aufeine Flche oder einen Flchenverband sttzt. Jeder flchenbasierte Volumenkrper be-sitzt als bergeordnete Klasse die Klasse SurfaceBasedShape (siehe S. 426). Um einenflchenbasierten Volumenkrper zu erzeugen, gibt es zwei Mglichkeiten.
Wenn eine Flche oder ein Flchenverband geschlossen oder aufgedickt wird, um einenVolumenkrper zu erstellen, spricht man von einer Volumenerzeugung. Ein Volumen-krper wird in diesem Fall neu geschaffen.
Bei einer Volumennderung wird einem bestehenden Volumenkrper ein Teilbereich weg-genommen oder hinzugefgt.
Eine bersicht der flchenbasierten Volumenkrper, der verwendeten Flchen und derenQ