Ich muss sehr oft Teile verwenden und aktualisieren, die seit langem mit SolidWorks erstellt wurden.
Wann immer ich eines dieser Teile ändern oder eine Ebene davon neu erstellen muss, muss ich ihm ein Material zuweisen (normalerweise immer das gleiche), die benutzerdefinierte Materialeigenschaft erstellen, die Masseneigenschaft erstellen und zu den Dokumenteigenschaften gehen, um die Masseneinheit zu ändern, um sie in kg zu ändern.
Um zu vermeiden, dass dieselben Aktionen immer wieder wiederholt werden, würde ich gerne wissen, ob es möglich sein wird, ein Makro zu erstellen, das all dies tun würde.
Ich habe versucht, ein Makro aufzuzeichnen, während ich all dies tue, aber wenn ich es verwenden möchte, öffnet es einfach das Menü für benutzerdefinierte Eigenschaften für mich und nichts anderes passiert.
Da ich nicht viel über Macro weiß, hoffe ich, dass mir jemand helfen kann.
Versuchen Sie, das Gesuchte zu finden, und versuchen Sie, es nach Ihren Wünschen zu modifizieren.
Ansonsten gibt es ohne Makrokenntnisse die Visiativ-Werkzeuge (MyCad-Integration), die ohne Kenntnisse in Makro und Batch das tun, was Sie verlangen (anwenden auf einen Ordner oder eine Baugruppe und alle Kinder:
Sie können sich auch den Aufgabenplaner ansehen, mit dem Sie benutzerdefinierte Eigenschaften auf mehrere Teile oder Ordner anwenden können, ohne dass VBA erforderlich ist.
Meiner Meinung nach gibt es einfachere als die oben angegebenen 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
Selbstverständlich ersetzen Sie in der Zeile mit der Funktion "SetMaterialPropertyName2" die Werte in Anführungszeichen nach Belieben.