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