Hallo
Ich versuche, innerhalb eines VBA-Makros in Catia V5 ein Part zu erstellen. Bestandteil soll auch ein 3D-Text sein.
Ich probiere den "üblichen Weg" im Makro nachzubilden, also Drawing öffnen -> Text reinschreiben -> als .dfx speichern -> Text kopieren -> Text im Part in Skizze einfügen
Eines vorweg, diesen Link (3DText for Catia kenne ich schon, hab mir den Quellcode angesehen, hat mich aber aufgrund des etwas eigenartigen Programmierstils nicht weitergebracht.
Zum Problem: Bei den letzten zwei Schritten hängts bei mir, ich kapiere die Selection-Klasse einfach nicht. Entweder bekomme ich eine Meldung "CSO ist leer", oder der Kompiler meckert wegen irgendwas anderem.
Hier der Code (etwas gekürzt, der besseren Übersicht halber):
Code:
'dxf öffnen und Schriftzug herauskopieren
With CATIA.Documents
.Open (Pfad & "Tmp.dxf")
Dim Sel1 As Selection
Dim Sel2 As Selection
Set DcDrw = .Item(.Count) 'Drawing, aus dem kopiert werden soll
Set DcPrt = .Item(.Count - 1) 'Part, in das eingefügt werden soll
Set Sel1 = DcDrw.Selection
Set Sel2 = DcPrt.Selection
End With
Sel1.Add DcDrw.Sheets.Item(1).Views.Item(3).GeometricElements.Item(2)
Sel1.Copy
DcPrt.Part.Bodies.Item(1).Sketches.Item("Skizze Schriftzug").OpenEdition
Sel2.Paste
DcPrt.Part.Bodies.Item(1).Sketches.Item("Skizze Schriftzug").CloseEdition
Das Dokumenteerstellen und darin arbeiten klappt sehr gut, das Selektieren auch. Wenn ich mein Makro an der entsprechenden Stelle abbreche, sind die selektierten Buchstaben orange markiert. Ich habe testweise erstmal nur die erste Polylinie selektiert. Ich verweise in meinem Code immer direkt auf das Objekt (also zum Beispiel 'Catia.Documents.Item(1)' und mit With-Blöcken anstatt erst für alles ein Obejkt zu dimensionieren und dann mit 'Set' zu referenzieren), aber das sollte ja eigentlich keine Rolle spielen.
Was ich auch nicht verstehe ist, daß die Selection-Klasse zur Klasse Document gehört. Wie soll ich denn damit von einem Dokument in ein anderes kopieren können? Immerhin gibt es in VBA ja sowas wie 'static' wie z.B. in Java nicht.
Kann mir irgendjemand einen Rat geben?
[Diese Nachricht wurde von White-Fox am 25. Jan. 2017 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP