| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY baut sein Angebot für den Vertrieb von NVIDIA Software-Angeboten für Reseller und professionelle Anwender aus |
Autor
|
Thema: Kill Adaptivity (720 mal gelesen)
|
Leo Laimer Moderator CAD-Dienstleister
Beiträge: 26104 Registriert: 24.11.2002 IV bis 2019
|
erstellt am: 29. Mai. 2008 11:09 <-- editieren / zitieren --> Unities abgeben:
Hallo Freunde, Igor hat mal ein nettes kleines Tool hier gepostet, das aus allen IPT's einer geöffneten BG die Adaptivitäten entfernt. Hat Jemand dieses Tool am Laufen, für IV2008? Da kommen bei mir nämlich nur Fehlermeldungen. Und: Wie könnte man Adaptivitäten aus Sweepings automatisiert entfernen? ------------------ mfg - Leo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daywa1k3r Ehrenmitglied V.I.P. h.c. Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570 Laptop: Alienware m17x Win7, Inventor2012 64Bi
|
erstellt am: 29. Mai. 2008 11:54 <-- editieren / zitieren --> Unities abgeben: Nur für Leo Laimer
Hi Leo, dann nehmen wir den bekannten Rumpf und passen eine Zeile an: Code:
Sub AdaptivityOff() If ThisApplication.Documents.Count = 0 Then MsgBox "Die Baugruppe öffnen.", vbExclamation, "Keine Baugruppe" Exit Sub End If If ThisApplication.ActiveDocumentType <> kAssemblyDocumentObject Then MsgBox "Die Baugruppe öffnen.", vbExclamation, "Keine Baugruppe" Exit Sub End If Dim oAsm As AssemblyDocument Set oAsm = ThisApplication.ActiveDocument ForAllComponents oAsm.ComponentDefinition.Occurrences End SubSub ForAllComponents(oOccs As ComponentOccurrences) Dim oOcc As ComponentOccurrence For Each oOcc In oOccs On Error Resume Next oOcc.Adaptive = False 'oOcc.Grounded = False ThisApplication.StatusBarText = oOcc.Name If Err.Number <> 0 Then Err.Number = 0 GoTo NEXTCOMP End If NEXTCOMP: ForAllComponents oOcc.SubOccurrences Next End Sub
Die Funktion AdaptivityOff ist die gestartet werden muss. @Roland Ich habe die Funktion extra von KillAdaptivity in AdaptivityOff umbenannt, bevor mir vorgeworfen wird, dass meine Programme vom Richter zum Mörder mutieren @Leo Du weißt, dass ich dir telefonisch beistehe, sollte es Probleme mit dem Einbinden geben
------------------ Grüße Igor FX64 Software Solutions Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Leo Laimer Moderator CAD-Dienstleister
Beiträge: 26104 Registriert: 24.11.2002 IV bis 2019
|
erstellt am: 29. Mai. 2008 12:09 <-- editieren / zitieren --> Unities abgeben:
Igor, auf Dich ist halt genau so Verlass wie auf das PFFFT beim Öffnen einer Hülse (was wir auch heute Abend, an Dich denkend, machen werden, am Lagerfeuer)! Und es funktioniert auch, mit IV2008, so wie vorgesehen. Die BT werden auf nicht adaptiv gesetzt. Aber: Es sind in den Bauteilen jede Menge adaptiver Arbeitselemente und ein Sweeping drin, die nicht abgeschaltet werden, leider. Was ich nicht weiss, aber vielleicht einer der Spezialisten hier erklären kann: Sind diese restlichen Adaptivitäten auch Resourcenfresser? Oder können wir die belassen? (Ich muss bei Allem das äusserste Quentchen Performance rausholen!) ------------------ mfg - Leo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nightsta1k3r Ehrenmitglied V.I.P. h.c. plaudern
Beiträge: 11223 Registriert: 25.02.2004 Hier könnte ihre Werbung stehen!
|
erstellt am: 29. Mai. 2008 12:19 <-- editieren / zitieren --> Unities abgeben: Nur für Leo Laimer
Hallo Leo! Sobald der Teil in der Baugruppe nicht mehr adaptiv ist, bekommt er von der Baugruppe keinen Aktualisierungsaufruf, somit ist die Performancebremse weg. Die eigentlich Ursache ist ja, daß die BG weiß, welche Komponenten adaptiv sind und alle diese Komponenten bei jeder Aktion der BG, egal ob es sich für die adaptiven Komponenten auswirkt oder nicht, zu einem kompletten Durchrechnen auffordert. Durch Igors Tool wird quasi die "Liste" in der BG gelöscht und somit stößt sie auch keine Komponenten mehr zum Durchrechnen an. Daß innerhalb der Komponente noch Adaptivität lauert ist genauso viel oder wenig aufwändig wie bauteilinterne Projektionen oder parametrische Bestimmungen.
------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daywa1k3r Ehrenmitglied V.I.P. h.c. Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570 Laptop: Alienware m17x Win7, Inventor2012 64Bi
|
erstellt am: 29. Mai. 2008 12:24 <-- editieren / zitieren --> Unities abgeben: Nur für Leo Laimer
Ich habe es ein wenig erweitert (die Arbeitselemente aus den Bauteilen werden auch auf "nicht adaptiv" gesetzt): Code:
Sub AdaptivityOff() If ThisApplication.Documents.Count = 0 Then MsgBox "Die Baugruppe öffnen.", vbExclamation, "Keine Baugruppe" Exit Sub End If If ThisApplication.ActiveDocumentType <> kAssemblyDocumentObject Then MsgBox "Die Baugruppe öffnen.", vbExclamation, "Keine Baugruppe" Exit Sub End If Dim oAsm As AssemblyDocument Set oAsm = ThisApplication.ActiveDocument ForAllComponents oAsm.ComponentDefinition.Occurrences End SubSub ForAllComponents(oOccs As ComponentOccurrences) Dim oOcc As ComponentOccurrence For Each oOcc In oOccs On Error Resume Next oOcc.Adaptive = False If oOcc.DefinitionDocumentType = kPartDocumentObject Then Dim oPartFeature As PartFeature For Each oPartFeature In oOcc.Definition.Features oPartFeature.Adaptive = False Next End If ThisApplication.StatusBarText = oOcc.Name If Err.Number <> 0 Then Err.Number = 0 GoTo NEXTCOMP End If NEXTCOMP: ForAllComponents oOcc.SubOccurrences Next End Sub
------------------ Grüße Igor FX64 Software Solutions [Diese Nachricht wurde von daywa1k3r am 29. Mai. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Leo Laimer Moderator CAD-Dienstleister
Beiträge: 26104 Registriert: 24.11.2002 IV bis 2019
|
erstellt am: 29. Mai. 2008 14:17 <-- editieren / zitieren --> Unities abgeben:
|