Dans un assemblage, je cherche à récupérer la valeur "N° de pièce affichée lorsqu'utilisé dans une nomenclature:" du composant que j'ai sélectionné. Je récupère déjà le nom de la config du composant sélectionné avec le code ci-dessous mais je sèche un peu pour le N° de pièce affiché dans la nomenclature. Est-ce que quelqu'un aurait la solution?
Dim swApp As SldWorks.SldWorks Dim swSelMgr As SldWorks.selectionMgr Dim swModel As SldWorks.ModelDoc Dim ConfigMgr As ConfigurationManager Dim Component As SldWorks.Component2
Sub main()
Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc Set swSelMgr = swModel.SelectionManager Set ConfigMgr = swModel.ConfigurationManager
'Select component Debug.Print "Selection Type = " & swSelMgr.GetSelectedObjectType2(1) Set Component = swSelMgr.GetSelectedObjectsComponent4(1, -1)
' Show Config1 and make it the active configuration Debug.Print "ConfigName SelectedComponent = " & Component.ReferencedConfiguration Debug.Print "ConfigName SelectedComponent = " & ConfigMgr.ActiveConfiguration.UseAlternateNameInBOM
J'ai trouvé la solution avec GetConfigurationParams.
Exemple:
Dim ActiveConfig As String Dim bRet As Boolean Dim ConfigMgr As ConfigurationManager Dim Component As SldWorks.Component2 Dim ParamConfigValue As Variant Dim swApp As SldWorks.SldWorks Dim swSelMgr As SldWorks.selectionMgr Dim swModel As SldWorks.ModelDoc
Sub main()
Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc Set swSelMgr = swModel.SelectionManager Set ConfigMgr = swModel.ConfigurationManager
' Récupération ID et nom de la configuration active 'IDconfig = swModel.ConfigurationManager.ActiveConfiguration.GetID ActiveConfig = swModel.ConfigurationManager.ActiveConfiguration.Name bRet = ConfigMgr.GetConfigurationParams(ActiveConfig, "$NUMERO DE PIECE", ParamConfigValue) 'Debug.Print "ID Config active à l'ouverture : " & IDconfig Debug.Print "Nom Config active à l'ouverture : " & ActiveConfig Debug.Print "N° utilisé dans les nomenclatures : " & ParamConfigValue(1) 'ParamConfigValue N°1 correspond à N° pièce utilisé in BOM
J'ai trouvé la solution avec GetConfigurationParams.
Exemple:
Dim ActiveConfig As String Dim bRet As Boolean Dim ConfigMgr As ConfigurationManager Dim Component As SldWorks.Component2 Dim ParamConfigValue As Variant Dim swApp As SldWorks.SldWorks Dim swSelMgr As SldWorks.selectionMgr Dim swModel As SldWorks.ModelDoc
Sub main()
Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc Set swSelMgr = swModel.SelectionManager Set ConfigMgr = swModel.ConfigurationManager
' Récupération ID et nom de la configuration active 'IDconfig = swModel.ConfigurationManager.ActiveConfiguration.GetID ActiveConfig = swModel.ConfigurationManager.ActiveConfiguration.Name bRet = ConfigMgr.GetConfigurationParams(ActiveConfig, "$NUMERO DE PIECE", ParamConfigValue) 'Debug.Print "ID Config active à l'ouverture : " & IDconfig Debug.Print "Nom Config active à l'ouverture : " & ActiveConfig Debug.Print "N° utilisé dans les nomenclatures : " & ParamConfigValue(1) 'ParamConfigValue N°1 correspond à N° pièce utilisé in BOM