VBA: Edytowanie pliku bez otwierania okna 3D

Witam

Zauważyłem w makrach Excela, że gdy otwieram kilka plików, niektóre nie ładują się na ekranie Solidworks, jednak podlegają zmianom (nie jest to problem szybkości, bo widziałem to już z F8).

Zauważyłem, że czasami muszę wykonać akcję Visible = True, aby plik wyświetlił się na ekranie.

Teraz zastanawiam się, czy istnieje metoda, która pozwoliłaby ci otwierać pliki bez fizycznego ładowania ich do ekranu Solidworks. Tylko po to, aby wykorzystać ten błąd, aby sprawdzić, czy makro nie jest szybsze. Trochę jak w przypadku Excela, gdy anulujesz automatyczne obliczenia lub aktualizację ekranu.

 

Dziękuję.

Witam

To nie jest błąd, po prostu pozwala go otworzyć i szybciej wprowadzać zmiany. (bez przebudowy i wczytywania graficznego)

Ten tryb jest zatem wykonywany celowo, ale nie jest możliwe uruchomienie zmian w solidworks bez przynajmniej otwarcia solidworks w wersji ukrytej.

1 polubienie

Witam

Dla opcji "ale nie jest możliwe uruchomienie zmian w solidworks bez co najmniej otwarcia wersji ukrytej solidworks", z wyjątkiem niektórych manipulacji za pośrednictwem interfejsów API Menedżera dokumentów Solidworks , gdzie nie jest konieczne instalowanie Solidworks. Poza tym zgadzam się ze sbadenisem.

Pozdrowienia

1 polubienie

"Więc ten tryb jest zrobiony celowo"

Otwieranie Solidworks nie stanowi problemu, ale jak można w ten sposób dobrowolnie otwierać pliki?

Aby przyspieszyć działanie makra, można zastosować kilka metod.

Lubić:

swApp.UserControl = Fałsz
swApp.Visible = Fałsz

swModel.Visible = Fałsz

swApp.DocumentVisible(Fałsz, swDocumentTypes_e.swDocPART)
swApp.DocumentVisible(False, swDocumentTypes_e.swDocASSEMBLY)
swApp.DocumentVisible(False, swDocumentTypes_e.swDocDRAWING)

swModel.FeatureManager.EnableFeatureTree = Fałsz

swModel.FeatureManager.EnableFeatureTreeWindow = Fałsz

swApp.CommandInProgress = Prawda

Dim modView jako ModelView
set modView = swModel.ActiveView
modView.EnableGraphicsUpdate = Fałsz

Więcej informacji można znaleźć tutaj 

Uwaga: Niektóre funkcje API nie działają, jeśli część nie jest widoczna.

2 polubienia

Nie wiem, jakiej funkcji używasz do otwierania swoich dokumentów, ale oto na przykład mały fragment z dokumentu na temat funkcji OpenDoc7 :

"ISldWorks::OpenDoc7 nie aktywuje ani nie wyświetla dokumentu, jeśli plik jest już otwarty w pamięci w zespole lub rysunku. Jednak ISldWorks::OpenDoc7 musi zwrócić prawidłowy wskaźnik IModelDoc2 , który może być używany z funkcjami, które nie wymagają wyświetlenia dokumentu.

Opcjonalnie, ISldWorks::ActivateDoc2 lub ISldWorks::IActivateDoc3 aktywuje i wyświetli dokument. Ponieważ wywołanie ISldWorks::OpenDoc7 nie aktywuje ani nie wyświetla pliku, wywołanie właściwości ISldWorks::ActiveDoc lub ISldWorks::IActiveDoc2 nie zwraca wskaźnika do tego dokumentu."

Pozdrowienia

1 polubienie