- Als neu kennzeichnen
- Lesezeichen
- Abonnieren
- Stummschalten
- RSS-Feed abonnieren
- Kennzeichnen
- Melden
Hallo zusammen,
ich stehe mal wieder vor einem -für mich- etwas komplizierten Problem und benötige bitte einen Experten-Tipp.
In meiner Hauptbaugruppe sind zwei Unterbaugruppen in denen sich irgendwo (2-4 Ebenen weiter unten) ein identisches Bauteil befindet.
Folglich besitzen die Bauteil einen identischen (Display-)Namen. Die sind im Bild markiert.
1.png
Ich versuche eine Regel oder ein Makro zu erstellen welcher mir von dem ersten Bauteil die Position in der Hauptbaugruppe auslist und das zweite Bauteil mit der ausgelesenen Matrix umpositioniert.
Ich bin momentan soweit, dass ich die Matrix eines vorher selekierten Bauteils auslesen kann und in das Bauteil "TEST_ADAPTER" einsetze.
Sodass die beiden Bauteile aufeinander liegen.
Dazu folgender iLogic-Code:
Dim oAsmCompDef As AssemblyComponentDefinition
oAsmCompDef = ThisApplication.ActiveDocument.ComponentDefinition
Dim oTG As TransientGeometry
oTG = ThisApplication.TransientGeometry
Dim oMatrix As Matrix
oMatrix = oTG.CreateMatrix
Dim compOcc as ComponentOccurrence
Try
compOcc = ThisDoc.Document.SelectSet.Item(1)
oMatrix = compOcc.Transformation
oAsmCompDef.Occurrences.ItemByName("TEST_ADAPTER").Transformation = oMatrix
Catch
MessageBox.Show("Bitte zuerst eine Komponente auswählen", "iLogic")
Return
End Try
Mein Problem ist, dass ich das zweite Bauteil natürlich auch gerne bequem selektieren würde.
Über die Eingabe eines Komponentennamen funktioniert das leider nicht, da ich meistens einige dieser Bauteile finden würde und das erstbeste genommen wird.
Perfekt wäre es wenn ich ein Makro starten würde.
Dieses fordert mich auf das erste Bauteil zu selektieren, anschließend soll ein Klick auf "weiter" oder so folgen
dann werde ich aufgefordert ein zweites Bauteil zu selektieren, anschließend wieder ein Klick auf "weiter"
und dann soll die Matrix von Selektion2 auf die Selektion1 übertragen werden.
Ich denke dies über eine iLogic-Regel zu realisieren wird schwierig werden oder?
Mir würde es schon helfen wenn ich die ausgelesene Matrix in eine globale Variable (Parameter) abspeichern könnte. Hier stehen mir allerdings nur "nummerische", "Text" oder "Wahr/Falsch" Parameter zur Verfügung.
@Juergen_Wagner vielleicht hast du einen Tipp für mich parat!?
Gelöst! Gehe zur Lösung