Witam
Mam makro w programie Excel, które otwiera części w Solidworks z łączy części w moim pliku Excel. To makro zmienia również wymiary w szkicach.
Chcę wyświetlić okno dialogowe "Zapisz jako", aby użytkownik mógł wybrać nazwę i lokalizację plików, które były edytowane.
Mam następujący kod, który działa w Solidworks, ale nie działa po wklejeniu go do programu Excel:
Sub main()
Ustaw swApp = _
Aplikacja.SldWorks
Ustaw swModel = swApp.ActiveDoc
swModel.Extension.RunCommand swCommands_SaveAs, Pusty
Koniec subwoofera
Kto zna rozwiązanie?
Dziękuję.
Witam
To nie jest tak proste, jak kopiowanie i wklejanie kodu z SolidWorks do Excela!
Czy w menu opcji Visual Basic w programie Excel jest zaznaczone odniesienie do SolidWorks?
Dostępnych jest wiele odniesień zawierających "Solidworks".
Zaznaczona jest tylko opcja "Biblioteka typów SldWorks 2012".
Nie sądzę, aby to stamtąd pochodziło, ponieważ moje makro bez problemu wykonuje wiele działań na Solidworks z Excela.
Jeśli chodzi o kopiowanie i wklejanie, nie znalazłem, co zmienić, aby przełączyć się z jednego oprogramowania na drugie i dlatego wypróbowałem tę metodę.
Witam, czy mogę zapytać, jaki jest ostateczny cel operacji?
W moim pliku Excel mam tabelę z różnymi wartościami wymiarów szkiców zgodnie z konfiguracjami.
Makro modyfikuje części na podstawie pliku Excel. Chcę więc zapisać nową część pod nową nazwą i w lokalizacji wybranej przez użytkownika.
PS: Nie używam tutaj rodziny części, ponieważ po testach pojawia się wiele błędów z powodu zbyt dużej liczby konfiguracji (około 2000).
Ok, radzę więc przyjrzeć się technologii o nazwie DriveWorks.
DriveWorks jest specjalistą w dziedzinie automatyzacji projektowania SOLIDWORKS.
Oferujemy trzy wersje: DriveWorksXpress, DriveWorks Solo i DriveWorks Pro.
DriveWorksXpress jest już zainstalowany w używanej wersji SOLIDWORKS i jest całkowicie darmowy.
Solo i Pro oferują oczywiście o wiele więcej funkcji automatyzacji.
http://www.driveworks.co.uk/products/driveworksxpress/ zawiera przegląd Xpress (spójrz na różne zakładki (Funkcja, Korzyści, Porównaj).
http://www.driveworks.co.uk/products/driveworksxpress/sample-projects/ Przykłady, które możesz wypróbować samodzielnie.
I mały filmik: https://www.youtube.com/watch?v=WCSO0mKsoxA
Na koniec radziłbym skontaktować się ze sprzedawcą SolidWorks, który może przedstawić Ci tę technologię bardziej szczegółowo!
Mogę również odpowiedzieć na Twoje pytania, jeśli chcesz.
Thomas
1 polubienie
Nie chcę przechodzić przez DriveWorks, ponieważ makro już istnieje i jest regularnie używane.
W związku z tym chciałbym go rozwijać, zachowując operacje, które już prowadzi.
Kod podany w pytaniu w końcu działa w Excelu, ale nie spełnia poprawnej funkcji. Rzeczywiście, otwiera okno "Otwórz" Solidworks zamiast okna "Zapisz jako"...
Witam
Myślę, że ten kod robi to, czego chcesz
Publiczny Sub enregistrer_fichier()
' Odzyskujemy Solidworks
Ustaw swApp = GetObject(, "SldWorks.Application")
' Pobieramy aktywny dokument w solidworks
Ustaw swModel = swApp.ActiveDoc
' Otwieramy okno dialogowe rejestracji
swModel.Zapisz
' Zamykamy plik
swApp.CloseDoc swModel.GetTitle
Koniec subwoofera
1 polubienie
Franciszek Onsenofu,
Dziękuję za odpowiedź. Kod działa, ale nie odpowiada temu, co chciałem uzyskać.
Rzeczywiście, zapisuje zmodyfikowany plik, podczas gdy ja chciałbym zapisać kopię w innym katalogu i pod inną nazwą, aby zachować plik podstawowy bez modyfikacji.
Próbowałem zamienić swModel.Save na swModel.SaveAs, ale to już nie działa.
Otwieram okno dialogowe
Możesz więc zmienić nazwę podstawową
Aby chronić plik podstawowy, możesz spróbować ustawić go jako tylko do odczytu
Kliknij plik prawym przyciskiem myszy
własność
Zaznacz pole tylko do odczytu
W przypadku saveas musisz podać mu ścieżkę nagrywania, a także nazwę pliku jako argument
Myślę, że nie wiesz już, gdzie powinien być zarejestrowany i pod jaką nazwą
Ponadto saveas nie otworzy okna dialogowego rejestracji
z tego co rozumiem
ale mogę się mylić
;)
Jeśli przełączę pliki na tylko do odczytu, otworzy się okno dialogowe i będę mógł edytować wszystkie potrzebne dane.
Dziękuję Franciszku Onsenfou!
1 polubienie