Makro nie działa już z oprogramowaniem SW 2017

Witajcie ludzie,

To jest mój problem. Posiadam makro, które pozwala na zmianę nazw arkuszy rysunków na nazwę konfiguracji wstawionej w tym arkuszu. Do wersji z 2016 roku działało to bardzo dobrze. Właśnie zaktualizowałem do 2017 SP4.1 i już nie działa poprawnie. Zmienia tylko nazwę 1. arkusza.

A że nic nie wiem o VB, to jestem w rozsypce...

Oto plik ...

Z góry dziękuję

Cala


config_to_sheet.swp

Witam 

Czy Solid informuje o błędzie, czy kod kompiluje się, ale nie robisz z nim tego, co chcesz?

 

Dimitri

Nie podaje żadnych błędów.

Kod działa normalnie, zmienia nazwę 1. arkusza, przechodzi do kolejnych arkuszy, ale nie zmienia nazwy. Pozostawia imię już obecne.

Witam

 

Po przetestowaniu pod SW2016 już nie działa zbyt dobrze, ponieważ

Brak kontroli nad poprzednią nazwą arkusza, więc jeśli konfiguracja ma tę samą nazwę, oprogramowanie nie może zmienić nazwy wielu arkuszy o tej samej nazwie

3 polubienia

Czy to Ty to napisałeś, czy nagrałeś to za pomocą Rejestratora Makr?

Czy możliwe jest posiadanie konfiguracji o tej samej nazwie w tym samym pokoju? Nie wydaje mi się.

Do mojego użytku zawsze działał bardzo dobrze... do SW 2017

Ani tam nie napisane, ani nagrane. Nic nie wiem o VB. To plik, który dostałem wiele lat temu.

Ale nie wiem, skąd to się bierze.

Teoretycznie nie jest to możliwe, ale z drugiej strony na Twoim rysunku możliwe jest, że widok odniesienia zawsze używa tej samej konfiguracji

 

Utwory są następujące

Arkusz konfiguracyjny5 jest przestarzały, więc już go zaktualizuj :)

http://help.solidworks.com/2017/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.idrawingdoc~setupsheet5.html

2 polubienia

Rzeczywiście, mógłbym użyć tej samej konfiguracji w kilku arkuszach.

Ale w tym przypadku nie używam tego makra.

Jest on używany do moich planów operacyjnych 

Witam

Dla pewności, masz pokój z konfiguracjami x, a konfiguracje x mają je MEP w jednym pliku MEP z konfiguracją folio?

1 polubienie

Poprawny!

Witam

Możesz zacząć od wymiany linii:

swSheet.SetName Nazwa_konfiguracji

Przez:

swSheet.SetName NazwaKonfiguracji & "-" & i

Twoje arkusze będą wtedy nazywane "ConfigName"-"SheetName", od Ciebie zależy, czy jest to denerwujące.

Pozdrowienia

Dzięki za informację, ale jej nie potrzebuję.

Nie ma za co i ups, przepraszam!

Jeśli jest to stare makro 

Sprawdź, czy to nie jest IFF i czy różnią się one w zależności od wersji

SolidWorks i Excel

i kompatybilność z Excel SOLIDWORKS również w zależności od wersji

@+ ;-)

Dobry wieczór

Zgadzam się z gt22, ale najprostszym sposobem byłoby przewinięcie makra krok po kroku, aby zobaczyć zachowanie i dodanie debug.print, aby sprawdzić zawartość configname.

Dodatkowo dobrze byłoby "zapować" mapę bazową, zeskanować tylko widoki i zatrzymać przetwarzanie po uzyskaniu wartości w konfiguracji.

Z drugiej strony potwierdzam, że działa na 2016 roku bez problemu (nawet jeśli nie jest zbyt czysty pod względem kodu) i że w każdej teorii Solidworks nie ma zabawy z usuwaniem tzw. przestarzałych funkcji, więc prawdopodobny błąd gdzie indziej lub niekompatybilność sprzętowo-programowa.

1 polubienie

@gt22 i Cyryl.f

Hola, jestem porzucony. W ogóle nie rozumiem, o czym mówisz.

Czy ktoś może naprawić to makro, aby działało na SW17?

Oto zawartość pliku .swp

Dim swApp jako SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swDraw jako SldWorks.DrawingDoc
Przyciemnij swSheet jako SldWorks.Sheet
Dim swModelview2 As Konfiguracja
Przyciemnij vSheets jako wariant
Dim swView As SldWorks.View
Przyciemnij część jako obiekt
Dim i As Liczba całkowita

Sub main()

'Szablon znajduje się w folderze z rysunkami szablonu oprogramowania

Ustaw swApp = Application.SldWorks
Ustaw swModel = swApp.ActiveDoc
Ustaw swDraw = swModel
Dim ConfigName As String
Dim bRet As Boolean
Przyciemnij vSheetProps jako wariant


vSheets = swDraw.GetSheetNames
Dla i = 1 TB swDraw.GetSheetCount
swDraw.ActivateSheet vSheets(i - 1)
Ustaw swSheet = swDraw.GetCurrentSheet

Liczba = swDraw.GetModelViewCount

Ustaw swView = swDraw.GetFirstView

Zrób Póki Nie SwView To Nic
ConfigName = swView.ReferencedConfiguration
Ustaw swView = swView.GetNextView
Pętla
Ustaw część = swApp.ActiveDoc
boolstatus = Part.SetupSheet5(swSheet.GetName, 12, 12, 2, 3, True, "a3 - iso - NND.slddrt", 0.42, 0.297, "Default", True)
swSheet.SetName Nazwa_konfiguracji

Dalej i

swModel.ForceRebuild3 (Fałsz)
Koniec subwoofera
 

Witam

Jeśli chcesz, możesz spróbować tego.

Pozdrowienia


config_to_sheet_2.swp
3 polubienia

Tak, to działa. Wynik w postaci zdjęć.

Dziękuję bardzo d.roger !!!!!!!!!!

Miłego weekendu.


macro_config_to_sheet_sw_2017.jpg