Eigenschaft zum Umbenennen von Makros

Tag zusammen

Ich möchte ein Makro erstellen, um vorhandene Teile zu bearbeiten:

Diese Teile verfügen bereits über eine (oder mehrere) Konfiguration(en).
Ich möchte die benutzerdefinierte Eigenschaft " Article Code" aus der Konfiguration " 00 " abrufen.
Holen Sie sich dann nur die ersten 11 Zeichen und fügen Sie ein Suffix hinzu.

Dieser neue " Artikelcode " ermöglicht es Ihnen, Konfigurationen auszufüllen, die im Rest des Makros erstellt werden. Dieser Teil ist bereits erledigt.

Grundsätzlich sollte mein Makro die " 00 " -Konfiguration wie folgt aktivieren:

    ''' Activation de la config 00
    boolstatus = swModel.ShowConfiguration2("00")

Rufen Sie dann den Wert der Eigenschaft " Article Code" ab und rufen Sie mit einem LEFT die ersten 11 Zeichen in einer Variablen ab, die ich für die anderen Konfigurationen zuweisen konnte.

Ich habe diesen Befehl ausprobiert, aber er schlägt Fehler auf:

    ''' Récupération de la propriété Code Article existante
    lRetVal = swCustProp.Get6("Code Article", False, ValOut, CodArt00, False, False)

Haben Sie einen Hinweis?

Vielen Dank

Hallo;

Führt hierher...
https://help.solidworks.com/2022/English/api/sldworksapi/Get_Custom_Properties_Example_VB.htm?verRedirect=1
https://help.solidworks.com/2022/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.icustompropertymanager~get6.html

https://help.solidworks.com/2022/english/api/sldworksapi/get_custom_properties_for_configuration_example_vb.htm

Es ist schwer, Ihnen zu antworten, ohne mehr von Ihrem Code zu sehen... Aber es scheint, dass Ihr Fehler ist:

lRetVal = swCustProp.Get6("Code Article", False, ValOut, **CodArt00**, False, False)
essayez avec:
lRetVal = swCustProp.Get6("Code Article", False, ValOut,ResolvedValOut, False, False)

Herzliche Grüße.

4 „Gefällt mir“

Hallo

Ich gehe in die Richtung @Maclane und wenn die Zeilen aus dem Makro stammen , das in diesem Thema initiiert wurde ( Makromultiplikation - Makro - myCAD Forum (visiativ.com)), müssen Sie in den Variablendeklarationen nachsehen, ob es kein Problem gibt.
Auf die gleiche Weise funktioniert Get nicht, wenn die gesuchte Eigenschaft nicht existiert (Sie müssen in diesem Fall eine Existenzprüfung hinzufügen und diese ggf. erstellen)

3 „Gefällt mir“

Vielen Dank an euch beide.
Ich habe einen Testcode erstellt, der funktioniert.
Also werde ich es in mein Makro integrieren, damit es meine RAL-Konfigurationen informiert.

Option Explicit
    Dim swApp                       As SldWorks.SldWorks
    Dim swModel                     As SldWorks.ModelDoc2
    Dim swConfigMgr                 As SldWorks.ConfigurationManager
    Dim swConfig                    As SldWorks.Configuration
    Dim vConfigNameArr              As Variant
    Dim stnameConfig                As String
    Dim boolstatus                  As Boolean
    Dim swModelDocExt               As ModelDocExtension
    Dim swCustProp                  As CustomPropertyManager
    Dim sValout                     As String
    Dim CodArt00                    As String
    Dim CodArtRAL                   As String
    Dim CodeArticle                 As String
    Dim lRetVal                     As String
    Dim ValOut                      As String

Type ConfigData
    confName                        As String
    CodArt00                        As String
    CodArtRAL                       As String
    
End Type


Sub main()

    Set swApp = Application.SldWorks
    
    Dim swModel As SldWorks.ModelDoc2
    
    ''' Récupération du document actif
    Set swModel = swApp.ActiveDoc
    Set swConfigMgr = swModel.ConfigurationManager
    
    ''' Récupération de la configuration active
    Set swConfig = swConfigMgr.ActiveConfiguration
    stnameConfig = swConfig.Name
    vConfigNameArr = swModel.GetConfigurationNames
    
    Set swModelDocExt = swModel.Extension

    Set swModelDocExt = swModel.Extension
    
    ''' Activation de la config 00
    boolstatus = swModel.ShowConfiguration2("00")
    
    stnameConfig = swConfig.Name
    
    Set swCustProp = swModelDocExt.CustomPropertyManager(stnameConfig)
    
    ''' Récupération de la propriété Code Article existante
    lRetVal = swCustProp.Get6("Code Article", False, ValOut, CodArt00, False, False)
    
    'Renvoie les onze premiers caractères du Code Article
    MsgBox Left(CodArt00, 11)
    
    ''' Ajout du Code Article RAL à partir des 11 caractères gauche du Code Article
    CodArtRAL = (Left(CodArt00, 11)) & "R6005"
    
    MsgBox (CodArtRAL)

   
End Sub
2 „Gefällt mir“