| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SolidEdge |
| |
| Empolis Entwicklungs- und Integrationspartnerschaft, eine Pressemitteilung
|
Autor
|
Thema: SE ST8 Löschvorgang beschleunigen (VBA) (742 / mal gelesen)
|
zelade Mitglied
Beiträge: 21 Registriert: 28.06.2016
|
erstellt am: 06. Mrz. 2018 11:49 <-- editieren / zitieren --> Unities abgeben:
Guten Tag zusammen. Ich arbeite mit einer größeren Baugruppe und steuere diese über VBA in Excel. Zunächst blende ich alle Occurences ein, die ich benötige in dem spezifischen Anwendungsfall. Anschließend lösche ich alle Occurences die nicht eingeblendet sind innerhalb einer Schleife. Das Problem ist, dass es sehr lange dauert, bis alle Bauteile aus SE gelöscht wurden. Zu Beginn ist der Löschvorgang sehr langsam und beschleunigt sich, je mehr Teile gelöscht wurden. Ist es möglich mehrere Teile auf einmal herauszulöschen, oder die Aktualisierung in SE erst nach abgeschlossenem Löschvorgang zu aktivieren? Code: While CStr(Worksheets("Beispiel").Cells(i, 17).Value) <> "" Set SEOccdel = SEDoc.Occurrences.Item(Worksheets("Beispiel").Cells(i, 17).Value) If SEOccdel.Visible = False Then SEOccdel.Delete End If Set SEOccdel = Nothing i = i + 1 Wend
Über eine Antwort würde ich mich freuen. Viele Grüße. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wolha Moderator CAD - Consultant
Beiträge: 5689 Registriert: 30.01.2002 Win 11 Pro Solid Edge 2023 CAMWorks Primus PDM FEMAP Dynamic Designer Teamcenter
|
erstellt am: 06. Mrz. 2018 12:16 <-- editieren / zitieren --> Unities abgeben: Nur für zelade
|
Arne Peters Ehrenmitglied V.I.P. h.c. CAD Dokumentation / Training / Programmierung / Datenbanken
Beiträge: 7478 Registriert: 05.2002.24 Solid Edge Seminarunterlagen Training, Beratung, Programmierung
|
erstellt am: 06. Mrz. 2018 12:28 <-- editieren / zitieren --> Unities abgeben: Nur für zelade
|
zelade Mitglied
Beiträge: 21 Registriert: 28.06.2016
|
erstellt am: 06. Mrz. 2018 12:33 <-- editieren / zitieren --> Unities abgeben:
Ich habe SEApp.ScreenUpdating = False gefunden. Leider führt das nicht zu dem gewünschten Ergebnis. Tatsächlich habe ich explizit vor meiner Schleife SEApp.DelayCompute = False gesetzt. Indem ich die Property zu True setze ist das Problem gelöst. Manchmal kann es so einfach sein und man sieht es einfach nicht. Vielen Dank. Gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |