Ik moet heel vaak onderdelen die op SolidWorks zijn gemaakt lange tijd gebruiken en bijwerken.
Telkens wanneer ik een van deze onderdelen moet wijzigen of er een vlak van moet maken, moet ik er een materiaal aan toewijzen (meestal altijd hetzelfde), de aangepaste materiaaleigenschap maken, de massa-eigenschap maken en naar de documenteigenschappen gaan om de massa-eenheid te wijzigen om deze in kg te veranderen.
Om te voorkomen dat dezelfde acties steeds opnieuw worden herhaald, zou ik graag willen weten of het mogelijk zal zijn om een macro te maken die dit allemaal zou doen.
Ik heb geprobeerd een macro op te nemen terwijl ik dit allemaal deed, maar als ik het wil gebruiken, wordt het gewoon het menu met aangepaste eigenschappen voor mij geopend en gebeurt er verder niets.
Omdat ik niet veel weet over Macro, hoop ik dat iemand me kan helpen.
Kijk of je vindt wat je zoekt en probeer het naar wens aan te passen.
Anders zonder enige kennis van macro zijn er de Visiatv-tools (MyCad-Integration) die doet wat je vraagt zonder enige kennis in macro en in batch (van toepassing op een map of een assemblage en alle kinderen:
U kunt ook kijken naar de taakplanner waarmee u aangepaste eigenschappen kunt toepassen op verschillende onderdelen of mappen zonder dat u VBA nodig hebt.
Naar mijn mening zijn er eenvoudiger dan de hierboven gegeven links:
Dim swApp As SldWorks.SldWorks
Dim Part As ModelDoc2
Dim CustPropMgr As CustomPropertyManager
Dim bRet As Boolean
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
If Not Part Is Nothing Then
If Part.GetType() = swDocumentTypes_e.swDocPART Then
bRet = Part.SetUserPreferenceIntegerValue(swUserPreferenceIntegerValue_e.swUnitSystem, swUnitSystem_e.swUnitSystem_Custom)
bRet = Part.SetUserPreferenceIntegerValue(swUserPreferenceIntegerValue_e.swUnitsMassPropMass, swUnitsMassPropMass_e.swUnitsMassPropMass_Kilograms)
Part.SetMaterialPropertyName2 "NomDeMaConfig", "C:\xxxxxxxx\MaBaseDeMateriaux.sldmat", "NomDeMonMateriau"
Set CustPropMgr = Part.Extension.CustomPropertyManager("")
bRet = CustPropMgr.Add3("Matiere", swCustomInfoType_e.swCustomInfoText, """SW-Material""", swCustomPropertyAddOption_e.swCustomPropertyDeleteAndAdd)
bRet = CustPropMgr.Add3("Masse", swCustomInfoType_e.swCustomInfoText, """SW-Masse""", swCustomPropertyAddOption_e.swCustomPropertyDeleteAndAdd)
Part.ForceRebuild3 True
End If
End If
End Sub
Natuurlijk vervangt u op de regel met de functie "SetMaterialPropertyName2" de waarden tussen aanhalingstekens zoals u dat wilt.