Zmiana konfiguracji w planach (vba)

Witam

Szukam życzliwej duszy do pomocy w wykonaniu programu do zmiany konfiguracji na rysunku. Pozwól, że wyjaśnię.

Mam pokój z kilkoma konfiguracjami, muszę zrobić plan dla każdej konfiguracji (czyli inny arkusz dla każdej konfiguracji). Mam już makro do kopiowania/wklejania arkuszy oraz makro do zmiany nazw arkuszy (taka sama nazwa jak nazwa konfiguracji). Teraz szukam kodu, aby przejść przez każdy arkusz i zmienić konfigurację odniesienia rysunku zgodnie z nazwą mojego arkusza lub bezpośrednio zgodnie z nazwą mojej konfiguracji.

Znalazłem makro na stosie kodu, ale robi wszystko (kopiuj/wklej, zmienia nazwy i zmienia konfigurację), próbowałem je zmodyfikować tak, aby po prostu zmieniało konfigurację. Więc to działa, ale tylko na ostatnim arkuszu. Nie mogę się zakręcić na liściach. Dodatkowo chcę, aby 3 kroki były niezależne, stąd mój problem.

Ktoś ma pomysł?

Makro stosu kodu:

Makro propaguje konfiguracje z dokumentu, do którego istnieje odniesienie, do arkuszy rysunków SOLIDWORKS (codestack.net)

Koniec edycji kodu:

Sub CopySheet (rysuj jako SldWorks.DrawingDoc, arkusz jako SldWorks.sheet, SheetName jako ciąg)

Przyciemnij swNewSheet jako SldWorks.sheet
Ustaw swNewSheet = draw.sheet(draw. GetSheetNames()(rysuj. GetSheetCount() - 1))
            
Dim vViews jako wariant
vViews = swNewSheet.GetViews
            
Ustaw swDraw = swApp.ActiveDoc
Dim vSheetNames As Variant
vSheetNames = swDraw.GetSheetNames
            
Dim i As Liczba całkowita
Sun j jako liczba całkowita
            
Dla j = 0 TB UBound(vSheetNames)
            
Dla i = 0 TB UBound(vViews)
                
Dim swView As SldWorks.View
Ustaw swView = vViews(i)
                
swView.ReferencedConfiguration = NazwaArkusza
                
Dalej i
Dalej j

Koniec subwoofera

Witam

FYI, jest to funkcja, która istnieje w narzędziu SmartDrawings w myCADtools:

https://help.visiativ.com/mycadtools/2022/fr/SmartDrawings4.html

Możesz testować narzędzie przez 30 dni: 

https://www.lynkoa.com/mycadtools

Miłego dnia

Philippe

1 polubienie

Dziękuję za odpowiedź, ale chciałbym się bez niej obejść

Kontynuowałem pracę nad kodem, ale nie wszystko tam rozumiem. Rzeczywiście, mój kod dobrze radzi sobie na każdej stronie, dobrze lokalizuje widoki, ale zmienia konfigurację tylko ostatniego arkusza. To jest ten punkt, którego nie rozumiem. Dlaczego zmienia się konfiguracja ostatniej strony, a pozostałych nie?

Umieściłem swój kod w PJ, jeśli ktoś ma pomysł, to byłby to top top top.

Dziękuję

Edycja: Po odrobinie majsterkowania zdałem sobie sprawę , że konfiguracja zmienia się na ostatniej stronie (z odpowiednią konfiguracją), ale jeśli edytuję mój kod tak, że konfiguracja zmienia się na innej stronie, zawsze zmienia się dla tej samej konfiguracji (ostatniej), a nie konfiguracji odpowiadającej nazwie strony


makro28.swp

Witam;

Twoja wartość "SheetName" nie jest "zmienna"...
Tuż nad wierszem swView.ReferencedConfiguration = NazwaArkusza
Dodaj Ustaw Nazwę Arkusza = NazwyArkuszy(j)

Uwaga: nie wahaj się skorzystać z trybu "krok po kroku" (F8) edytora VB (z aktywnym oknem wizualizacji zmiennych lokalnych).
            To znacznie ułatwia zrozumienie kodu i znalezienie błędów....


Pozdrowienia

1 polubienie

Witam

Niestety korekta nie działa.

Pozdrowienia

Witam

Niestety korekta nie działa.

Pozdrowienia