| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY WIRD VON NVIDIA ZUM HÄNDLER DES JAHRES GEWÄHLT, eine Pressemitteilung
|
Autor
|
Thema: Positionsdarstellung einer Unterbaugruppe ändern. (3286 mal gelesen)
|
Andreas01 Mitglied Dipl.-Ing.(FH) Konstrukteur
Beiträge: 242 Registriert: 05.08.2004 Inventor 2020 i7 32 GB RAM Quatro FX 4000 WIN10-64bit
|
erstellt am: 17. Apr. 2013 11:46 <-- editieren / zitieren --> Unities abgeben:
Hallo Forum, Die Positionsdarstellung einer aktiven Baugruppe kann ich mit Dim oPosRep As PositionalRepresentations For Each oPosRep compOcc.ComponentDefinition.RepresentationsManager.PositionalRepresentations lsb_Positionsdarstellungen.Items.Add(oPosRep.Name.ToString) Next auslesen und mit asmDoc.ComponentDefinition.RepresentationsManager.PositionalRepresentations.Item("Position1").Activate() ändern. Danke nochmals Ralf. wie kann ich aber die Positionsdarstellung einer ausgewählten Unterbaugruppe ändern? Ausgelesen habe ich es folgendermaßen:
Dim selSet As SelectSet selSet = asmDoc.SelectSet Dim compOcc As ComponentOccurrence Dim obj As Object obj = selSet.Item(1) compOcc = obj lsb_Positionsdarstellungen.Items.Add(compOcc.ActivePositionalRepresentation.ToString) nur das ändern bekomme ich nicht hin, hat jemand einen Tipp?
Andreas
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daywa1k3r Moderator Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570 Laptop: Alienware m17x Win7, Inventor2012
|
erstellt am: 17. Apr. 2013 12:47 <-- editieren / zitieren --> Unities abgeben: Nur für Andreas01
|
Andreas01 Mitglied Dipl.-Ing.(FH) Konstrukteur
Beiträge: 242 Registriert: 05.08.2004 Inventor 2020 i7 32 GB RAM Quatro FX 4000 WIN10-64bit
|
erstellt am: 17. Apr. 2013 13:19 <-- editieren / zitieren --> Unities abgeben:
|
daywa1k3r Moderator Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570 Laptop: Alienware m17x Win7, Inventor2012
|
erstellt am: 17. Apr. 2013 13:27 <-- editieren / zitieren --> Unities abgeben: Nur für Andreas01
|
Andreas01 Mitglied Dipl.-Ing.(FH) Konstrukteur
Beiträge: 242 Registriert: 05.08.2004 Inventor 2020 i7 32 GB RAM Quatro FX 4000 WIN10-64bit
|
erstellt am: 17. Apr. 2013 14:04 <-- editieren / zitieren --> Unities abgeben:
|
daywa1k3r Moderator Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570 Laptop: Alienware m17x Win7, Inventor2012
|
erstellt am: 18. Apr. 2013 09:10 <-- editieren / zitieren --> Unities abgeben: Nur für Andreas01
|
Andreas01 Mitglied Dipl.-Ing.(FH) Konstrukteur
Beiträge: 242 Registriert: 05.08.2004 Inventor 2020 i7 32 GB RAM Quatro FX 4000 WIN10-64bit
|
erstellt am: 18. Apr. 2013 12:17 <-- editieren / zitieren --> Unities abgeben:
Hallo Igor, also ich habe es jetzt folgendermaßen gemacht: Dim asmDoc As AssemblyDocument asmDoc = oInventorApp.ActiveDocument Dim selSet As SelectSet selSet = asmDoc.SelectSet Dim obj As Object obj = selSet.Item(1) Dim compOcc As ComponentOccurrence compOcc = obj Dim selektierteBaugruppe As AssemblyDocument selektierteBaugruppe = compOcc.Definition.Document Dim oPosRep As PositionalRepresentations oPosRep = Nothing 'For Each oPosRep In selektierteBaugruppe.ComponentDefinition.RepresentationsManager.PositionalRepresentations ' lsb_Positionsdarstellungen.Items.Add(oPosRep.Name.ToString) 'Next For i As Integer = 1 To selektierteBaugruppe.ComponentDefinition.RepresentationsManager.PositionalRepresentations.Count lsb_Positionsdarstellungen.Items.Add(selektierteBaugruppe.ComponentDefinition.RepresentationsManager.PositionalRepresentations.Item(i).Name.ToString) Next End Sub
ich weis nicht wieso aber bei dem Auslesen der Positionsdarstellungen mit der For Each Schleife bekomme ich einen Fehler, mit der For-Next Schleife funktioniert es. Igor Danke für Deine Hilfe. Grüße Andreas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas01 Mitglied Dipl.-Ing.(FH) Konstrukteur
Beiträge: 242 Registriert: 05.08.2004 Inventor 2020 i7 32 GB RAM Quatro FX 4000 WIN10-64bit
|
erstellt am: 19. Apr. 2013 13:08 <-- editieren / zitieren --> Unities abgeben:
Hallo Igor, ich glaube die Mühe war vergebens, denn ich kann die Positionsdarstellungen der selektierten Baugruppe zwar auslesen aber wenn ich diese dann mit selektierteBaugruppe.ComponentDefinition.RepresentationsManager.PositionalRepresentations.Item("Position1").Activate() aktivieren möchte funktioniert es nicht, komischerweise bekomme ich auch keinen Fehler angezeigt. Grüße Abdreas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daywa1k3r Moderator Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570 Laptop: Alienware m17x Win7, Inventor2012
|
erstellt am: 19. Apr. 2013 13:33 <-- editieren / zitieren --> Unities abgeben: Nur für Andreas01
|
Andreas01 Mitglied Dipl.-Ing.(FH) Konstrukteur
Beiträge: 242 Registriert: 05.08.2004 Inventor 2020 i7 32 GB RAM Quatro FX 4000 WIN10-64bit
|
erstellt am: 22. Apr. 2013 09:00 <-- editieren / zitieren --> Unities abgeben:
|
daywa1k3r Moderator Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570 Laptop: Alienware m17x Win7, Inventor2012
|
erstellt am: 22. Apr. 2013 09:16 <-- editieren / zitieren --> Unities abgeben: Nur für Andreas01
|
Andreas01 Mitglied Dipl.-Ing.(FH) Konstrukteur
Beiträge: 242 Registriert: 05.08.2004 Inventor 2020 i7 32 GB RAM Quatro FX 4000 WIN10-64bit
|
erstellt am: 22. Apr. 2013 11:42 <-- editieren / zitieren --> Unities abgeben:
Uppss, habe ich jetzt auch gemacht jedoch ohne Erfolg. ... Dim attbSets As AttributeSets For Each obj As Object In objCol attbSets = obj.AttributeSets Dim compOcc As ComponentOccurrence compOcc = obj Dim selektierteBaugruppe As AssemblyDocument selektierteBaugruppe = compOcc.Definition.Document Dim oPosRep As PositionalRepresentations oPosRep = Nothing 'Die Ausgewählte Positionsdarstellung aktivieren selektierteBaugruppe.ComponentDefinition.RepresentationsManager.PositionalRepresentations.Item(Position_Name).Activate() selektierteBaugruppe.Update() 'compOcc.Visible = False Next ... entweder mache ich etwas Falsch oder es ist ein Inventor Bug. Grüße Andreas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas01 Mitglied Dipl.-Ing.(FH) Konstrukteur
Beiträge: 242 Registriert: 05.08.2004 Inventor 2020 i7 32 GB RAM Quatro FX 4000 WIN10-64bit
|
erstellt am: 11. Jun. 2013 09:09 <-- editieren / zitieren --> Unities abgeben:
Also wenn jemand Interesse hat, so funktioniert es: <code> Public Sub ChangeActiveRepresentations() Dim doc As Document Set doc = ThisApplication.ActiveDocument Dim occ As ComponentOccurrence Set occ = doc.SelectSet.Item(1) Dim cd As AssemblyComponentDefinition Set cd = occ.Definition Dim rm As RepresentationsManager Set rm = cd.RepresentationsManager ' Change Positional Representation occ.ActivePositionalRepresentation = rm.PositionalRepresentations(2).Name End Sub </code> seitens Autodesk ist mir geholfen worden. Gruß Andreas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Nadine.hechtfischer Mitglied
Beiträge: 20 Registriert: 20.08.2019
|
erstellt am: 23. Aug. 2019 07:56 <-- editieren / zitieren --> Unities abgeben: Nur für Andreas01
Hallo zusammen, ich habe genau das selbe Problem, wie oben beschrieben. Nur bin ich ein kompletter Anfänger was Inventor und iLogic angeht. Deshalb die Frage, ob mir jemand hier den letzten Code übersetzen könnte, damit ich den auch verstehe. Also was genau steuert was und wo muss ich den Code ändern um diesen auf meine Baugruppe anzupassen. Und am besten auch was die ganzen Abkürzungen bedeuten. Finde hierzu leider auch nichts im Internet Vielen Dank schon mal für eure Hilfe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2580 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 27. Aug. 2019 06:55 <-- editieren / zitieren --> Unities abgeben: Nur für Andreas01
Hallo Ich versuch es mal. Wenn in deiner Baugruppe eine zweite Positionsdarstellung vorhanden ist und aktiviert werden soll, brauchst du nichts umstellen. Für iLogic gibts die Option VBA-Code laufen zu lassen, die musst du verwenden. Deklarieren der Variable "doc" und Zuweisen des aktiven Dokumentes zu dieser Variable.
Code: Public Sub ChangeActiveRepresentations() Dim doc As Document Set doc = ThisApplication.ActiveDocument
Deklarieren der Variable "occ" und Zuweisen der aktuellen Selektion (das was du vor Aufruf des Makros mit der Maus angeklickt/selektiert hast. In einer Baugruppe selektiert man Exemplare (Occurrences) einer Baugruppe oder eines Bauteiles.
Code: Dim occ As ComponentOccurrence Set occ = doc.SelectSet.Item(1)
Deklarieren der Variable "cd" und Zuweisen der Baugruppendefinition. Ausgehend vom selektierten Exemplar ist das der "Sprung" in die eigentliche Definition der Baugruppe.
Code:
Dim cd As AssemblyComponentDefinition Set cd = occ.Definition
Deklarieren der Variable "rm" und Zuweisen des Darstellungsmanagers.
Code:
Dim rm As RepresentationsManager Set rm = cd.RepresentationsManager
Hier wird die aktive Positionsdarstellung umgestellt auf die zweite vorhandene.
Code:
' Change Positional Representation occ.ActivePositionalRepresentation = rm.PositionalRepresentations(2).Name End Sub
------------------ MfG Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Nadine.hechtfischer Mitglied
Beiträge: 20 Registriert: 20.08.2019
|
erstellt am: 27. Aug. 2019 07:23 <-- editieren / zitieren --> Unities abgeben: Nur für Andreas01
|