Dat is mijn probleem. Ik heb een macro waarmee je de tekenbladen kunt hernoemen met de naam van de configuratie die in dit blad is ingevoegd. Tot de versie van 2016 werkte het heel goed. Ik heb net een upgrade uitgevoerd naar 2017 SP4.1 en het werkt niet meer goed. Het verandert alleen de naam van het 1e blad.
En aangezien ik niets van VB weet, zit ik in de war ...
De code loopt zoals gewoonlijk, het verandert de naam van het 1e vel, gaat door naar de volgende bladen maar verandert de naam niet. Hij laat de naam al aanwezig.
In theorie niet, dat is niet mogelijk, maar aan de andere kant is het in uw tekening mogelijk dat de referentieweergave altijd dezelfde configuratie gebruikt
De routes zijn als volgt
SetupSheet5 is verouderd, dus update deze alvast :)
Ik ben het eens met gt22, maar de gemakkelijkste manier zou zijn om de macro stap voor stap te scrollen om het gedrag te zien en debug.print toe te voegen om de inhoud van configname te controleren.
Daarnaast zou het goed zijn geweest om de basiskaart te "zappen", alleen de weergaven te scannen en te stoppen met verwerken zodra een waarde is verkregen op de configuratie.
Aan de andere kant bevestig ik dat het zonder problemen werkt in 2016 (ook al is het niet erg schoon in termen van code) en dat Solidworks in geen geval plezier beleeft aan het verwijderen van de zogenaamde verouderde functies, dus waarschijnlijke bug elders of hardware/software incompatibiliteit.
Hola, ik ben gedumpt. Ik begrijp helemaal niet waar je het over hebt.
Kan iemand deze macro repareren om te werken op SW17?
Hier is de inhoud van het .swp-bestand
Dim swApp als SldWorks.SldWorks Dim swModel als SldWorks.ModelDoc2 Dim swDraw als SldWorks.DrawingDoc Dim swSheet als SldWorks.Sheet Dim swModelview2 als configuratie Dim vSheets als variant Dim swView als SldWorks.Bekijk Deel dimmen als object Dim i als geheel getal
Sub hoofd()
'Het sjabloon bevindt zich in de tekenmap van het SW-sjabloon
Stel swApp = Toepassing.SldWorks in Stel swModel = swApp.ActiveDoc in Stel swDraw = swModel in Dim ConfigName als tekenreeks Dim bRet als Booleaanse Dim vSheetProps als variant
vSheets = swDraw.GetSheetNames Voor i = 1 TB swDraw.GetSheetCount swDraw.ActivateSheet vSheets(i - 1) Stel swSheet in = swDraw.GetCurrentSheet
Count = swDraw.GetModelViewCount
Stel swView = swDraw.GetFirstView in
Doen terwijl het niet swView is niets ConfigName = swView.ReferencedConfiguration Stel swView in = swView.GetNextView Strik Deel instellen = swApp.ActiveDoc boolstatus = Part.SetupSheet5(swSheet.GetName, 12, 12, 2, 3, True, "a3 - iso - NND.slddrt", 0.42, 0.297, "Standaard", True) swSheet.SetName ConfigName