Ukryj konstrukcję w VBA

Witam wszystkich,

W ramach projektu mam do zrobienia dość długie makro (stworzenie kilku ujęć + szkice) do powtarzania w pętli. Wszystko działa, ale powoli, bardzo powoli. Na każdym etapie obliczeń (restart mojej pętli) usuwam poprzednią konstrukcję, aby odciążyć model. Ponadto za każdym razem, gdy tworzę plan lub szkic, chowam go (Part.BlankRefGeom lub Part.BlankSketch). Ale oto mój problem: program jest zawsze powolny (częściowo ze względu na fakt, że SW stworzył plan lub szkic, a potem dopiero po masce, więc etap budowy nadal pojawia się na krótki czas i spala zasób), czy masz technikę, aby całkowicie ukryć konstrukcję (poproś SW, aby jej nie wyświetlał)?

Dziękuję!

Witam

czy masz SolidWorks visible pdt swoje makro? (Zamiana. Widoczny = Prawda ) 

Może to poprawić wydajność, aby nie stawiać tej linii. 

Tak, rzeczywiście SW jest widoczny podczas wykonywania makra. Więc, aby się ukryć:

Zamiana. Widoczny = Fałsz

Próbuję, dzięki za pomysł!

Witam

 

Czy ta kontrola działa dla Ciebie? 

swapp.Visible = False

 

cześć @ aera.damallard

Do kogo jest Twoja wiadomość?

Czy możesz opisać swój problem, ponieważ jeśli zadasz to pytanie, sugeruje to, że masz problem ze składnią.

(może trochę uwagi na spacje przed i po znaku równości , zwróć też uwagę na wielkość liter, jeśli ma to znaczenie ( swApp.xxx) )

Powiedz nam, czy powinno to być normalnie podświetlone.

Dołącza również kod przed i po swApp.xxx

Pozdrowienia

Witam

Tak, to działa, ale z zachowaniem kilku zasad, które można zobaczyć tutaj w rozdziale "Uwagi", biorąc pod uwagę, że "ISldWorks::UserControl" jest domyślnie równe True, gdy Solidworks nie jest uruchamiany przez twój program.

Tak więc, aby Solidworks był niewidoczny, jeśli nie jest uruchamiany przez program, w Solidworks nie może być otwarty żaden dokument i należy umieścić "swApp.UserControl = False" przed wierszem "swApp.Visible = False".

Bądź ostrożny, jeśli zamkniesz swój program z Solidworks niewidocznym, pozostanie on otwarty, ale w trybie niewidocznym, więc musisz pamiętać, aby albo go zobaczyć, albo zamknąć przed zamknięciem programu.

Pozdrowienia

2 polubienia

Ok, więc logika jest taka, że otrzymuję informacje z mojego activedoc

Następnie stosuję kontrolkę użytkownika i widoczną i zapętlam się w drugą stronę po ok, że działa, spróbuję od razu!

Test zakończony sukcesem, rzeczywiście musisz zamknąć dokument, inaczej niczego nie ukrywa :/

1 polubienie