Aber sicher doch

Code:___________________
Option Explicit
Public Enum swParamType_e
swParamTypeDouble = 0
swParamTypeString = 1
swParamTypeInteger = 2
swParamTypeDVector = 3
End Enum
Sub Main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim Config As Variant
Dim swAttDef As SldWorks.AttributeDef
Dim swAtt As SldWorks.Attribute
Dim swParam As SldWorks.Parameter
Dim DC As String
Dim bRet As Boolean
Dim value1 As String
Dim value2 As String
DC = "DesignChecker"
Set swApp = CreateObject("SldWorks.Application")
Set swModel = swApp.ActiveDoc
'Kontrolle Datei geöffnet
If swModel Is Nothing Then
Call MsgBox("Keine Datei geöffnet", vbOKOnly, "Information")
Exit Sub
End If
'----------------------------------------------------------------------------------------------------------------
'Eintragen Design Checker Resultat
Debug.Print swModel.DeleteCustomInfo2(Config, "Design Check")
Debug.Print swModel.AddCustomInfo3(Config, "Design Check", swCustomInfoText, "Ok")
'----------------------------------------------------------------------------------------------------------------
'Einfügen des Attributes
Set swAttDef = swApp.DefineAttribute(DC)
bRet = swAttDef.AddParameter(DC, SwConst.swParamTypeString, 4, 0)
bRet = swAttDef.Register
Set swAtt = swAttDef.CreateInstance5(swModel, Nothing, "DesignCheck", 0, SwConst.swAllConfiguration)
swModel.ForceRebuild3 True
'----------------------------------------------------------------------------------------------------------------
'Vergleich der Parameter Werte
Set swParam = swAtt.GetParameter(DC)
Dim k As String
k = swParam.GetStringValue
If k = "4" Then
value1 = "Ok"
value2 = swModel.GetCustomInfoValue(Config, "DesignCheck")
If swParam = value2 Then
MsgBox ("stimmt überein")
End If
End If
End Sub
______________________________________
Des Weiteren habe ich festgestellt das swAtt in der ersten Zeile bei dem Vergleich nur nicht Nothing ist, wenn der Ordner im Design Tree noch nicht gesetzt wurde (also SwAttDef.CreateInstance5....) noch nicht ausgeführt wurde. zu dem Zeitpunkt läuft das Makro wie gewollt durch nur den Parameter Wert "4" kann ich mit .GetStringValue nicht erreichen (k = "")
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP