Ersetzen von benutzerdefinierten Eigenschaften

Hallo

So fügen Sie eine benutzerdefinierte Eigenschaft in VBA hinzu:

Dim swApp As Object

Sub main()

Set swApp = Application.SldWorks

Dim swModel As SldWorks.ModelDoc2
Dim swModelDocExt As SldWorks.ModelDocExtension
Dim cusPropMgr As SldWorks.CustomPropertyManager
Dim bret As Boolean

Set swModel = swApp.ActiveDoc
Set swModelDocExt = swModel.Extension
Set cusPropMgr = swModelDocExt.CustomPropertyManager("")

bret = cusPropMgr.Add3("Designation4", swCustomInfoType_e.swCustomInfoText, "test Designation 4", swCustomPropertyAddOption_e.swCustomPropertyDeleteAndAdd)

End Sub

Herzliche Grüße

Um also eine Eigenschaft hinzuzufügen, den Wert einer Eigenschaft zu lesen und eine Eigenschaft zu löschen, können wir folgendes tun:

Dim swApp As Object

Sub main()

Set swApp = Application.SldWorks

Dim swModel As SldWorks.ModelDoc2
Dim swModelDocExt As SldWorks.ModelDocExtension
Dim config As SldWorks.Configuration
Dim cusPropMgr As SldWorks.CustomPropertyManager
Dim bret As Boolean
Dim lRetVal As Long
Dim ValOut As String
Dim ResolvedValOut As String
Dim wasResolved As Boolean
Dim nNbrProps As Long
Dim vPropNames As Variant
Dim vPropTypes As Variant
Dim vPropValues As Variant
Dim resolved As Variant
Dim custPropType As Long
Dim K As Long
Dim NomProperty As String

Set swModel = swApp.ActiveDoc
Set swModelDocExt = swModel.Extension
Set cusPropMgr = swModelDocExt.CustomPropertyManager("")

' On ajoute une propriété
bret = cusPropMgr.Add3("Designation5", swCustomInfoType_e.swCustomInfoText, "test Designation5", swCustomPropertyAddOption_e.swCustomPropertyDeleteAndAdd)

nNbrProps = cusPropMgr.Count
vPropNames = cusPropMgr.GetNames
For K = 0 To nNbrProps - 1
    cusPropMgr.Get2 vPropNames(K), ValOut, ResolvedValOut
    custPropType = cusPropMgr.GetType2(vPropNames(K))
    ' On relève la valeur de la propriété "Designation5"
    If vPropNames(K) = "Designation5" Then
        NomProperty = ResolvedValOut
        MsgBox NomProperty
    End If
    ' On supprime la propriété "Designation5"
    If vPropNames(K) = "Designation5" Then
        cusPropMgr.Delete (vPropNames(K))
    End If
Next K

End Sub

Herzliche Grüße

Vielen Dank D. Roger für Ihre Belohnung, es funktioniert bis auf die Werte von Eigenschaften, die Anführungszeichen enthalten, zum Beispiel " $PRP:"SW-Dateiname", im Makro Standardwerte   "Kompilierungsfehler  Erwartetes Listentrennzeichen oder )", ich verstehe das Problem gut, was in den Eigenschaften geschrieben "mischt" sich mit dem VB-Code, wie man ihm sagt, dass die Anführungszeichen nicht Nicht Teil des Codes, sondern des Werts, der in die Box geschrieben werden soll?

schreiben Sie wie folgt (mit allen Anführungszeichen): "$PRP:""SW-Dateiname"""

Herzliche Grüße

1 „Gefällt mir“

Super perfekt, alles funktioniert wie es soll! Ich werde später nachsehen, ob ich das amcro in burst auf mehreren Dateien ausführen kann.