Konfiguration der Makroeigenschaften

Guten Abend

 

Ich bin auf der Suche nach einem Makro, das die SOLIDWORKS Eigenschaften einer Konfiguration aktualisiert.

Derzeit verwende ich diese beiden Codezeilen, um die Eigenschaften zu aktualisieren, aber die Aktualisierung erfolgt für das Dokument und nicht für eine angegebene Konfiguration.

 

bRet = swmodel. DeleteCustomInfo2("", "ma_propriété")

bRet = swmodel. AddCustomInfo3("", "ma_propriété", swCustomInfoText, "hier der Wert der Eigenschaft")

 

 

Haben Sie mir irgendwelche Informationen zu diesem Thema zu geben?

 

Im Voraus vielen Dank

 

 

Sylvain

 

 

 

 

 

 

 

2 „Gefällt mir“
Guten Abend Ich empfehle Ihnen, sich diesen Link anzusehen http://help.solidworks.com/2013/English/api/swdocmgrapi/get_configuration_information_example_vbnet.htm

Auf die Gefahr hin, ein bisschen "schwer" zu sein, warum nicht Smartproperties (Axemble-Dienstprogramm zum Verkauf auf Lynkoa) verwenden, anstatt Makros auszuführen (persönlich beherrsche ich nicht, deshalb !!).

 

Für Leute, die die Makroprogrammierung nicht beherrschen, ist diese Art von Dienstprogramm immer noch das Beste, was wir tun, oder?

 

Zu Ihrer Information, ich bekomme keinen Cent auf den Verkauf des Smartproperties-Vans!!!!!!!

 

 

http://www.lynkoa.com/store/fr/tools-et-macros/utilitaire-smartproperties.html

 

4 „Gefällt mir“

@flegendre

Es stimmt, dass smartproperties diese Funktion erfüllt, aber es ist komplex, weil es mehr  kann

Hallo

 

Sie müssen die CustomPropertyManager-API  verwenden, in der Sie den Namen der zu ändernden Konfiguration angeben: "" für benutzerdefinierte Eigenschaften.

 

Dann verfügen Sie für das Objekt über die Add-, Get-, Set- und Delete-APIs, um sie zu erstellen, abzurufen, zu ändern und zu löschen:

 

http://help.solidworks.com/2013/English/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.ICustomPropertyManager_members.html

 

@Lucas Prieur : Ihr Link ist die API, die verwendet werden soll, wenn das Dokument geschlossen ist

 

Beispiel:

 

Option Explizit

Dim swApp als SldWorks.SldWorks

Dim swModel As ModelDoc2

Dim swModelDocExt als ModelDocExtension

Dim swCustProp As CustomPropertyManager

Dim val As String

Dim valout As String

Dim bool als boolescher Wert

 

Sub main()

 

Legen Sie swApp = Application.SldWorks fest

Legen Sie swModel = swApp fest. ActiveDoc (Englisch)

Legen Sie swModelDocExt = swModel fest. Erweiterung

' Abrufen der benutzerdefinierten Eigenschaftsdaten

 

Legen Sie swCustProp = swModelDocExt fest. CustomPropertyManager("Konfigurationsname")

 

bool = swCustProp. Get4("Property_Name", False, val, valout)

 

Debug.Print "Wert: " & Wert

Debug.Print "Ausgewerteter Wert: " & valout Debug.Print "Aktuelle Daten: " & bool

 

Ende Sub

7 „Gefällt mir“

Hallo

 

Danke für diese Antworten, ich werde es mir ansehen.

Was SMARTPROPERTIES betrifft, so benutze ich es. Tatsächlich habe ich eine Schaltfläche in den SMARTPROPERTIES, die ein Makro mit einer SQL-Abfrage verknüpft, die auf das ERP verweist.

Aus den Werten einer Eigenschaft rufe ich einige Parameter aus dem ERP ab, um sie wieder in die SOLIDWORKS Eigenschaften einzufügen.

 

Ich halte euch auf dem Laufenden

 

Vielen Dank

 

Sylvain

 

 

2 „Gefällt mir“

Hallo

Hier ist ein Beispiel, das die Antwort von prossignol vervollständigt

 

Ich verwende dieses Makro, um Eigenschaften in allen Teile- und Baugruppenkonfigurationen zu entfernen:

 

Option Explizit
    Dim swApp               als SldWorks.SldWorks
    Dim swModel             As SldWorks.ModelDoc2
    Dim swModelDocExt       As SldWorks.ModelDocExtension
    Dim swConfig            als SldWorks.Configuration
    Dim swCustPropMgr       As SldWorks.CustomPropertyManager
    Sonne i                   So lang
    Dim vConfName           als Variante
    ValOut als String dimmen             
    
Öffentliche Enumerations swDocumentTypes_e
    swDocNONE = 0       '  Früher TYPE_NONE
    swDocPART = 1       '  Früher TYPE_PART
    swDocASSEMBLY = 2   '  Früher TYPE_ASSEMBLY
    swDocDRAWING = 3    '  Früher TYPE_DRAWING
    Ende der Enumeration

Sub main()
    
    Legen Sie swApp = Application.SldWorks fest
    Festlegen von swModel = swApp.ActiveDoc
    
  "Eigenschaften auf der Registerkarte "Konfigurationsspezifisch" entfernt
  Wenn swModel.GetType <> swDocDRAWING dann
    vConfName = swModel.GetConfigurationNames
    Für i = 0 TB UBound(vConfName)
        Set swConfig = swModel.GetConfigurationByName(vConfName(i))
        'Debug.Print'  Konfiguration = ' & vConfName(i)
        Legen Sie swCustPropMgr = swConfig.CustomPropertyManager fest
        
        swCustPropMgr."Autor" löschen
        swCustPropMgr.Delete "Projekt"
        swCustPropMgr."Status" löschen
        swCustPropMgr."Nummer" löschen
 
   Weiter i
 Ende, wenn
 
Ende Sub

2 „Gefällt mir“

Für minimale Änderungen an Ihrem Code

Geben Sie einfach den Namen der Konfiguration anstelle des leeren Feldes an

 

bRet = swmodel. DeleteCustomInfo2("Konfigurationsname", "ma_propriété")

bRet = swmodel. AddCustomInfo3("Konfigurationsname", "ma_propriété", swCustomInfoText, "Hier ist der Wert der Eigenschaft")

 

Es ist jedoch ratsam, die Reaktion von Prossignol durchzugehen

8 „Gefällt mir“

Haben Sie es geschafft, Ihr Makro zu aktualisieren???

1 „Gefällt mir“

 Hallo an alle

 

Vielen Dank für Ihre Antworten, die das Problem gerade gelöst haben.

 

 

Sylvain