SE ST8 Löschvorgang beschleunigen (VBA) / Solid Edge
zelade 06. Mrz. 2018, 11:49

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.
wolha 06. Mrz. 2018, 12:16

Hallo,


es gibt meines Wissens eine Property für die App Instanz die ein Update ausschaltet

Suche doche nach SEApp.Update = false

Arne Peters 06. Mrz. 2018, 12:28

Application.DelayCompute = True

zelade 06. Mrz. 2018, 12:33


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ß