Zmienianie nazw części w zespole na podstawie aktywnej zmiennej

Witam 

Musiałbym zmienić nazwy wszystkich części moich zespołów, które są wykonane z drewna. Myślę, że w tej części nie ma większego problemu, ponieważ drewno tworzy bardzo specyficzne właściwości, które odróżniają sprzęt od reszty. 

Jakie rozwiązanie byś polecił? Chodzi o to, aby mieć zespół, który miałby nazwę taką jak XXXXXX-XXXX, którego ostatnie cztery cyfry to liczby. 

Licznik ten będzie zwiększany dla każdego panelu drewnianego, który jest częścią zespołu. 

Czy ProjectManager jest odpowiedni dla tego typu żądań, czy muszę opracować makro, aby to zrobić? 

Z góry dziękuję wszystkim :) 

Miłego dnia! 

Vincent 


capture.png

Z ProjectManager powinno to być wykonalne.

Utwórz regułę, która zamienia ostatnie 4 znaki na te, które chcesz z warunkiem, jeśli właściwość material = wood

A dla wartości umieść automatyczny licznik smartcounter lub coś w tym stylu.

Wszystko, co musisz zrobić, to zrobić test i wszystko powinno być dobrze!

 

W przeciwnym razie jest to również możliwe do zrobienia za pomocą smartbom + Integration

Smartbom do pobierania listy plików csv z prawem własności drewna

Następnie integracja, aby zmienić nazwę z licznikiem przyrostowym

2 polubienia

Dziękuję za odpowiedź, 

Przetestowałem to skutecznie, udaje mi się zwiększyć nazwę moich różnych paneli zgodnie z imieniem rodzica. 

Z drugiej strony licznik nie resetuje się do zera przy każdym przetworzonym montażu, czy myślisz, że jest to możliwe? 

Druga uwaga, kiedy przetwarzam zespół, za każdym razem znajduje się on w folderze, który zawiera (plan, plik zespołu i pliki części). Chciałbym, aby za każdym razem nie trzeba było wskazywać folderu docelowego, ale aby pobierał on plik zespołu przetworzonego w danym momencie. 

Z góry dziękuję za odpowiedzi, 

Pozdrowienia

Vincent

Nie znalazłem szybkiego wyszukiwania, jak zresetować licznik w każdym projekcie, jeśli @jmsavoyat przejrzenie go powie nam,  czy jest to wykonalne. (Wydaje mi się, że widziałem jakiś temat na ten temat, ale już go nie mogę znaleźć)

1 polubienie

Witam

Myślę, że możesz uciec od zaawansowanych liczników, używając "Auto Counter", który zresetuje się  na podstawie zmiennej. Zobacz https://help.visiativ.com/mycadtools/2021/fr/SmartCounter4.html

Pozdrowienia

3 polubienia

Witam 

Na koniec dodaję warunki do zmiany nazw części na podstawie właściwości konfiguracyjnej tworzonej przez SWOOD. 

Naszkicowałem makro, ale mam problem z poprawnym zrozumieniem, jak działa dialog z solidworks. 

Udaje mi się zdobyć wszystkie dzieci, które ma mój zespół. 

Teraz chciałbym odnieść sukces w sprawdzeniu, czy dana nieruchomość jest piękna i istnieje w każdym z nich, jeśli tak, zmieniam jej nazwę, jeśli nie, przechodzę do następnej. 

Czy możesz mi pomóc? Zamieszczam początek mojego kodu. 

Z góry dziękuję, miłego dnia. 

 

Dim swApp As Object
Opcja jawna

Sub main()

Dim swApp jako SldWorks.SldWorks
Dim swModel As ModelDoc2
Dim swAssy jako ModelDoc2
Dim swModelDocExt As ModelDocExtension
Dim swCustProp As CustomPropertyManager
Dim val As String
Dim valout As String
Dim bool As wartość logiczna
Przyciemnij drewno jako sznurek
Dim name() jako ciąg
Przyciemnij listę jako ciąg
Dim retval() As String
Przyciemnij tekst jako ciąg

Ustaw swApp = Application.SldWorks
Ustaw swModel = swApp.ActiveDoc
Ustaw swModelDocExt = swModel.Extension

Jeśli swModel.GetType = swDocASSEMBLY Następnie

retval = swModel.GetDependencies2(Fałsz, Fałsz, Fałsz)

Nazwa ReDim(1 TB ((UBound(retval) - 1) / 2) + 1)
Dla i = 0 TB (UBound(retval) - 1) / 2

    Ustaw swModelDocExt = swModel.Extension
    Ustaw swCustProp = swModelDocExt.CustomPropertyManager("")
    bool = swCustProp.Get4("SWOODCP_PanelStockLength", True, val, valout)
Debug.Print "Wartość:                    " & val   
Debug.Print "Obliczona wartość:          " & valout   
Debug.Print "Aktualne dane:          " & bool   
    text = tekst & retval(2 * i) & vbCr


Dalej i
Zakończ jeżeli:
MsgBox (tekst)

Koniec subwoofera