Configuratie wijzigen in plannen (vba)

Hallo

Ik ben op zoek naar een liefdadige ziel om me te helpen een programma te maken om de configuraties in de tekening te veranderen. Laat het me uitleggen.

Ik heb een kamer met meerdere configuraties, ik moet voor elke configuratie een plan maken (dus voor elke configuratie een ander blad). Ik heb al een macro om de bladen te kopiëren/plakken, en een macro om de bladen te hernoemen (dezelfde naam als de naam van de configuraties). Nu ben ik op zoek naar een code om door elk blad te gaan en de referentieconfiguratie van de tekening te wijzigen volgens de naam van mijn blad of rechtstreeks volgens de naam van mijn configuratie.

Ik heb een macro gevonden op de codestapel, maar het doet alles (kopiëren/plakken, hernoemen en wijzigen van de configuratie), ik heb geprobeerd het te wijzigen zodat het alleen de configuratie verandert. Het werkt dus, maar alleen op het laatste vel. Ik kan niet krullend worden op de bladeren. Daarnaast wil ik dat de 3 stappen onafhankelijk zijn, vandaar mijn probleem.

Iemand een idee?

Codestack-macro:

De macro geeft de configuraties van het document waarnaar wordt verwezen door naar de bladen met SOLIDWORKS-tekeningen (codestack.net)

Het einde van de code bewerken:

Sub CopySheet(tekenen als SldWorks.DrawingDoc, blad als SldWorks.sheet, SheetName als tekenreeks)

Dim swNewSheet als SldWorks.sheet
Stel swNewSheet in = draw.sheet(draw. GetSheetNames()(gelijkspel. GetSheetCount() - 1))
            
Dim vViews als variant
vViews = swNewSheet.GetViews
            
Stel swDraw = swApp.ActiveDoc in
Dim vSheetNames als variant
vSheetNames = swDraw.GetSheetNames
            
Dim i als geheel getal
Zon j Als geheel getal
            
Voor j = 0 TB UBound(vSheetNames)
            
Voor i = 0 TB UBound(vViews)
                
Dim swView als SldWorks.Bekijk
Stel swView = vViews(i) in
                
swView.ReferencedConfiguration = Bladnaam
                
volgende i
Volgende j

Einde Sub

Hallo

Ter info, dit is een functie die bestaat in de SmartDrawings-tool van myCADtools:

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

U kunt de tool 30 dagen testen: 

https://www.lynkoa.com/mycadtools

Fijne dag

Philippe

1 like

Bedankt voor het antwoord, maar ik wou dat ik zonder kon

Ik ben blijven werken aan de code, maar daar begrijp ik niet alles van. Inderdaad, mijn code gaat goed op elke pagina, lokaliseert de weergaven goed, maar verandert alleen de configuratie van het laatste blad. Het is dit punt dat ik niet begrijp. Waarom verandert de configuratie van de laatste pagina, maar niet de andere?

Ik heb mijn code in PJ gezet, als iemand een idee heeft , zou het top top top zijn.

Bedankt

Edit: Na een beetje sleutelen realiseerde ik me dat de configuratie verandert op de laatste pagina (met de juiste configuratie), maar als ik mijn code bewerk zodat de configuratie op een andere pagina verandert, verandert deze altijd voor dezelfde configuratie (de laatste) en niet de configuratie die overeenkomt met de naam van de pagina


macro28.swp

Hallo;

Uw "SheetName"-waarde is niet "variabel"...
Net boven de rij swView.ReferencedConfiguration = SheetName
Add Set SheetName = SheetNames(j)

Opmerking: aarzel niet om de "stap voor stap"-modus (F8) van de VB-editor te gebruiken (met het lokale visualisatievenster Variabelen actief).
            Dit maakt het veel gemakkelijker om de code te begrijpen en fouten te vinden....


Vriendelijke groeten

1 like

Hallo

Helaas werkt de correctie niet.

Vriendelijke groeten

Hallo

Helaas werkt de correctie niet.

Vriendelijke groeten