Witam
Tworzę funkcję makra, która dodaje numer planu do moich rysunków i zapisuje wersję .pdf i .slddrw w określonej lokalizacji.
Kod w mojej funkcji Przebuduj i Edytuj wywoływany przez makro funkcji jest identyczny, ale kiedy rekonstruuję rysunek, mój plan nie jest zapisywany (funkcja Zapisz jako zwraca wartość False), natomiast gdy klikam makro funkcji i klikam "Edytuj definicję", działa to poprawnie. Sprawdziłem, moja funkcja Rebuild jest wywoływana, ale nie zapisuje się, podczas gdy dla Edit działa, będąc dokładnie tym samym kodem. Czy jest jakieś mroczne zaklęcie, o którym nie wiem?
Czy udaje Ci się zapisać w funkcji Przebuduj makra swoich funkcji?
(Korzystam z Solidworks Pro 2017 Sp3.0)
Z góry dziękujemy,
Gauthik powiedział:
Zauważ, że używam tej metody: http://help.solidworks.com/2017/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldocextension~saveas.html
I że wartość parametrów "Błędy" i "Ostrzeżenia" wynosi 0 w funkcji przebudowy i edycji. Jedyna różnica polega na tym, że z jednej strony zwraca False (Rebuild), a z drugiej True (Edit).
Witam
Nigdy nie robiłem makr funkcji, ale z tego, co tutaj przeczytałem, oczywiście istnieją ograniczenia co do tego, co można zrobić w funkcji Rebuild, funkcja SaveAs jest prawdopodobnie jednym z nich.
Pozdrowienia
1 polubienie
Witam, dziękuję za odpowiedź.
Rzeczywiście, czytałem też, że były ograniczenia w tej funkcji (link), z drugiej strony nie jest tak naprawdę napisane, że nie da się zapisać. Próbowałem to sfałszować, uruchamiając makro, które zapisuje się w funkcji przebudowy (metoda RunMacro2), ale to też nie działa. Jedną z ostatnich dróg, które mi pozostały, jest sprawdzenie, czy aktywny dokument nie zmienia się podczas funkcji przebudowy, i spróbowanie z metodą GetSelections3 (jak przeczytałem na tym forum).
Na razie mam przycisk makra do kliknięcia i działa idealnie, ale moja perfekcjonistyczna strona popycha mnie, żebym nie miał przycisku makra do klikania :), ale w najgorszym razie, jeśli nie znajdę, nie będzie to wielka sprawa.
Witam
Nie próbowałem, ale prawdopodobnie możliwe jest sparowanie funkcji makra ze zdarzeniem. Pozostaje tylko wpisać kod rejestracyjny na wydarzenie.
Możesz też utworzyć makro subskrypcji zdarzeń, które jest uruchamiane po uruchomieniu oprogramowania.
1 polubienie
Witam, rzeczywiście czytałem gdzieś, że można korzystać z wydarzeń. Na pierwszy rzut oka nie jest to już proste makro, wymaga stworzenia dodatku solidworks. Jak będę miał wolny czas to się o tym dowiem. Dziękuję za odpowiedź.
Witam
Nie ma potrzeby tworzenia dodatku do zarządzania otworami wentylacyjnymi. Możesz nimi zarządzać za pomocą prostego makra VBA, które jest uruchamiane po otwarciu oprogramowania. Zajrzyj do sieci, możesz znaleźć wiele samouczków.
Makra funkcji są najczęściej używane do aktualizowania danych w modelu.
W twoim przypadku przejdę przez otwory wentylacyjne, wiedząc, że numer części nie musi być aktualizowany przy każdej przebudowie.
1 polubienie
Świetnie, nie znałem tej techniki. Rzeczywiście, znalazłem przykłady kodów, w których używają zdarzeń. To jest to, co chciałem zrobić. Dzięki tym nowym narzędziom będę mógł tworzyć jeszcze bardziej wydajne makra. Dziękuję za pomoc!