Hallo WhiteFox,
ein paar Anmerkungen.
1. Um dich zur sauberen Deklaration zu zwingen würde ich immer mit "Option Explicit" beginnen. So lernt mans am besten und die Syntaxhilfe funktioniert auch meistens.
2. Das "Set prtdc = CATIA.Documents.Item(CATIA.Documents.Count)" kannst du dir sparen, da du das Document schon mit "Set prtdc = CATIA.Documents.Add("CATPart")" in prtdc gelegt hast.
3. "prt.Update" macht ein Update über das gesamte Part. Das kann, falls man das öfter im Code verwendet, das Makro langsam machen. Mit "MyPart.UpdateObject MySketch" können auch einzelne Objekte aktualisiert werden. Das reicht meistens.
4. Du brauchst keine Punkte um 2DLinien zu erzeugen. Da die Linie bereits Start und Endpunkt beinhalten. "Set MyLine_01 = MyFactory2D.CreateLine(X1, Y1, X2, Y2)" Einfach die Koordinaten für Punkt1 (X1,Y1) und Punkt2 (X2,Y2) hinter CreateLine schreiben.
zu Empfehlen ist:
http://forum.cad.de/cgi-bin/ubb/foru...ung&number=137
die Catia Hilfe in deinem Installationsverzeichnis und die Makrorekorderfunktion.
mfG
Mario
Code:Option Explicit Sub CATMain() Dim MyPartDoc As PartDocument Dim MyDocuments As Documents Dim MyPart As Part Dim MyHybBodies As HybridBodies Dim MyHybBody As HybridBody Dim MyHybShapeFact As HybridShapeFactory Dim MyPlane As HybridShapePlaneOffset Dim MySketches As Sketches Dim MySketch As Sketch Dim MyReference As Reference Dim MyFactory2D As Factory2D Dim MyLine_01 As Line2D Dim MyLine_02 As Line2D Dim MyLine_03 As Line2D Dim MyLine_04 As Line2D 'CATPart erzeugen Set MyDocuments = CATIA.Documents Set MyPartDoc = MyDocuments.Add("CATPart") 'Part umbenennen Set MyPart = MyPartDoc.Part MyPartDoc.Product.PartNumber = "PRISMA" 'GeometricalSet anlegen / umbenennen /GeoSet in work setzen Set MyHybBodies = MyPart.HybridBodies Set MyHybBody = MyHybBodies.Add() MyHybBody.Name = "Grundfläche" MyPart.InWorkObject = MyHybBody 'Plane erstellen Set MyHybShapeFact = MyPart.HybridShapeFactory Set MyReference = MyPart.CreateReferenceFromObject(MyPart.OriginElements.PlaneXY) Set MyPlane = MyHybShapeFact.AddNewPlaneOffset(MyReference, 10, False) MyPlane.Name = "Skizzierebene" MyHybBody.AppendHybridShape MyPlane MyPart.UpdateObject MyHybBody 'Sketch erzeugen Set MySketches = MyHybBody.HybridSketches Set MyReference = MyPart.CreateReferenceFromObject(MyPlane) Set MySketch = MySketches.Add(MyReference) MySketch.Name = "Skizze Prisma" MyPart.UpdateObject MySketch 'Sketch öffnen und Linien erzeugen MySketch.OpenEdition Set MyFactory2D = MySketch.Factory2D Set MyLine_01 = MyFactory2D.CreateLine(0, 0, 10, 0) Set MyLine_02 = MyFactory2D.CreateLine(10, 0, 10, 10) Set MyLine_03 = MyFactory2D.CreateLine(10, 10, 0, 10) Set MyLine_04 = MyFactory2D.CreateLine(0, 10, 0, 0) MyLine_01.Name = "Linie_01" MyLine_02.Name = "Linie_02" MyLine_03.Name = "Linie_03" MyLine_04.Name = "Linie_04" MySketch.CloseEdition 'alles Updaten MyPart.Update End Sub







Zitieren

Lesezeichen