Hallo
Sind hier zufällig Leute, die CATIA benutzen und damit schonmal VBA-Makros programmiert haben?
Mach grad meine ersten Geh-Versuche und CATIA ist mir da etwas unlogisch.
Folgendes Problem:
Dieses Makro soll eine Skizze erstellen. Nichts Großes...einfach nur ein Dreieck aus drei Linien, die Start- und Endpunkte der Linie werden über Punkte gebildet.
Laß ich dieses Makro jetzt durchlaufen werden die H-Koordinaten der Punkte zwar korrekt dargestellt und die Linien verbunden, nicht jedoch die V-Koordinanten. Das sieht dann so aus, daß in der Skizze nur eine horizontale Linie zu sehen ist, und erst wenn ich in der Skizze nachträglich eine Linie rausgezogen wird sieht man, daß es drei sind.Code:Public Sub NeuerKoerper() Dim prtdc As PartDocument Dim prt As Part Dim fctr As Factory Dim fctr2D As Factory2D Dim hbd As HybridBody Dim prdct As Product Dim ebn As HybridShapePlaneOffset Dim refe As Reference Dim sktch As sketch Dim sktchs As Sketches Dim l As Line2D Dim p As Point2D 'Neues CATPart Set prtdc = CATIA.Documents.Add("CATPart") Set prtdc = CATIA.Documents.Item(CATIA.Documents.Count) Set prt = prtdc.Part 'Part umbenennen Set prdct = prtdc.GetItem(prt.Name) prdct.PartNumber = "Prisma" 'Geometrisches Set einen sinnvollen Namen geben Set hbd = prt.HybridBodies.Item(1) hbd.Name = "Grundfläche" 'Ebene bauen und einfügen Set fctr = prt.HybridShapeFactory Set refe = prt.CreateReferenceFromObject(prt.OriginElements.PlaneXY) Set ebn = fctr.AddNewPlaneOffset(refe, 10, False) ebn.Name = "Skizzierebene" hbd.AppendHybridShape ebn prt.Update 'Skizze erstellen Set sktchs = prt.Bodies.Item(1) Set refe = ebn Set sktch = sktchs.Add(refe) sktch.Name = "Skizze Prisma" prt.Update With sktch 'Skizze öffnen .OpenEdition 'Dreieck zeichnen With .Factory2D Set l = .CreateLine(0, 0, 0, 0) l.Name = "L1" Set l = .CreateLine(0, 0, 0, 0) l.Name = "L2" Set l = .CreateLine(0, 0, 0, 0) l.Name = "L3" Set p = .CreatePoint(0, 0) p.Name = "P1" Set p = .CreatePoint(0, 0) p.Name = "P2" Set p = .CreatePoint(0, 0) p.Name = "P3" End With Set p = .GeometricElements.Item("P1") p.SetData iX:=2, iY:=-2 Set l = .GeometricElements.Item("L1") l.StartPoint = p Set l = .GeometricElements.Item("L2") l.EndPoint = p Set p = .GeometricElements.Item("P2") p.SetData iX:=0, iY:=3 Set l = .GeometricElements.Item("L2") l.StartPoint = p Set l = .GeometricElements.Item("L3") l.EndPoint = p Set p = .GeometricElements.Item("P3") p.SetData iX:=-2, iY:=-2 Set l = .GeometricElements.Item("L3") l.StartPoint = p Set l = .GeometricElements.Item("L1") l.EndPoint = p .CloseEdition End With prt.Update End Sub
Frage: Warum werden die V-Koordinaten nicht korrekt bei den Punkten übernommen?
Was ich schon versucht habe:
-NUR Punkte erstellen und Linien erstmal weglassen. Das klappt gut, die Punkte sind dann wo sie sein sollen.
-Erst die Koordinaten aller Punkte verteilen und danach die Linien auf die Punkte legen. Einzeln und mit Unterbrechung zeigt nach jeder einzelnen Linie, daß genau in diesem Schritt der Punkt wieder auf die H-Achse gelegt wird.
Edit:
.evaluate zwischendurch bringt auch nix
@Joschi:
Oben links, großer blauer Konopf im jeweiligen Forum. Wohl zu groß...







Zitieren

Lesezeichen