| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Auf dem Weg zur digitalen Auftragsmappe. , ein Anwenderbericht
|
Autor
|
Thema: IDW: Modellzustände aktualisieren (986 / mal gelesen)
|
EKW Mitglied Dipl.-Ing. Maschinenbau & IWE|Entwicklung & Konstruktion von Baumaschinenwerkzeugen
Beiträge: 185 Registriert: 12.09.2011 WorkStation: Intel Xeon E-2276M @2.80-4.70 GHz|K6/T12 64.00 GB RAM Win 7/64 Bit NVidia Quadro RTX 5000 ~ Dargestellt auf: 2 x 32" EIZO EV3285-BK ---- Autodesk Product Design Suite Ultimate 2012 Autodesk Product Design Suite Ultimate 2014 Autodesk Product Design Suite Ultimate 2017 Product Design & Manufacturing Collection 2020 Product Design & Manufacturing Collection 2023
|
erstellt am: 15. Mrz. 2023 13:02 <-- editieren / zitieren --> Unities abgeben:
Hallo Inventorianer, seit dem es die Modellzustände gibt, bin ich eigentlich auch ein direkter Fan davon geworden, leider funktioniert wohl eine Sache (für mich) noch nicht so gut (weswegen ich auch mit dem Support im Gespräch war). Ich aktualisiere eine Baugruppe (weil sich z.Bsp ein Teil geändert hat), welche mehrere Modellzustände besitzt und speicher diese ab, soweit so gut. Dann öffne ich die IDW und muss festellen das bei mehreren Ansichten, welche andere Modellzustände außer "Primär" darstellen meistens ein gelber "Aktualisierungsblitz" vorhanden ist. Ich habe daran lang rum probiert dieses Phänomen zu beseitigen. Die erarbeitete Lösung mit dem Support zusammen war es, jeden Modellzustand der Baugruppe zu aktivieren und jeweils extra nochmal auf "Speichern" zu klicken. Kann jemand von Euch dieses Verhalten bestätigen? Gibt es schon ein paar fixe Programmierer, welche sich ein Button oder ein Makro oder ähnliches geschrieben haben, um die Speicherung der ganzen Modellzustände mit einem Klick anzustoßen? Ich rede hier übrigens von Baugruppen (mit ca. zwei bis sechs Unterbaugruppen) mit gesamt ca. 50 - 200 Teilen und einen bis fünf Modellzuständen, es sollte also nicht so sehr die Performance fressen Grüße an Euch Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2630 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 16. Mrz. 2023 00:03 <-- editieren / zitieren --> Unities abgeben: Nur für EKW
Hallo Man könnte es mit der Brechstange versuchen und einfach einen Rebuild für die Baugruppe durchführen. Das sollte alle Modellzustände neu berechnen. Die Seiteneffekte bleiben abzuwarten. Code:
Option ExplicitPrivate Sub UpdateAllModelStates() Dim oApp As Inventor.Application Set oApp = ThisApplication Dim oDrawDoc As DrawingDocument Set oDrawDoc = oApp.ActiveDocument Dim oPartDoc As PartDocument Dim oAssDoc As AssemblyDocument Dim oRefedDoc As Document For Each oRefedDoc In oDrawDoc.ReferencedFiles If oRefedDoc.RequiresUpdate = True Then Select Case oRefedDoc.DocumentType Case kAssemblyDocumentObject: Call UpdateAssDoc(oRefedDoc) Case kPartDocumentObject: Call UpdatePartDoc(oRefedDoc) End Select End If Next End Sub Private Sub UpdateAssDoc(ByVal oAssDoc As AssemblyDocument) Dim oCompDef As AssemblyComponentDefinition Set oCompDef = oAssDoc.ComponentDefinition Dim oFacDoc As AssemblyDocument Set oFacDoc = oCompDef.FactoryDocument If Not oFacDoc Is Nothing Then Call oFacDoc.Rebuild End If End Sub Private Sub UpdatePartDoc(ByVal oPartDoc As PartDocument) Dim oCompDef As PartComponentDefinition Set oCompDef = oPartDoc.ComponentDefinition Dim oFacDoc As PartDocument Set oFacDoc = oCompDef.FactoryDocument If Not oFacDoc Is Nothing Then Call oFacDoc.Rebuild End If End Sub
------------------ MfG Ralf RKW Solutions GmbH www.RKW-Solutions.com Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
EKW Mitglied Dipl.-Ing. Maschinenbau & IWE|Entwicklung & Konstruktion von Baumaschinenwerkzeugen
Beiträge: 185 Registriert: 12.09.2011 WorkStation: Intel Xeon E-2276M @2.80-4.70 GHz|K6/T12 64.00 GB RAM Win 7/64 Bit NVidia Quadro RTX 5000 ~ Dargestellt auf: 2 x 32" EIZO EV3285-BK ---- Autodesk Product Design Suite Ultimate 2012 Autodesk Product Design Suite Ultimate 2014 Autodesk Product Design Suite Ultimate 2017 Product Design & Manufacturing Collection 2020 Product Design & Manufacturing Collection 2023
|
erstellt am: 16. Mrz. 2023 09:06 <-- editieren / zitieren --> Unities abgeben:
Da ich den Fall gerade habe konnte ich den Code direkt Testen. Ich habe diesen in ein Modul gepackt und aus "Private" eine "Public" Sub UpdateAllModelStates() gemacht. Ausgeührt habe ich es dann nur mit der geöffneten IDW (ohne die iam in Hintergrund), die Blitze verbleiben. Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2630 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 16. Mrz. 2023 09:40 <-- editieren / zitieren --> Unities abgeben: Nur für EKW
Moin Bei mir waren die Aktualisierungen wirksam. Sind die Modellzustände Ersatzdarstellungen oder wie tief steckt das geänderte Bauteil in Unterbaugruppen? Gibt es sonst irgendwelche Besonderheiten die einen Unterschied ausmachen könnten? Ohne ein Beispielmodell kann das hier noch'ne Weile dauern. ------------------ MfG Ralf RKW Solutions GmbH www.RKW-Solutions.com Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
EKW Mitglied Dipl.-Ing. Maschinenbau & IWE|Entwicklung & Konstruktion von Baumaschinenwerkzeugen
Beiträge: 185 Registriert: 12.09.2011 WorkStation: Intel Xeon E-2276M @2.80-4.70 GHz|K6/T12 64.00 GB RAM Win 7/64 Bit NVidia Quadro RTX 5000 ~ Dargestellt auf: 2 x 32" EIZO EV3285-BK ---- Autodesk Product Design Suite Ultimate 2012 Autodesk Product Design Suite Ultimate 2014 Autodesk Product Design Suite Ultimate 2017 Product Design & Manufacturing Collection 2020 Product Design & Manufacturing Collection 2023
|
erstellt am: 16. Mrz. 2023 10:27 <-- editieren / zitieren --> Unities abgeben:
Hallo, es sind normale Darstellungen von verschiedenen Modellzuständen. Habe ich den Code erst einmal richtig integriert über das Modul? Und aktualisiert der Code nur oder speichert er diese Aktualisierung des Modellzustandes gleich mit ab? Evtl. sind noch ein paar Regeln bei Bauteilen im Hintergrund, welche angestoßen werden, wenn sich am Bauteil oder dem abgeleiteten Bauteil etwas ändert. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2630 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 16. Mrz. 2023 14:53 <-- editieren / zitieren --> Unities abgeben: Nur für EKW
Hallo Code in ein Modul packen ist korrekt. Auf Public braucht man es nur umstellen, wenn man es von außerhalb des VBA-Editors starten will (z.B. über einen Button im Ribbon). Der Code speichert nicht. Das wäre auch ein wenig riskant, wenn noch nicht klar ist, ob alles wie geplant funktioniert. Da kann man schnell sehr viel Datenschrott produzieren. Sichtbar (durch fehlende gelbe Blitze) sollte die Aktualisierung trotzdem sein. Eventuell hilft einmal den Aktualisieren Knopf in der Schnellzugriffsleiste der IDW zu drücken. Oder man aktualisert die IDW am Ende vom Makro per Codezeile. Man könnte den Rebuild auf alle referenzierten Dokumente erweitern. Das schließt dann auch Unterbaugruppen, Bauteile und abgeleitete Komponenten mit ein. Zusätzlich prüft man nicht mehr, ob das Teil als veraltet markiert ist, sondern bügelt einfach drüber. Dann muss man aber alle Bibliotheksteile ausnehmen, da die schreibgeschützt sind. Es besteht bei so einem Rundumschlag immer das Risiko sich endlos mit Aktualisierungen im Kreis zu drehen, weil die Reihenfolge nicht passt. Ohne Beispieldaten die man genauer untersuchen kann, wird das wahrscheinlich nicht zu ergründen sein. Dann bleibt nur warten ob Autodesk was tut. ------------------ MfG Ralf RKW Solutions GmbH www.RKW-Solutions.com Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
EKW Mitglied Dipl.-Ing. Maschinenbau & IWE|Entwicklung & Konstruktion von Baumaschinenwerkzeugen
Beiträge: 185 Registriert: 12.09.2011 WorkStation: Intel Xeon E-2276M @2.80-4.70 GHz|K6/T12 64.00 GB RAM Win 7/64 Bit NVidia Quadro RTX 5000 ~ Dargestellt auf: 2 x 32" EIZO EV3285-BK ---- Autodesk Product Design Suite Ultimate 2012 Autodesk Product Design Suite Ultimate 2014 Autodesk Product Design Suite Ultimate 2017 Product Design & Manufacturing Collection 2020 Product Design & Manufacturing Collection 2023
|
erstellt am: 16. Mrz. 2023 15:53 <-- editieren / zitieren --> Unities abgeben:
Ok, das klingt wirklich wie ein Rundumschlag. Wie sieht es denn aus, wenn ich so etwas ähnliches in der dargestellten Hauptbaugruppe ausführe. Sprich: - IAM Öffnen - Per Button/Makro (Alle Speichern) --> Löst aus das jeder Modellzustand einmal abgerufen wird/aktualisiert und gespeichert wird Vielleicht ist der IDW, das zu kompliziert? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
EKW Mitglied Dipl.-Ing. Maschinenbau & IWE|Entwicklung & Konstruktion von Baumaschinenwerkzeugen
Beiträge: 185 Registriert: 12.09.2011 WorkStation: Intel Xeon E-2276M @2.80-4.70 GHz|K6/T12 64.00 GB RAM Win 7/64 Bit NVidia Quadro RTX 5000 ~ Dargestellt auf: 2 x 32" EIZO EV3285-BK ---- Autodesk Product Design Suite Ultimate 2012 Autodesk Product Design Suite Ultimate 2014 Autodesk Product Design Suite Ultimate 2017 Product Design & Manufacturing Collection 2020 Product Design & Manufacturing Collection 2023
|
erstellt am: 28. Apr. 2023 10:46 <-- editieren / zitieren --> Unities abgeben:
Hätte jemand eine Idee für ein kurzes Makro? Für die aktuelle iam: 1. jeden Modellzustand einmal abrufen 2. diesen aktualisieren 3. abspeichern Diesen Vorgang für jeden Modellzustand in der aktuellen Baugruppe wiederholen, bis man wieder beim aktuellen Modellzustnand landet, bei welchen man das Makro gestartet hatte. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2630 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 28. Apr. 2023 11:24 <-- editieren / zitieren --> Unities abgeben: Nur für EKW
Moin Sorry, die Benachrichtigungsfunktion im Forum schickt mir keine Mails mehr. Wenn du in Unterbaugruppen auch Modellzustände hast, könnte das nicht reichen. Code:
Private Sub UpdMS()Dim oApp As Inventor.Application Set oApp = ThisApplication Dim oAssDoc As AssemblyDocument Set oAssDoc = oApp.ActiveDocument Dim oActiveMS As ModelState Set oActiveMS = oAssDoc.ComponentDefinition.ModelStates.ActiveModelState oAssDoc.ComponentDefinition.ModelStates.MemberEditScope = kEditActiveMember Dim oMS As ModelState For Each oMS In oAssDoc.ComponentDefinition.ModelStates If Not oMS.Name = oActiveMS.Name Then Call oMS.Activate Call oAssDoc.Update2(True) Call oAssDoc.Save2(True) End If Next Call oActiveMS.Activate Call oAssDoc.Update2(True) Call oAssDoc.Save2(True) End Sub
------------------ MfG Ralf RKW Solutions GmbH www.RKW-Solutions.com Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
EKW Mitglied Dipl.-Ing. Maschinenbau & IWE|Entwicklung & Konstruktion von Baumaschinenwerkzeugen
Beiträge: 185 Registriert: 12.09.2011 WorkStation: Intel Xeon E-2276M @2.80-4.70 GHz|K6/T12 64.00 GB RAM Win 7/64 Bit NVidia Quadro RTX 5000 ~ Dargestellt auf: 2 x 32" EIZO EV3285-BK ---- Autodesk Product Design Suite Ultimate 2012 Autodesk Product Design Suite Ultimate 2014 Autodesk Product Design Suite Ultimate 2017 Product Design & Manufacturing Collection 2020 Product Design & Manufacturing Collection 2023
|
erstellt am: 28. Apr. 2023 13:44 <-- editieren / zitieren --> Unities abgeben:
Danke DIr, wollte es erstmal schmal halten und die jeweiligen Baugruppen so öffnen. Die Frag nach den Unterbaugruppen sollte später kommen, wenn das erstmal mit den einzelnen Baugruppen funktioniert Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |