Slt, ik ben op zoek naar een macro om mijn tekentabbladen te hernoemen

Hallo 

Ik ben op zoek naar een macro die ik zou kunnen aanpassen en waarmee ik in mijn actieve weergave naar een eigenschap van het model kan zoeken en, eenmaal vastgelegd, het blad kan hernoemen volgens deze eigenschap voor alle bladen. We maken tekeningen die verschillende onderdelen bevatten met graveernummers en het is dit graveernummer dat ik graag wil importeren om het tabblad van mijn tekening een naam te geven. Als je iets hebt, laat het me dan weten. Heel hartelijk bedankt! (we zijn op SW 2016)

 

Eric

2 likes

Hallo

Kijk of het je kan helpen...

http://www.lynkoa.com/tutos/macro-solidworks-renommer-feuille-1-de-la-msie-en-plan

1 like

Ik heb een andere gevonden die zou moeten werken ... Mogelijk moet u de code wijzigen om uw functie (graveernummer) in te voeren...

Ik vond het hier in de laatste post:

http://www.forum-cao-3d.fr/api-questions/renommer-feuille-mep-solidworks-t12546.html


rename_all_sheetsconfiguration.swp
1 like

Hallo

Zou het gemakkelijker zijn om een stuk gegevens rechtstreeks in mijn tekening vast te leggen en te vragen dat de macro het blad hernoemt op basis van deze gegevens? Want uiteindelijk schrijft het nummer waarin ik geïnteresseerd ben automatisch in mijn cartridge! Ik vind het alleen vreemd dat Dassault er niet aan denkt om deze optie direct in de bladeigenschappen te integreren!!

Bedankt

Bedankt voor je antwoord cobra, maar ik had deze macro al, maar het heeft geen directe eigenschap in het onderdeel zelf, maar ofwel de config-naam of de onderdeelnaam:(

Een dom ding, maar als je deze eigenschap in de naam van de configuratie leest, zou het moeten werken...

Hallo

Om de eigenschap in het titelblok op te halen, is de eenvoudigste manier om de annotaties te herhalen.

In principe moet je dit type lus gebruiken:

    Stel swView=swDraw.GetFirstView ' Declaration in om de basiskaart in te schakelen
     Stel swNote in = swView.GetFirstNote
    swModel.ClearSelection2 (Waar)
    Doen terwijl het niet swNote is niets
        Stel swAnn in = swNote.GetAnnotation
        sValue = "$PRPSHEET:""" & Num_Gravage & """" ' Zet de naam van de woning die u zoekt
        Als swNote.PropertyLinkedText = sValue Dan
                swSheet.SetName (swNote.GetText)
                Sub afsluiten
        Einde als
        swModel.ClearSelection2 (Waar)
        Stel swNote in = swNote.GetNext
    Strik
 

 

Nou, bedankt Ceril, maar aangezien ik geen VBA-programmeur ben, weet ik niet zo zeker waar en hoe ik je regel moet invoegen, hier is de code die ik probeer aan te passen aan mijn behoeften! Als je me een handje zou kunnen helpen, zou dat geweldig zijn. Bedankt

Dim swApp als SldWorks.SldWorks
Dim swModel als SldWorks.ModelDoc2
Dim swSheet als SldWorks.Sheet
Dim swModelview2 als configuratie
Dim ConfigName als tekenreeks
Dim vSheets als variant
Dim swView als SldWorks.Bekijk
Dim i als geheel getal

Sub hoofd()
Stel swApp = Toepassing.SldWorks in
Stel swModel = swApp.ActiveDoc in

vSheets = swModel.GetSheetNames
Voor i = 1 TB swModel.GetSheetCount
swModel.ActivateSheet vSheets(i - 1)
Stel swSheet in = swModel.GetCurrentSheet
Count = swModel.GetModelViewCount

Stel swView = swModel.GetFirstView in

Doen terwijl het niet swView is niets
ConfigName = swView.ReferencedConfiguration
Stel swView in = swView.GetNextView
Strik
swSheet.SetName ConfigName
volgende i

swModel.BewerkenHerbouwen3
swModel.Save2 Onwaar
    
Einde Sub

1 like

Hallo

Bijgevoegd is de code die overeenkomt. Het enige dat overblijft is het invoeren van de naam van het gezochte onroerend goed.

 


renommage_feuille.txt

Ik heb een kleine fout gemaakt, voor de verwerking van meerdere vellen, vervang exit sub door exit do in dit deel:

Als swNote.PropertyLinkedText = sValue Dan
                swSheet.SetName (swNote.GetText )
                swModel.BewerkenHerbouwen3
                swModel.Save2 Onwaar
                Afsluiten Do

1 like

Aan de top Cyril! Heel erg bedankt voor je hulp!!

1 like

Hallo, met betrekking tot deze nieuwe macro, is er een  manier om het te vertellen dat de notitie waarin de informatie die ik zoek om mijn tabbladen te hernoemen wordt gevonden, eigenlijk meer dan één eigenschap bevat?

De notitie bestaat uit 2 eigenschappen om mijn uiteindelijke getal te vormen, en ik weet niet hoe ik het de & moet vertellen!

Samenvattend, hoe kunnen we hem vertellen dat hij de notitie moet kopiëren die deze eigenschap en deze eigenschap bevat?

Bedankt voor je hulp, ik ben slecht in VBA:)

 

Eric

Hallo

Vervang in de code de regel sValue = "$PRPSHEET:""""Num_Gravage""" 'Zet de naam van de eigenschap die u zoekt bij:

sValue = "$PRP:""Num_gravage"" & "$PRP:"Overige"""" &"   "'Voer de naam van de woning in die u zoekt"

Als er niets tussen de twee eigenschappen in de inhoud van de annotatie staat, verwijder dan de eerste & " ":

sValue = "$PRP:""Num_gravage""" & "$PRP:"""Overige"""" &" 

Hallo Cyril,  dit is wat ik heb gedaan, maar het werkt niet?!

    Doen terwijl het niet swNote is niets
        Stel swAnn in = swNote.GetAnnotation
        sValue = "$PRPSHEET:""Geen tekening""" & "$PRPSHEET:""Geen stuk (tekening)"""  'Zet de naam van de woning die je zoekt'
        Als swNote.PropertyLinkedText = sValue Dan
                swSheet.SetName (swNote.GetText)
                swModel.BewerkenHerbouwen3
                swModel.Save2 Onwaar
                Afsluiten Do
        Einde als
        swModel.ClearSelection2 (Waar)
        Stel swNote in = swNote.GetNext
    Strik
Volgend
Einde Sub

Ik heb hier alleen het gedeelte gekopieerd dat ons interesseert.

$PRPSHEET of alleen $PRP?

 

Bedankt

Eric

Hallo, het maakt niet uit PRP of PRPSHEET, het hangt af van waar de eigenschap vandaan komt.

Het is absoluut noodzakelijk om de & " " aan het einde van de sWaarde te gebruiken, d.w.z.:

sValue = "$PRPSHEET:""Geen tekening""" & "$PRPSHEET:""Geen stuk (tekening)"""  & "