Ein herzliches Hallo,
ich habe ein "kleines" Problem wo ich im moment voll aufn schlauch stehe und einfach nicht mehr weiterweiß.
etwas ähnliches habe ich hier leider nochnicht gefunden.
und zwar geht es darum das ich ein Makro schreiben soll wo der User elemente Selektiert und danach werden die vom User selektierten Elemente (in dem Fall linien, punkte und Ebenen) in ein neu erstelltes Geometrisches Set als ergebnis eingefügt. (ich habe es in VBA angefangen weil ich damit die Mehrsprachigkeit in Catia realisieren kann.)
Anbei der Code:
Sub CATMain()
Dim AktuellesPartDocument As PartDocument
Set AktuellesPartDocument = CATIA.ActiveDocument
Dim AktuellesPart As Part
Set AktuellesPart = AktuellesPartDocument.Part
Dim GSHBS_CP As HybridBodies
Set GSHBS_CP = AktuellesPart.HybridBodies
Dim GSHB_CP As HybridBody
Set GSHB_CP = GSHBS_CP.Add()
GSHB_CP.Name = "Kopierte Drahtgeometrien"
AktuellesPart.InWorkObject = GSHB_CP
AktuellesPart.Update
'GSHBS_CP = GeometrischesSetHybridBodieS_Copy
'GSHB_CP = GeometrischesSetHybridBody_Copy
'----- Selektion definieren und leeren -----
Dim UserSel1 'As Object
Set UserSel1 = AktuellesPartDocument.Selection
UserSel1.Clear
UserSel1.Search "CATPrtSearch.BodyFeature,all"
'UserSel1.VisProperties.SetPick catVisPropertyNoPickAttr <== Stellt alle Bodys ins NOPICK
UserSel1.Clear
'----- Auswahlfilter festlegen -------------------
Dim Was(0 To 2)
Was(0) = "Point"
Was(1) = "Plane"
Was(2) = "Line"
'-------------------------------------------
'----- User Auswahl für späteren Kopiervorgang -------------------
Dim Auswahl 'As Object
Auswahl = UserSel1.SelectElement3(Was, "Bitte selektieren sie NUR Drahtgeometrien (z.B. Entformungsrichtungen, Positionselemente)/ ESC zum Abbrechen", False, CATMultiSelTriggWhenUserValidatesSelection, False)
'----- Formular mit der Infomeldung verdecken (nonmodal Thema)-------------------
frm1.Hide
'----- User Auswahl kopieren und in dem oben erstellten geoSet "GSHB_CP" einfügen -------------------
'*
'*
'*
'*
'*
'*
'*
'*
'UserSel1.PasteSpecial "CATprtResultwithoutLink"
'*
'*
'*
'*
'*
AktuellesPart.Update
End Sub
Das Formular frm1 ist einfach nur eine Info-Box die dem User nochmal ausführlich erklärt was er anklicken soll. (habe ich in einem Formular lösen müssen, weil es nonmodal sein muss...) (der user soll ja nebenbei noch elemente in Catia auswählen können)
Ich weiß jetzt einfach nicht wie ich die "Auswahl" (vom User) in meine Selection im Programm bekomme, damit ich sie dann kopieren und in das geoset einfügen kann.
wäre toll wenn jemand eine Idee hätte wie das funktionieren könnte.
Habe schon daran gedacht die "Auswahl" variable als eine Selection oder wie in der Ziethen-Biebel (Seite.49-51) als CATBSTR zu deklarieren, da lauf ich aber ständig auf einen fehler.
Ich bedanke mich schonmal jetzt für eure antworten.
Vielen dank
lg beny
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP