Wybrać wersję SolidWorks do otwarcia za pomocą programu Excel (2021 lub 2022)

Cze wszystkim

Mam makro, które uruchamiam za pomocą nomenklatury Excela. Pozwala mi to na modyfikowanie właściwości części i zespołów oraz zapisywanie planów w formatach PDF i DXF, a także części w STEP w celu przygotowania plików produkcyjnych. Chciałbym zwrócić uwagę, że podczas uruchamiania makra nie widać otwarcia SolidWorks ani otwarcia i zamknięcia części/płaszczyzn.

Ale chodzi o to, że mój problem polega na tym, że pracujemy z wersją 2022, a jeden z naszych klientów pracuje z wersją 2021 i instaluje środowisko pracy dla swojej wersji SolidWorks na naszych stacjach roboczych.

Więc moje pytanie jest następujące: czy możemy wybrać z Excela, którą wersję SolidWorks otworzyć (myślę, że zrobiłbym to za pomocą UserForm)? Moja wiedza na temat VBA jest ograniczona, wszystko, co zrobiłem do tej pory, robiłem, wybierając w prawo i w lewo w Internecie. Dla części kodu specyficznej dla poleceń SolidWorks (część modyfikująca właściwości nie jest jeszcze całkiem skończona, nie umieszczam jej poniżej):

Otwieranie SolidWorks:
Ustaw SWAPP = CreateObject("SldWorks.Application")

Otwarcie i nagranie utworu w STEP:
Ustaw SWMODEL = SWAPP. OpenDoc6(CHEMIN_PIECE, 1, 1, "", mójBłąd, mójOstrzeżenie)
SWMODEL. SaveAs2 FLD_LANCEMENT_TEMPO & CHEMIN_STEP, 0, Prawda, Fałsz

Otwieranie i zapisywanie planu w formacie PDF i DXF:
Ustaw SWMODEL = SWAPP. OpenDoc6(CHEMIN_PLAN, 3, swOpenDocOptions_Silent, "", myError, myWarning)
SWMODEL. SaveAs2 FLD_LANCEMENT_TEMPO & CHEMIN_PDF, 0, Prawda, Fałsz
SWMODEL. SaveAs2 FLD_LANCEMENT_TEMPO & CHEMIN_DXF, 0, Prawda, Fałsz

Zamykanie otwartych dokumentów:
SWAPP. ZamknijWszystkieDokumenty Prawda
Ustaw SWAPP = Nic: Ustaw SWMODEL = Nic

Czy zamiast "Set SWAPP = CreateObject("SldWorks.Application")" możemy mieć linię kodu, która pozwala otworzyć żądaną wersję?

Dziękuję za pomoc =)

Witaj @f.vergneau ,

Aby wybrać wersję SolidWorks, wystarczy dodać wskazówkę dotyczącą wersji na końcu tekstu tworzenia obiektu SWAPP:
Ustaw SWAPP = CreateObject("SldWorks.Application.30")

Pamiętaj, aby umieścić odpowiednie znaki cudzysłowu i nie ma spacji.
Wskazówki są następujące:

  • SOLIDWORKS 2015: 23
  • SOLIDWORKS 2016: 24
  • SOLIDWORKS 2017: 25
  • SOLIDWORKS 2018: 26
  • SOLIDWORKS 2019: 27
  • SOLIDWORKS 2020: 28
  • SOLIDWORKS 2021: 29
  • SOLIDWORKS 2022: 30

Możesz zasugerować wybór wersji z listy rozwijanej i pobrać poprawny indeks z jego właściwości ListIndex.
image

Pozdrowienia.

3 polubienia

Cześć m.blt!

Bardzo dziękuję za odpowiedź, działa idealnie! Cóż za skuteczność :wink: !