Ik wil graag een macro maken om bestaande onderdelen te verwerken:
Deze onderdelen hebben al één (of meerdere) configuratie(s). Ik wil graag de aangepaste eigenschap " Artikelcode " ophalen uit de configuratie " 00 ". Haal dan alleen de eerste 11 tekens op en voeg een achtervoegsel toe.
Deze nieuwe " Artikelcode " stelt u in staat om configuraties in te vullen die in de rest van de macro zijn gemaakt. Dit deel is al gedaan.
Kortom, mijn macro zou de " 00 " -configuratie als volgt moeten activeren:
''' Activation de la config 00
boolstatus = swModel.ShowConfiguration2("00")
Haal dan de waarde van de eigenschap " Artikelcode " op en haal met een LINKS de eerste 11 tekens op in een variabele die ik zou kunnen toewijzen voor de andere configuraties.
Ik heb deze opdracht geprobeerd, maar het bugt:
''' Récupération de la propriété Code Article existante
lRetVal = swCustProp.Get6("Code Article", False, ValOut, CodArt00, False, False)
Ik ga in de richting van @Maclane en als de regels afkomstig zijn van de macro die in dit onderwerp is geïnitieerd ( Macrovermenigvuldiging - Macro - myCAD Forum (visiativ.com)), moet je in de variabele declaraties kijken als er geen probleem is. Op dezelfde manier werkt Get niet als de eigenschap die u zoekt niet bestaat (u moet in dit geval een bestaanscontrole toevoegen en deze indien nodig maken)
Dank u beiden. Ik heb een testcode gemaakt die werkt. Dus ik ga het in mijn macro integreren, zodat het mijn RAL-configuraties informeert.
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