Macro werkt niet meer met SW 2017

Hallo mensen,

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 ...

Hier is het bestand ...

Bij voorbaat dank

Kanton Cala


config_to_sheet.swp

Hallo 

Geeft Solid een foutmelding of wordt de code wel gecompileerd maar doet het er niet mee wat je wilt?

 

Dimitri

Hij geeft geen fouten.

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.

Hallo

 

Na testen onder SW2016 werkt het al niet zo goed omdat

Geen controle over de vorige bladnaam, zodat als de configuratie dezelfde naam heeft, SW niet meerdere bladen met dezelfde naam kan hernoemen

3 likes

Heb je het geschreven of heb je het opgenomen met de Macro recorder?

Is het mogelijk om configuraties met dezelfde naam in dezelfde kamer te hebben? Ik geloof het niet.

Voor mijn gebruik heeft het altijd heel goed gewerkt... tot SW 2017

Daar niet geschreven of opgenomen. Ik weet niets over VB. Het is een bestand dat ik jaren geleden heb gekregen.

Maar ik weet niet waar het vandaan komt.

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 :)

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

2 likes

Inderdaad, ik zou dezelfde configuratie in verschillende vellen kunnen gebruiken.

Maar in dit geval gebruik ik deze macro niet.

Het wordt gebruikt voor mijn operationele plannen

Hallo

Voor de zekerheid, je hebt een kamer met x-configuraties, en de x-configuraties hebben ze MEP in een enkel MEP-bestand met een folio-configuratie?

1 like

Juist!

Hallo

U kunt beginnen met het vervangen van de regel:

swSheet.SetName ConfigName

Bij:

swSheet.SetName ConfigName & "-" & i

Je bladen krijgen dan de naam "ConfigName"-"SheetName", het is aan jou om te zien of dit vervelend is.

Vriendelijke groeten

Bedankt voor de info, maar ik heb het niet nodig.

Graag gedaan, en oeps, sorry!

als het een oude macro is

Kijk of het niet de IFF is en of dat verschilt afhankelijk van de versies

van SolidWorks en Excel

en Excel SolidWorks-compatibiliteit, ook afhankelijk van de versie

@+ ;-)

Goedenavond

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.

1 like

@gt22 & Cyril.f

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

volgende i

swModel.ForceRebuild3 (onwaar)
Einde Sub
 

Hallo

Als je wilt, kun je deze proberen.

Vriendelijke groeten


config_to_sheet_2.swp
3 likes

Ja, het werkt. Resultaat in foto's.

Heel erg bedankt d.roger !!!!!!!!!!

Fijn weekend.


macro_config_to_sheet_sw_2017.jpg