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)
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)
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