Właściwość zmiany nazwy makra

Cześć wszystkim

Chciałbym utworzyć makro do przetwarzania istniejących części:

Te części mają już jedną (lub więcej) konfigurację.
Chciałbym pobrać właściwość niestandardową " Kod artykułu " z konfiguracji " 00 ".
Następnie pobierz tylko pierwsze 11 znaków i dodaj sufiks.

Ten nowy " Kod artykułu " pozwoli Ci wypełnić konfiguracje, które są tworzone w pozostałej części makra. Ta część jest już wykonana.

Zasadniczo moje makro powinno aktywować konfigurację " 00 " w następujący sposób:

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

Następnie pobierz wartość właściwości " Kod artykułu " i za pomocą LEFT pobierz pierwsze 11 znaków w zmiennej, którą mogłem przypisać do innych konfiguracji.

Próbowałem tego polecenia, ale zawiera błędy:

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

Czy masz trop?

Dziękuję

Witam;

Prowadzi tutaj...
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

Trudno jest Ci odpowiedzieć, nie widząc więcej Twojego kodu... Ale wygląda na to, że twoim błędem jest:

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

Pozdrowienia.

4 polubienia

Witam

Idę w kierunku @Maclane i jeśli linie są z makra zainicjowanego w tym temacie ( Mnożenie makr - Makro - myCAD Forum (visiativ.com)), to trzeba poszukać w deklaracjach zmiennych czy nie ma problemu.
W ten sam sposób Get nie działa, jeśli właściwość, której szukasz, nie istnieje (w tym przypadku musisz dodać sprawdzenie istnienia i utworzyć je w razie potrzeby)

3 polubienia

Dziękuję wam obojgu.
Stworzyłem kod testowy, który działa.
Zamierzam więc zintegrować go z moim makrem, aby informował o moich konfiguracjach RAL.

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 polubienia