| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Positionsdarstellung in Unterbaugruppe (2299 mal gelesen)
|
HideValue Mitglied Development Engineer
Beiträge: 10 Registriert: 10.01.2012 Win7,Inventor2012,Excel2003 2007 2010
|
erstellt am: 26. Aug. 2014 15:28 <-- editieren / zitieren --> Unities abgeben:
Hallo Ihr, ich wollte in einer Baugruppe und dort in einer Unterbaugruppe eine Position ändern! Es soll einfach ein anderer Einbauzustand abgebildet werden. im aktiven Assembly funktioniert das auch. Aber über SET AllReferencedDocuments als assembly_Document!! und dann represantationsmanager -> PositionalRepresentations -> (item) PositionalRepresentation PositionalRepresentations.item(2).activate geht nicht!!!!!!!!!!!!!!!!!! hier der code
Sub nnn() 'öffnen, aktualisieren, speichern, schliessen Dim odoc As Inventor.Document Set odoc = ThisApplication.ActiveDocument ' Bezug zu allen Teilen im Assembly.''''''''''''' Dim oRefDocs As DocumentsEnumerator '' Set oRefDocs = odoc.AllReferencedDocuments '' ''''''''''''''''''''''''''''''''''''''''''''''''' ' Durchlaufen der die Liste der Dokumente jeder Teilnehmer kann angesprochen werden. Dim oRefDoc As AssemblyDocument ''' Set oRefDoc = oRefDocs.Item(8) '''''''''''''''''''''''''''''''''''''''''''''' Debug.Print oRefDoc.DisplayName ' get AssemblyComponentDefinition Dim UAssemblyDef As AssemblyComponentDefinition Set UAssemblyDef = oRefDoc.ComponentDefinition ' get RepresentManager Dim REPmanager As RepresentationsManager Set REPmanager = UAssemblyDef.RepresentationsManager ' get PositionalRepresentations Dim PosREPs As PositionalRepresentations Set PosREPs = REPmanager.PositionalRepresentations ' get DIE PositionalRepresentations Dim DiePosREP As PositionalRepresentation Set DiePosREP = PosREPs.Item(1) MsgBox DiePosREP.Name DiePosREP.Activate
odoc.Update End Sub danke euch werde mich bei der Beantwortung ander Themen auch beteiligen Versprochen!!!! nicht immer nur nehmen!!!!! versprochen!!! ------------------ Borstel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chris 31 Mitglied Konstrukteur und Mädchen für alles
Beiträge: 575 Registriert: 23.04.2013 Inventor 2013/2015 Windows 7 64 bit 16GB RAM nVidia Quadro 600
|
erstellt am: 01. Sep. 2014 07:50 <-- editieren / zitieren --> Unities abgeben: Nur für HideValue
|
HideValue Mitglied Development Engineer
Beiträge: 10 Registriert: 10.01.2012 Win7,Inventor2012,Excel2003 2007 2010
|
erstellt am: 16. Sep. 2014 10:51 <-- editieren / zitieren --> Unities abgeben:
Erstmal danke für die Antwort!!! ich möchte in einer Baugruppe eine Unterbaugruppe die Positionsdarstellung ändern. Quasi diese Unterbaugruppe rechts eingebaut oder links eingebaut(3D Abhängigkeit in jeder Positionsdarstellung überschrieben). Diese beiden Varianten möchte ich per VBA umstellen. Also eine iam-Positionsdarstellung in einer Haupt iam ändern. ' Bezug zu allen Teilen im haupt-Assembly.''''''''''''' Dim oRefDocs As DocumentsEnumerator '' Set oRefDocs = odoc.AllReferencedDocuments' odoc=Hauptbaugruppe ''''''''''''''''''''''''''''''''''''''''''''''''' ' Durchlaufen der die Liste der Dokumente jeder Teilnehmer kann angesprochen werden. Dim oRefDoc As AssemblyDocument ''' Set oRefDoc = oRefDocs.Item(8)'Unterbaugruppe hier möchte ich die Positionsdarstellung ändern '''''''''''''''''''''''''''''''''''''''''''''' dann gehe ich zu: AssemblyComponentDefinition;RepresentationsManager;PositionalRepresentations;setze item1(beispiel) und activiere; dann update ; und nichts passiert????? im odoc=Hauptbaugruppe klappt das sehr gut ohne AllReferencedDocuments und DocumentsEnumerator OHHHH das wäre echt schön wenn man das umstellen könnte!!!! Ich würde sämtliche einbauarten an verschiedenen stellen ruckzug ändern können
GRUß Peter
------------------ Borstel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chris 31 Mitglied Konstrukteur und Mädchen für alles
Beiträge: 575 Registriert: 23.04.2013 Inventor 2013/2015 Windows 7 64 bit 16GB RAM nVidia Quadro 600
|
erstellt am: 22. Sep. 2014 07:50 <-- editieren / zitieren --> Unities abgeben: Nur für HideValue
Guten Morgen, also wenn ich dich richtig verstanden habe, dann möchtest du die Position einer Baugruppe in einer Baugruppe ändern. Ist die Baugruppe denn abhängig gemacht? Wenn ja, dann könntest du einfach die Abhängigkeiten, bzw die Werte dieser, bearbeiten, weil an die kommst du ja in der Hauptbaugruppe ran. Eine andere Möglichkeit wäre das ändern der Position im Raum, bezogen auf den Ursprung. Das ist allerdings etwas komplizierter als der andere Weg. Mir fällt gerade noch ein, dass du auch eine Abhängigkeit zu den Ursprungsebenen erstellen kannst und die dann bearbeiten kannst per VBA. Wenn du über diese Abhängigkeiten gehst, hast du auch nicht das Problem, dass du erst die Unterbaugruppe bestimmen musst, sondern kannst direkt die Parameterwerte der Abhängigkeit in der Hauptbaugruppe bearbeiten. Gruß Chris Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 22. Sep. 2014 15:56 <-- editieren / zitieren --> Unities abgeben: Nur für HideValue
Hallo So wird das nix. Im Inventor musst du auch die Unterbaugruppe per Doppelclick "öffnen" bevor du an den Positionsdarstellungen herumschrauben kannst. Außerdem würde dein Weg, wenn er funktionieren würde, auf einen Schlag alle Occurrences deiner Unter-BG umstellen. Ist das wirklich beabsichtigt? Versuch mal in der Haupt-BG durch alle Occurences zu gehen, wenn es die deiner gesuchten Unter-BG ist, mit ComponentOccurrence.Edit() zum Bearbeiten "öffnen", Positionsdarstellung ändern und mit ComponentOccurrence.ExitEdit() wieder verlassen. Das Document.Update sollte dabei überflüssig sein. Bei vielen Änderungen kann man sich überlegen, das Grafikfenster und die BrowserPane abzuschalten, da es sonst zu einem wilden Geflacker auf dem Bildschirm kommen kann. ------------------ MfG Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HideValue Mitglied Development Engineer
Beiträge: 10 Registriert: 10.01.2012 Win7,Inventor2012,Excel2003 2007 2010
|
erstellt am: 23. Sep. 2014 13:13 <-- editieren / zitieren --> Unities abgeben:
Danke Danke Danke Danke Danke Danke also über Occurences !!! man oh man woher wisst ihr das alles????? nur ne kleine frage u auch kurz u knapp!! was isn der unterschied ReferenceDokument u Occurences (Doppelclick??) ------------------ Borstel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chris 31 Mitglied Konstrukteur und Mädchen für alles
Beiträge: 575 Registriert: 23.04.2013 Inventor 2013/2015 Windows 7 64 bit 16GB RAM nVidia Quadro 600
|
erstellt am: 23. Sep. 2014 13:22 <-- editieren / zitieren --> Unities abgeben: Nur für HideValue
ReferencedDocument= Part bzw Assembly, die verbaut wurde. Occurence = das wirklich aktuell verbaute Objekt. Du kannst mehrere Occurences von einem ReferencedDocument haben. Zu erkennen am Browser. Dort ist der Name und dann ein : mit der Nummer der Occurence. Bsp: Part1:1 Part1:2 Part1:3 Gruß Chris
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HideValue Mitglied Development Engineer
Beiträge: 10 Registriert: 10.01.2012 Win7,Inventor2012,Excel2003 2007 2010
|
erstellt am: 23. Sep. 2014 16:10 <-- editieren / zitieren --> Unities abgeben:
|
Chris 31 Mitglied Konstrukteur und Mädchen für alles
Beiträge: 575 Registriert: 23.04.2013 Inventor 2013/2015 Windows 7 64 bit 16GB RAM nVidia Quadro 600
|
erstellt am: 23. Sep. 2014 16:12 <-- editieren / zitieren --> Unities abgeben: Nur für HideValue
|
Denk75 Mitglied Konstrukteur
Beiträge: 66 Registriert: 05.04.2005 IV 2022
|
erstellt am: 11. Mrz. 2022 15:19 <-- editieren / zitieren --> Unities abgeben: Nur für HideValue
Hallo HideValue, ich versuche auch gerade die Positionsdarstellung einer Unterbaugruppe zu überschreiben. Das gelingt mir aber nicht. Habe es mit folgendem Code versucht. Call AssemblyDef.Occurrences.ItemByName(oSelectSet.Item(1)).Definition.RepresentationsManager.PositionalRepresentations.Item("Neue Positionsdarstellung").Activate Hast du damals eine Lösung gefunden? Oder gibt es mittlerweile eine einfache Möglichkeit die Positionsdarstellung der Unterbaugruppe zu überschreiben. Danke an alle Gruß Jürgen
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 11. Mrz. 2022 19:58 <-- editieren / zitieren --> Unities abgeben: Nur für HideValue
Hallo Wenn ItemByName, dann auch SelectSet.Item(1).Name und in der Occurrence umstellen, nicht im Assemblydocument. Code:
AssemblyDef.Occurrences.ItemByName(oSelectSet.Item(1).Name).ActivePositionalRepresentation = "Neue Positionsdarstellung"
------------------ MfG Ralf RKW Solutions GmbH www.RKW-Solutions.com Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Denk75 Mitglied Konstrukteur
Beiträge: 66 Registriert: 05.04.2005 IV 2022
|
erstellt am: 13. Mrz. 2022 10:51 <-- editieren / zitieren --> Unities abgeben: Nur für HideValue
Hallo Ralf, Danke für die Unterstützung. Ich habe jetzt folgende Zeile verwendet, wobei das Problem bei mir das Selectset war. Ich hol nun mit einer Schleife die Item Nummer. Code: AssemblyDef.Occurrences.Item(oPos).ActivePositionalRepresentation = lbPosk.List(i)
Gruß Jürgen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |