Jak odzyskać wyświetloną wartość numeru części... w zestawieniu komponentów

Cze wszystkim

W zespole próbuję pobrać wartość "Numer części wyświetlany, gdy jest używany w zestawieniu komponentów:" wybranego komponentu. Nazwę konfiguracji wybranego komponentu dostaję już z poniższym kodem, ale trochę się czepiam na numer części wyświetlany w nomenklaturze. Czy ktoś ma rozwiązanie?

Dim swApp jako SldWorks.SldWorks
Sun swSelMgr jako SldWorks.selectionMgr
Przyciemnij swModel jako SldWorks.ModelDoc
Dim ConfigMgr jako ConfigurationManager
Przyciemnij składnik jako SldWorks.Component2

Sub main()

    Ustaw swApp = Application.SldWorks
    Ustaw swModel = swApp.ActiveDoc
    Ustaw swSelMgr = swModel.SelectionManager
    Ustaw ConfigMgr = swModel.ConfigurationManager
    
    'Wybierz komponent
    Debug.Print "Typ  wyboru = " & swSelMgr.GetSelectedObjectType2(1)
    Ustaw komponent = swSelMgr.GetSelectedObjectsComponent4(1, -1)

    ' Pokaż Config1 i ustaw go jako aktywną konfigurację
    Debug.Print "NazwaKonfiguracji SelectedComponent =" & Component.ReferencedConfiguration
    Debug.Print "NazwaKonfiguracji SelectedComponent = " & ConfigMgr.ActiveConfiguration.UseAlternateNameInBOM
    

Koniec subwoofera

Jeśli jest to numer części, utwórz za pomocą numerów pozycji w zestawieniu komponentów jako rejestracja części

Myślę (jestem pewien), że nie jest to możliwe

Jeśli ten numer jest tworzony za pomocą właściwości dostosuj elementu, tak aby jego odniesienie do części 

Tam jest to możliwe

Witam

W Pomocy interfejsu API wyszukaj: Pobierz składniki w każdym wierszu tabeli BOM (VBA)

Zwykle zaspokaja potrzebę, wtedy trzeba się dostosować.

1 polubienie

Dziękuję za odpowiedzi.

Znalazłem rozwiązanie za pomocą GetConfigurationParams.

Przykład:

Dim ActiveConfig                As Ciąg
Dim bRet                        As Boolean
Dim ConfigMgr                   jako ConfigurationManager
Przyciemnij składnik                   jako SldWorks.Component2
Dim ParamConfigValue            jako wariant
Dim swApp                       jako SldWorks.SldWorks
Sun swSelMgr                    jako SldWorks.selectionMgr
Przyciemnij swModel                     jako SldWorks.ModelDoc

Sub main()

    Ustaw swApp = Application.SldWorks
    Ustaw swModel = swApp.ActiveDoc
    Ustaw swSelMgr = swModel.SelectionManager
    Ustaw ConfigMgr = swModel.ConfigurationManager
    
' Aktywny identyfikator konfiguracji i odzyskiwanie nazwy
    'IDconfig = swModel.ConfigurationManager.ActiveConfiguration.GetID
    ActiveConfig = swModel.ConfigurationManager.ActiveConfiguration.Name
    bRet = ConfigMgr.GetConfigurationParams(ActiveConfig, "PART $NUMERO", ParamConfigValue)
    Identyfikator konfiguracji "Debug.Print" włączony po otwarciu: " & IDconfig
    Debug.Print "Nazwa konfiguracji aktywna przy otwieraniu: " & ActiveConfig
    Debug.Print "Numer używany w BOMs: " & ParamConfigValue(1)      'ParamConfigValue 1 pasuje do numeru części używanego w BOM

Koniec subwoofera

Dziękuję za odpowiedzi.

Znalazłem rozwiązanie za pomocą GetConfigurationParams.

Przykład:

Dim ActiveConfig                As Ciąg
Dim bRet                        As Boolean
Dim ConfigMgr                   jako ConfigurationManager
Przyciemnij składnik                   jako SldWorks.Component2
Dim ParamConfigValue            jako wariant
Dim swApp                       jako SldWorks.SldWorks
Sun swSelMgr                    jako SldWorks.selectionMgr
Przyciemnij swModel                     jako SldWorks.ModelDoc

Sub main()

    Ustaw swApp = Application.SldWorks
    Ustaw swModel = swApp.ActiveDoc
    Ustaw swSelMgr = swModel.SelectionManager
    Ustaw ConfigMgr = swModel.ConfigurationManager
    
' Aktywny identyfikator konfiguracji i odzyskiwanie nazwy
    'IDconfig = swModel.ConfigurationManager.ActiveConfiguration.GetID
    ActiveConfig = swModel.ConfigurationManager.ActiveConfiguration.Name
    bRet = ConfigMgr.GetConfigurationParams(ActiveConfig, "PART $NUMERO", ParamConfigValue)
    Identyfikator konfiguracji "Debug.Print" włączony po otwarciu: " & IDconfig
    Debug.Print "Nazwa konfiguracji aktywna przy otwieraniu: " & ActiveConfig
    Debug.Print "Numer używany w BOMs: " & ParamConfigValue(1)      'ParamConfigValue 1 pasuje do numeru części używanego w BOM

Koniec subwoofera