Ik wil graag een macro maken op Solidworks om een assembly en zijn componenten te hernoemen volgens het volgende principe:
"Project Number-ES00" voor montage
"Projectnummer-ES0i" voor de i-de subassemblage (1e niveau)
"Projectnummer-ES0i-C00j" voor het jde deel van de i-de subassemblage (2e niveau)
De creatieboom moet er bijvoorbeeld als volgt uitzien:
INT846-ES00
INT846-ES01
INT846-ES01-C001
INT846-ES01-C002
INT846-ES01-C003
INT846-ES01-C004
INT846-ES02
INT846-ES02-C001
INT846-ES02-C002
INT846-ES03
INT846-ES04
Ik kan het herhalingsprincipe in VBA coderen, maar ik weet niet hoe ik een assembly en zijn componenten opnieuw moet registreren, rekening houdend met de boom als geheel. Dan weet ik niet hoe ik door de creatieboom van het betreffende geheel moet gaan.
Als je voorstellen hebt, ben ik een en al oor!
Bedankt voor degenen die mijn vraag zullen beantwoorden.
'Regels om alleen de bestandsnamen te hebben ReDim Naam(1 TB ((UBound(retval) - 1) / 2) + 1) Voor i = 0 TB (UBound(retval) - 1) / 2 Tekst = Tekst & reactie(2 * i) & vbCr Naam(i + 1) = retval(2 * i) volgende i i = 0
In principe zou het het meest efficiënt zijn om de bestanden buiten SW te hernoemen en vervolgens de externe verwijzingen van de documenten om te leiden...
Maar het is ingewikkeld voor qlq die niet de abitude van SW API's
De eenvoudigste ontwikkelingskant is om de assemblage te openen en door de componenten te bladeren en vervolgens elk van de documenten op te slaan, aangezien de hoofdassemblage open is, zal SW zelf de verwijzingen omleiden ...
Er zijn gewoon de oude bestanden met de oude namen die handmatig moeten worden verwijderd
Een recursie op componenten maken (loop door de hele assemblagestructuur)
het voorbeeld ophalen uit de API-Help
"Voorbeeld van assemblage op componentniveau (VBA)"
Het startpunt voor de marco is de MAin-procedure
In dit voorbeeld wordt de functie TraverseComponent uitgevoerd op elke component, het swComp-object bevat de component en de nLevel-variabele bevat het niveau van de component in de boom (bijv. 1 voor het 1e niveau, 2 voor de component van een subassemblage, 3 enz ...)
u moet nog steeds de documentregistratiecode toevoegen (het document wordt verkregen uit de "component" door de GetmodelDoc API)
Zorg ervoor dat u het voorkomen van componenten beheert (hetzelfde onderdeel kan meerdere keren aanwezig zijn), alleen het eerste exemplaar moet worden verwerkt