Usuwanie wszystkich stanów wyświetlania

Cze wszystkim;
Na wyświetlaczu pojawia się komunikat o poluge moich plików "part" i "asm" (między innymi ze względu na rozłożone, spawane mechanicznie, oraz każdorazowe tworzenie konfiguracji (czasami zapominam odznaczyć pole "wygląd linków")).
Znalazłem trochę makra, które usuwa wszystkie stany wyświetlania - z wyjątkiem bieżącego - i odznacza pole "Połącz stany wyglądu z konfiguracjami"

[vb]

  1. Dim swApp As Object (Obiekt Ciemny)
  2.  
  3. Przyciemnij część jako obiekt 
  4. Dim boolstatus As Boolean 
  5. Dim longstatus as long 
  6. Przyciemnij długie ostrzeżenia tak długo 
  7. Przyciemnij modelDoc jako SldWorks.ModelDoc2 
  8.  
  9.  
  10. Sub main() 
  11.  
  12. Ustaw swApp = Application.SldWorks 
  13. Ustaw modelDoc = swApp.ActiveDoc 
  14. Ustaw część = swApp.ActiveDoc 
  15. boolstatus = modelDoc.RemoveAllDisplayStates 
  16. Koniec subwoofera

[vb]

Tylko to makro działa tylko na artykułach.
Czy wiesz, jak zmodyfikować kod, aby miał zastosowanie zarówno do części, jak i złożeń?

Uwaga: mając na uwadze, że jestem dyszą makro Solidworks....

Pozdrowienia.

Witam

Myślę, że powinieneś użyć polecenia SldWorks.AssemblyDoc w innych wierszach , takich jak ten:

 

Dim swApp As Object (Obiekt Ciemny)

Przyciemnij część jako obiekt

Dim assy As Object

Dim boolstatus As Boolean

Dim longstatus As Long

Przyciemnij długie ostrzeżenia tak długo

Przyciemnij modelDoc jako SldWorks.ModelDoc2

Dim AssyDoc jako SldWorks.AssemblyDoc

 

Sub main() 

 

Ustaw swApp = Application.SldWorks

Ustaw modelDoc = swApp.ActiveDoc

Ustaw część = swApp.ActiveDoc

Ustaw AssyDoc=swApp.ActiveDoc

boolstatus = modelDoc.RemoveAllDisplayStates

Ustaw zestaw = swApp.ActiveDoc

boolstatus = AssyDoc.RemoveAllDisplayStates

Koniec subwoofera

 

Szukam warunku (jestem dyszą również w VBA, więc proszę bardzo..)

1 polubienie

Dziękuję Azrod

Ale jak ja o tym nie pomyślałem.

Czy to oznacza, że jestem o oczko poniżej poziomu dyszy? (Oczywiście żartuję).

Poszukam przykładów warunków części/montażu.

Jeszcze raz dziękuję, myślę, że to właściwa droga.

2 polubienia

"Czy to oznacza, że jestem o oczko poniżej twojego poziomu dyszy? (Żartuję, rzecz jasna)."

Ahah mam nadzieję, że nie, ale mój poziom w VBA jest NAPRAWDĘ ograniczony do absolutnego minimum.

Na poziomie "Hello World", a nawet :p

Mam nadzieję, że ci pomogłem (i mnie też!)..

2 polubienia

wow... Właśnie zauważyłem, że polecenie: "RemoveAllDisplayStates"

Usuwa również wyglądy (te z bieżącego materiału) we wszystkich stanach wyświetlania.... To nie jest dobre! Będę musiał poszukać czegoś innego.

 

Czy korzystasz z właściwej wersji SolidWorks? Może to jakiś błąd:(

Konieczna jest mała aktualizacja?

Pracuję z Solidworks 2014 SP4 i Solidworks 2016 SP4.

Tak samo jest w obu wersjach....

Witam, to normalne, że usuwa również wygląd, to nie jest błąd. 

Link do dokumentu

> Usuwa wszystkie stany wyświetlania i wyglądy z tego dokumentu części.

 

Pozwolę ci zobaczyć, jak używać funkcji DeleteDisplayState w dokumencie, musisz podać jej nazwę stanu wyświetlania, który ma zostać usunięty. Aby to zrobić, musisz utworzyć pętlę, która pobiera wszystkie stany wyświetlania.

Witam;

Dziękuję KVuilleumier za te informacje. Zamierzam odkopać się na bok... i skorzystaj z okazji, aby zrobić szkolenie na temat API, to mi nie zaszkodzi.