Makro zum Erstellen und Ändern von Eigenschaften in einem SolidWorks Teil

Hallo

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.

 

Vielen Dank im Voraus für Ihre Antworten.

 

Guillaume

Für den materiellen Blick auf dieses Makro wird es Ihnen sicherlich helfen:

https://www.codestack.net/solidworks-api/document/materials/show-edit-material-dialog/

Für Eigenschaften, die Sie im Menü dieses Kapitels finden, lesen Sie eine Eigenschaft und schreiben Sie eine Eigenschaft:

https://www.codestack.net/solidworks-document-manager-api/document/data-storage/custom-properties/

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:

https://help.visiativ.com/mycadtools/2018/fr/PrsentationdelutilitaireIntegrat.html

1 „Gefällt mir“

Vielen Dank für Ihre Antwort.

Ich habe es geschafft, die Änderung der Masseneinheit und die Anwendung des Materials zu bewältigen.

Für die Eigenschaften werde ich versuchen, mit Ihrem Link zu sehen.

Und mein Wissen über Makro hört bei ein paar VBA-Kursen über Excel im Bachelor-Abschluss auf.

Dito, aber dank dieser Seite habe ich es geschafft, mit oft ein wenig Hilfe in diesem Forum auszukommen.

1 „Gefällt mir“

Hallo

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.

1 „Gefällt mir“

Hallo

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.

Herzliche Grüße

4 „Gefällt mir“

Vielen Dank @d.roger für Ihre Zeit.

Die Antwort ist großartig und genau das, was ich brauche, das einzige Problem, das mir bleibt, ist die Wahl des Materials.

Anstelle von "MyConfigName" ist es möglich, etwas anderes zu verwenden, um die Änderung unabhängig von der Konfiguration anzuwenden.

In einigen Fällen haben meine Teile die "Standard"-Konfiguration, aber in vielen Fällen haben sie andere Namen.

 

Vielen Dank im Voraus 

 

Guillaume

Sie können die Zeile ersetzen:

Part.SetMaterialPropertyName2 "MyConfigName", "C:\xxxxxxxx\MyMaterialBase.sldmat", "MyMaterialName"

Nach den Zeilen:

Legen Sie swConfMgr = Teil.ConfigurationManager fest
Legen Sie swconf = swConfMgr.ActiveConfiguration fest
Part.SetMaterialPropertyName2 swconf. Name, "C:\xxxxxxxx\MyMaterialBase.sldmat", "MyMaterialName"

Dies ermöglicht es Ihnen, den Namen der aktiven Konfiguration auszulesen und somit daran zu arbeiten.

Herzliche Grüße

1 „Gefällt mir“

Vielen Dank, es ist perfekt

 

Herzliche Grüße