Chciałbym utworzyć makro w Solidworks, aby zmienić nazwę złożenia i jego komponentów zgodnie z następującą zasadą:
"Numer projektu-ES00" do montażu
"Numer projektu-ES0i" dla i-tego podzespołu (1. poziom)
"Numer projektu-ES0i-C00j" dla j-tej części i-tego podzespołu (2. poziom)
Na przykład drzewo tworzenia powinno wyglądać następująco:
INT846-ES00
INT846-ES01
INT846-ES01-C001
INT846-ES01-C002
INT846-ES01-C003
INT846-ES01-C004
INT846-ES02
INT846-ES02-C001
INT846-ES02-C002
INT846-ES03
INT846-ES04
Potrafię zakodować zasadę rekurencji w VBA, ale nie wiem, jak ponownie zarejestrować zestaw i jego komponenty, biorąc pod uwagę drzewo jako całość. Wtedy nie wiem, jak przejść przez drzewo tworzenia danego zgromadzenia.
Jeśli macie jakieś propozycje, jestem do dyspozycji!
'Wiersze mają zawierać tylko nazwy plików Nazwa ReDim(1 TB ((UBound(retval) - 1) / 2) + 1) Dla i = 0 TB (UBound(retval) - 1) / 2 Tekst = Tekst & retval(2 * i) & vbCr Nazwa(i + 1) = retval(2 * i) Dalej i i = 0
W zasadzie najbardziej efektywnym rozwiązaniem byłaby zmiana nazw plików poza oprogramowaniem, a następnie przekierowanie zewnętrznych odniesień do dokumentów...
Jest to jednak skomplikowane dla qlq, który nie ma tak wielu interfejsów API oprogramowania
Najprostszą stroną rozwoju jest otwarcie zestawu i przeglądanie komponentów, a następnie zapisanie każdego z dokumentów, ponieważ główny zestaw jest otwarty, oprogramowanie samo przekieruje referencje ...
Po prostu będą stare pliki ze starymi nazwami, które zostaną usunięte ręcznie
Aby utworzyć rekurencję na komponentach (przejdź przez całe drzewo złożenia)
pobierz próbkę z pomocy interfejsu API
"Przykład złożenia ciągu poligonowego na poziomie komponentu (VBA)"
Punktem wejścia dla marco jest procedura MAin
W tym przykładzie funkcja TraverseComponent zostanie wykonana na każdym komponencie, obiekt swComp zawiera komponent, a zmienna nLevel zawiera poziom komponentu w drzewie (np. 1 dla 1. poziomu, 2 dla komponentu podzespołu, 3 itd. ...)
musisz jeszcze dodać kod rejestracyjny dokumentu (dokument jest uzyskiwany z "komponentu" przez API GetmodelDoc)
Należy zachować ostrożność, aby zarządzać wystąpieniami komponentów (ten sam składnik może być obecny kilka razy), tylko pierwsze wystąpienie powinno być przetwarzane