J'ai très souvent besoin d'utiliser et d'actualiser des pièces créer sur SolidWorks il y un un bon moment.
A chaque fois que j'ai besoin de modifier une des ces pièces ou d'en recréer un plan je dois lui affecter un matériau (en général toujours le même), créer la propriété personnalisées Matériau, créer la propriété Masse et me rendre dans les propriété du document pour modifier l'unité de masse pour la passer en kg.
Pour éviter de répéter toujours ces mêmes actions j'aimerai savoir s'il serai possible de créer une macro qui ferait tout ça.
J'ai essayé d'enregistrer une macro en faisant tout ça mais lorsque je veux l'utiliser elle m'ouvre juste le menu des propriétés personnalisées et rien d'autre ne se passe.
Comme je n'y connais pas grand chose en Macro j'espère que quelqu'un saura m'aider.
Regarde si tu trouve ton bonheur et essaie de modifier à ton gout.
Sinon sans aucune connaissance en macro il y à les outils Visiativ (MyCad-Intégration) qui fait ce que tu demande sans aucune connaisance en macro et en lot (appliquer sur un dossier ou un assemblage et tous les enfants:
Tu peux aussi regarder du coté du planificateur de tache qui te permet d'appliquer des propriétés personalisées à plusieures pièces ou dossier sans avoir besoin de VBA.
A mon avis il y a plus simple que les liens donnés au-dessus :
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
Bien sûr, sur la ligne avec la fonction "SetMaterialPropertyName2" tu remplaces les valeurs entre guillemets à ta convenance.