Löschen aller Anzeigezustände

Hallo ihr alle;
Die Anzeigezustände verschmutzen meine "part"- und "asm"-Dateien (u.a. wegen des entfalteten, mechanisch verschweißten und jeder Konfigurationserstellung (manchmal vergesse ich, das Häkchen bei "Link appearances" zu entfernen)).
Ich habe ein kleines Makro gefunden, das alle Anzeigezustände löscht - außer dem aktuellen - und das Kontrollkästchen "Darstellungszustände mit Konfigurationen verknüpfen" deaktiviert

[VB]

  1. Dimmen swApp als Objekt 
  2.  
  3. Teil als Objekt dimmen 
  4. Dim boolstatus als boolescher Wert
  5. Dim longstatus As Long 
  6. Dim longwarnings So lange 
  7. Dim modelDoc As SldWorks.ModelDoc2 
  8.  
  9.  
  10. Sub main() 
  11.  
  12. Legen Sie swApp = Application.SldWorks fest
  13. Legen Sie modelDoc = swApp.ActiveDoc fest
  14. Teil festlegen = swApp.ActiveDoc 
  15. boolstatus = ModellDoc.RemoveAllDisplayStates 
  16. Ende Sub

[VB]

Nur dieses Makro funktioniert nur bei Teilen.
Wissen Sie, wie Sie den Code so ändern können, dass er sowohl auf Teile als auch auf Baugruppen angewendet wird?

Hinweis: Denken Sie daran, dass ich eine Solidworks-Makrodüse bin....

Herzliche Grüße.

Hallo

Ich denke, Sie sollten den Befehl SldWorks.AssemblyDoc in anderen Zeilen wie folgt verwenden:

 

Dimmen swApp als Objekt 

Teil als Objekt dimmen

Dim-Assy als Objekt

Dim boolstatus als boolescher Wert

Dim longstatus As Long

Dim longwarnings So lange

Dim modelDoc As SldWorks.ModelDoc2

Dim AssyDoc As SldWorks.AssemblyDoc

 

Sub main() 

 

Legen Sie swApp = Application.SldWorks fest

Legen Sie modelDoc = swApp.ActiveDoc fest

Teil festlegen = swApp.ActiveDoc

Legen Sie AssyDoc=swApp.ActiveDoc fest 

boolstatus = ModellDoc.RemoveAllDisplayStates

Set assy = swApp.ActiveDoc

boolstatus = AssyDoc.RemoveAllDisplayStates

Ende Sub

 

Ich bin auf der Suche nach einer Bedingung (ich bin auch eine Düse in VBA, also los geht's..)

1 „Gefällt mir“

Danke Azrod

Aber wie kam ich nicht darauf.

Bedeutet das, dass ich eine Stufe unter Ihrer Düsenhöhe bin? (Ich mache natürlich Witze).

Ich werde nach Beispielen für Teile-/Baugruppenbedingungen suchen.

Nochmals vielen Dank, ich denke, es ist der richtige Weg.

2 „Gefällt mir“

"Heißt das, ich bin eine Stufe unter Ihrer Düsenhöhe? (Natürlich nur ein Scherz)."

Ahah, ich hoffe nicht, aber mein Niveau in VBA ist WIRKLICH auf das Nötigste beschränkt.

Auf der Ebene eines "Hello World" und sogar :p

In der Hoffnung, dass ich dir (und mir auch!) geholfen habe..

2 „Gefällt mir“

Beeindruckend... Ich habe gerade bemerkt, dass der Befehl: "RemoveAllDisplayStates"

Entfernt auch die Darstellungen (des aktuellen Materials) in allen Anzeigezuständen.... Das ist nicht gut! Ich muss mich nach etwas anderem umsehen.

 

Sind Sie auf der richtigen Version von SolidWorks? Vielleicht ist es ein Fehler:(

Ein kleines Update ist nötig?

Ich arbeite mit Solidworks 2014 SP4 und Solidworks 2016 SP4.

Es ist bei beiden Versionen gleich....

Hallo, es ist normal, dass es auch Erscheinungsbilder entfernt, es ist kein Fehler. 

Link zum Dokument

> Entfernt alle Anzeigestatus und Darstellungen aus diesem Teiledokument.

 

Ich lasse Sie sehen, wie Sie die DeleteDisplayState-Funktion im Dokument verwenden, Sie müssen ihr den Namen des zu löschenden Anzeigezustands mitteilen. Zu diesem Zweck müssen Sie eine Schleife erstellen, die alle Anzeigezustände abruft.

Hallo;

Vielen Dank an KVuilleumier für diese Informationen. Ich werde beiseite graben... und nutze die Gelegenheit, ein Training zu APIs zu machen, es wird mir nicht schaden.