Hoe de weergegeven waarde van het onderdeelnummer op te halen ... in een stuklijst

Hoi allemaal

In een assembly probeer ik de waarde "Onderdeelnummer weergegeven bij gebruik in een stuklijst:" op te halen van het onderdeel dat ik heb geselecteerd. Ik krijg al de naam van de configuratie van het geselecteerde onderdeel met de onderstaande code, maar ik droog een beetje voor het onderdeelnummer dat in de nomenclatuur wordt weergegeven. Heeft iemand de oplossing?

Dim swApp als SldWorks.SldWorks
Zon swSelMgr As SldWorks.selectionMgr
Dim swModel als SldWorks.ModelDoc
Dim ConfigMgr als ConfigurationManager
Dim Component Als SldWorks.Component2

Sub hoofd()

    Stel swApp = Toepassing.SldWorks in
    Stel swModel = swApp.ActiveDoc in
    Stel swSelMgr = swModel.SelectionManager in
    Set ConfigMgr = swModel.ConfigurationManager
    
    'Selecteer onderdeel
    Debug.Print "Selectietype  = " & swSelMgr.GetSelectedObjectType2(1)
    Component instellen = swSelMgr.GetSelectedObjectsComponent4(1, -1)

    ' Toon Config1 en maak er de actieve configuratie van
    Debug.Print "ConfigName SelectedComponent =" & Component.ReferencedConfiguration
    Debug.Print "ConfigName SelectedComponent = " & ConfigMgr.ActiveConfiguration.UseAlternateNameInBOM
    

Einde Sub

Als dit het artikelnummer is, maak dan via ballonnen in een stuklijst als artikelregistratie

Ik denk (ik weet het zeker) dat dit niet mogelijk is

Als dit nummer wordt aangemaakt via de eigenschap aanpassen van het onderdeel, zodat het onderdeel ref

Daar kan het

Hallo

Zoek in de API-Help naar: Componenten ophalen in elk voorbeeld van een stuklijsttabelrij (VBA)

Normaal gesproken voldoet het aan de behoefte, dan moet je je aanpassen.

1 like

Dank u voor uw antwoorden.

Ik heb de oplossing gevonden met GetConfigurationParams.

Voorbeeld:

Dim ActiveConfig                als tekenreeks
Dim bRet                        als Booleaanse
Dim ConfigMgr                   als ConfigurationManager
Dim Component                   Als SldWorks.Component2
Dim ParamConfigValue            als variant
Dim swApp                       als SldWorks.SldWorks
Zon swSelMgr                    As SldWorks.selectionMgr
Dim swModel                     als SldWorks.ModelDoc

Sub hoofd()

    Stel swApp = Toepassing.SldWorks in
    Stel swModel = swApp.ActiveDoc in
    Stel swSelMgr = swModel.SelectionManager in
    Set ConfigMgr = swModel.ConfigurationManager
    
' Actieve configuratie-ID en naamherstel
    'IDconfig = swModel.ConfigurationManager.ActiveConfiguration.GetID
    ActiveConfig = swModel.ConfigurationManager.ActiveConfiguration.Name
    bRet = ConfigMgr.GetConfigurationParams(ActiveConfig, "DEEL $NUMERO", ParamConfigValue)
    'Debug.Print' Config ID ingeschakeld bij het openen: " & IDconfig
    Debug.Print "Config naam actief bij openen: " & ActiveConfig
    Debug.Print "Nummer gebruikt in stuklijsten: " & ParamConfigValue(1)      'ParamConfigValue 1 komt overeen met onderdeelnummer dat wordt gebruikt in stuklijst

Einde Sub

Dank u voor uw antwoorden.

Ik heb de oplossing gevonden met GetConfigurationParams.

Voorbeeld:

Dim ActiveConfig                als tekenreeks
Dim bRet                        als Booleaanse
Dim ConfigMgr                   als ConfigurationManager
Dim Component                   Als SldWorks.Component2
Dim ParamConfigValue            als variant
Dim swApp                       als SldWorks.SldWorks
Zon swSelMgr                    As SldWorks.selectionMgr
Dim swModel                     als SldWorks.ModelDoc

Sub hoofd()

    Stel swApp = Toepassing.SldWorks in
    Stel swModel = swApp.ActiveDoc in
    Stel swSelMgr = swModel.SelectionManager in
    Set ConfigMgr = swModel.ConfigurationManager
    
' Actieve configuratie-ID en naamherstel
    'IDconfig = swModel.ConfigurationManager.ActiveConfiguration.GetID
    ActiveConfig = swModel.ConfigurationManager.ActiveConfiguration.Name
    bRet = ConfigMgr.GetConfigurationParams(ActiveConfig, "DEEL $NUMERO", ParamConfigValue)
    'Debug.Print' Config ID ingeschakeld bij het openen: " & IDconfig
    Debug.Print "Config naam actief bij openen: " & ActiveConfig
    Debug.Print "Nummer gebruikt in stuklijsten: " & ParamConfigValue(1)      'ParamConfigValue 1 komt overeen met onderdeelnummer dat wordt gebruikt in stuklijst

Einde Sub