Makro do tworzenia wirtualnych i modyfikowania materiału wszystkich części. z pliku STEP

Witam.

Często muszę odzyskać pliki 3D (krok) od dostawcy przemysłowego. W większości przypadków wysyłają mi one pliki kroków, które po otwarciu przez solidworks składają się ze złożeń, składających się z tych samych zespołów i części. Krótki...

Dzisiaj dla każdego z tych plików jestem zmuszony wejść w podzespoły, otworzyć wszystkie części, aby: 1- Usunąć ich wygląd. 2-Przypisz temat 3-Nagraj go. 4- Uczyń to wirtualnym.

Na koniec, gdy zespół głowicy jest otwarty, chcę po prostu kliknąć makro, które przekształca wszystkie pliki części pod katalogiem głównym i wszystkie inne zawarte w podzespołach wszystkich niższych poziomów.

Myślę, że za pomocą makra można wykonać wszystkie te operacje naraz i to bardzo szybko.

Niestety w ogóle nie znam makr Solidworks i nie jestem w stanie stworzyć odpowiedniego kodu.

Czy ktoś kiedykolwiek zrobił coś podobnego i mógłby mi pomóc.

Dziękuję.

Jérémy

Solidworks PDM 2015

Witaj Jérémy,

Aby uczynić pokój wirtualnym, istnieje metoda MakeVirtual2 (link).

Aby zastosować materiał, dostępna jest metoda SetMaterialProperty (link). Ale skąd wiesz, który z nich zastosować?

Chciałem to również zrobić w mojej pracy, ale z następującymi wariantami:

  • - Bez gospodarki materiałowej;
  • - Z usunięciem podzespołów, które zawierają tylko jeden podzespół lub część.

Nigdy mi się to nie udało, ponieważ pierwszym krokiem dla mnie było zerwanie zależności od oryginalnego pliku STEP. I o ile mi wiadomo, w API nie ma do tego funkcji (ani podczas importu, ani po). Gdy zrobisz to ręcznie podczas nagrywania makra, nie umieści ono niczego w pliku.

M.

Oto szkic, który konwertuje Krok na sldprt, usuwa wygląd, przypisuje materiał "AISI 304" i zapisuje w tym samym katalogu.

Option Explicit
Sub main()
    Dim FilePath As String
    FilePath = "C:\MyFiles\PartTest.step"
    Dim swApp As SldWorks.SldWorks
    Dim swModel As SldWorks.ModelDoc2
    Set swApp = Application.SldWorks
    Set swModel = swApp.LoadFile4(FilePath, Empty, Nothing, Empty)
    swModel.SetMaterialPropertyName2 "Default", Empty, "AISI 304"
    swModel.Extension.RemoveMaterialProperty swInConfigurationOpts_e.swAllConfiguration, Nothing
    FilePath = Replace(FilePath, ".step", ".sldprt")
    swModel.Extension.SaveAs FilePath, swSaveAsVersion_e.swSaveAsCurrentVersion, swSaveAsOptions_e.swSaveAsOptions_Silent, Nothing, Empty, Empty
End Sub

 

2 polubienia

Nie mam nic przeciwko otwarciu kroku w solidworks. I o ile mi wiadomo, plik sldasm nie utrzymuje linku z krokiem.

Problem polega również na tym, że kiedy otwieram krok w solidworks, w pliku sldasm, który otrzymuję, znajdują się albo inne złożenia, albo części. I że jeśli chcę, aby były wirtualne, muszę je wcześniej otworzyć. To strata znacznej ilości czasu.

Jest makrem, które jest w stanie otworzyć plik, zmienić jego wygląd, materiał, a następnie go zamknąć. Następnie otwórz inny plik należący do zespołu głównego,  ponownie wykonaj te same operacje i tak dalej, aż do ostatniego pliku. I na koniec, aby usunąć wszystkie pliki tymczasowe należące do oryginalnego pliku kroku wygenerowanego podczas otwierania pliku za pomocą solidworks, a także usunąć krok.

Dziękuję za pomoc.

Jérémy

Tak, można do tego zrobić makro

Witam, mam podstawowe makro do zmiany nazw części i podzbiorów, które są już virtual.in 1 2 3 itd 

w SW2018 zestawy ze stepu są już wirtualne, więc nie mam tego kroku jak w SW 2015 

 


renommer_virtuel.swp
2 polubienia

Istnieje połączenie, które jest utrzymywane z oryginalną oczyszczalnią ścieków, dla części lub zespołów. Dotyczy to jednak Solidworks 2017:

http://help.solidworks.com/2019/french/SolidWorks/sldworks/t_break_link_from_original_file.htm

Może to jednak nie stanowić problemu dla Twojej firmy. Jedynym ryzykiem jest to, że oczyszczalnia ścieków połączy dwie odrębne części/zespoły w dwóch projektach i że będą modyfikacje krzyżowe (miałem taki przypadek).

Dziękuję za odpowiedzi.

Na razie nie mogę iść dalej. Za kilka miesięcy mamy przejść na Solidworks 2019 (tak, wiem, że jesteśmy w 2020 roku!!) i tak zgodnie z tym, co mówi G.casters, nie będziemy już mieli problemu z transformacją plików części/tymczasowych złożeń na pliki wirtualne.

Potem wezmę kilka linijek kodu od Jerome.P i mgauroy, aby spróbować pomajstrować przy czymś, co może zadziałać.