Forum:SolidWorks
Thema:Konfigurationsspezifische Eigenschaften per Makro ändern
Möchten Sie sich registrieren?
Wer darf antworten? Registrierte Benutzer können Beiträge verfassen.
Hinweise zur Registrierung Sie müssen registriert sein, um Beiträge oder Antworten auf Beiträge schreiben zu können.
Ihr Benutzername:
Ihr Kennwort:   Kennwort vergessen?
Anhang:    Datei(en) anhängen  <?>   Anhänge verwalten  <?>
Grafik für den Beitrag:                                                
                                                       
Ihre Antwort:

Fachbegriff
URL
Email
Fett
Kursiv
Durchgestr.
Liste
*
Bild
Zitat
Code

*HTML ist AUS
*UBB-Code ist AN
Smilies Legende
Netiquette

10 20 40

Optionen Smilies in diesem Beitrag deaktivieren.
Signatur anfügen: die Sie bei den Voreinstellungen angegeben haben.

Wenn Sie bereits registriert sind, aber Ihr Kennwort vergessen haben, klicken Sie bitte hier.

Bitte drücken Sie nicht mehrfach auf "Antwort speichern".

*Ist HTML- und/oder UBB-Code aktiviert, dann können Sie HTML und/oder UBB Code in Ihrem Beitrag verwenden.

T H E M A     A N S E H E N
Klopfer195

Beiträge: 21 / 0

SolidWorks 2019 SP5

Guten Morgen Gemeinde,

ich verzweifle gerade bei dem Versuch mir ein Makro zu programmieren das die Konfigurationsspezifischen Eigenschaften ändert.
Habe es schon über Set2 Method (ICustomPropertyManager) versucht. Damit ändert er allerdings nur die Benutzerdefinierten Eigenschaften.
Dann habe ich folgendes Beispiel zum Auslesen der Eigenschaften gefunden.

    Dim swApp As SldWorks.SldWorks
    Dim swModel As SldWorks.ModelDoc2
    Dim swConfigMgr As SldWorks.ConfigurationManager
    Dim vConfName As Variant
    Dim vConfParam As Variant
    Dim vConfValue As Variant
    Dim i As Long
    Dim j As Long
    Dim bRet As Boolean
    Dim vRet As Boolean
   

Sub main()

   
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set swConfigMgr = swModel.ConfigurationManager
    Debug.Print "File = " + swModel.GetPathName
    vConfName = swModel.GetConfigurationNames
    For i = 0 To UBound(vConfName)
        bRet = swConfigMgr.GetConfigurationParams(vConfName(i), vConfParam, vConfValue)
        Debug.Assert bRet
        Debug.Print "  Configuration = " & vConfName(i)
        If Not IsEmpty(vConfParam) Then
            For j = 0 To UBound(vConfParam)
                Debug.Print "    " & vConfParam(j) & " = " & vConfValue(j)
            Next j
        End If
    Next i
   
End Sub

Damit klappt das Auslesen wunderbar. Aber leider will der SetConfigurationParams-Befehl nicht das tun was er tun sollte.

Hat von euch jemand schon etwas programmiert, oder hat jemand eine Idee wie die Eigenschaften noch geändert bekomme?
Vielen Dank schonmal 

bk.sc

Beiträge: 2411 / 70

-Solid Works 2019 SP3
-Pro Engineer WF 3

Hallo Klopfer,

wie holst du dir den ICustomPropertyManagaer? Dir ist klar das du diesen explizit für eine Konfiguration holen musst wenn du auch auf die konfigurationsspezifischen Eigenschaften zugreifen willst z.B. wie im folgendem Codesnipsel.

Code:
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set swConfig = swModel.GetActiveConfiguration
    Set swCustPropMgr = swConfig.CustomPropertyManager

oder so

Code:
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swModelDocExt = swModel.Extension
Set swConfig = swModel.GetActiveConfiguration()
Set swCustPropMgr = swModelDocExt.CustomPropertyManager(swConfig.Name)

Bei dem Code von dir bin ich mir nicht sicher ob der wirklich was mit den konfigurationsspezifischen Eigenschaften zu tun hat.

Gruß
Bernd

Gruß
Bernd

------------------
--- Man muß nicht alles wissen, man muß nur wissen wo es steht ---

Staatlich anerkannte Deutschniete  

[Diese Nachricht wurde von bk.sc am 19. Feb. 2020 editiert.]

Klopfer195

Beiträge: 21 / 0

SolidWorks 2019 SP5

Hi Bernd,
jetzt funktionierts...
bin mir sicher das ich das so schon einmal ausprobiert hatte  .
Dann schreib ich mal den Code fertig und hoffe das es dann immer noch läuft.
Ich danke dir vielmals.

[Diese Nachricht wurde von Klopfer195 am 19. Feb. 2020 editiert.]