So rufen Sie den angezeigten Teilenummernwert ab ... in einer Stückliste

Hallo ihr alle

In einer Baugruppe versuche ich, den Wert "Teilenummer, die bei Verwendung in einer Stückliste angezeigt wird:" der ausgewählten Komponente abzurufen. Den Namen der Konfiguration der ausgewählten Komponente bekomme ich bereits mit dem untenstehenden Code, aber ich trockne ein wenig für die in der Nomenklatur angezeigte Teilenummer. Hat jemand die Lösung?

Dim swApp als SldWorks.SldWorks
Sun swSelMgr As SldWorks.selectionMgr
Dim swModel As SldWorks.ModelDoc
ConfigMgr als ConfigurationManager dimmen
Komponente als SldWorks.Component2 dimmen

Sub main()

    Legen Sie swApp = Application.SldWorks fest
    Festlegen von swModel = swApp.ActiveDoc
    Legen Sie swSelMgr = swModel.SelectionManager fest
    Legen Sie ConfigMgr = swModel.ConfigurationManager fest
    
    'Komponente auswählen
    Debug.Print "Auswahltyp  = " & swSelMgr.GetSelectedObjectType2(1)
    Set Component = swSelMgr.GetSelectedObjectsComponent4(1, -1)

    ' Zeige Config1 und mache sie zur aktiven Konfiguration
    Debug.Print "ConfigName SelectedComponent =" & Component.ReferencedConfiguration
    Debug.Print "ConfigName SelectedComponent = " & ConfigMgr.ActiveConfiguration.UseAlternateNameInBOM
    

Ende Sub

Wenn dies die Teilenummer ist, erstellen Sie über Sprechblasen in einer Stückliste als Teileregistrierung

Ich denke (da bin ich mir sicher), dass das nicht möglich ist

Wenn diese Nummer über die customize-Eigenschaft des Teils erstellt wird, so dass seine Teilereferenz 

Dort ist es möglich

Hallo

Suchen Sie in der API-Hilfe nach: Abrufen von Komponenten in jedem Beispiel für Stücklistentabellenzeilen (VBA)

Normalerweise entspricht es dem Bedarf, dann muss man sich anpassen.

1 „Gefällt mir“

Vielen Dank für Ihre Antworten.

Ich habe die Lösung mit GetConfigurationParams gefunden.

Beispiel:

ActiveConfig                als Zeichenfolge dimmen
Dim bRet                        als boolescher Wert
ConfigMgr                   als ConfigurationManager dimmen
Komponente                   als SldWorks.Component2 dimmen
Dim ParamConfigValue            als Variante
Dim swApp                       als SldWorks.SldWorks
Sun swSelMgr                    As SldWorks.selectionMgr
Dim swModel                     As SldWorks.ModelDoc

Sub main()

    Legen Sie swApp = Application.SldWorks fest
    Festlegen von swModel = swApp.ActiveDoc
    Legen Sie swSelMgr = swModel.SelectionManager fest
    Legen Sie ConfigMgr = swModel.ConfigurationManager fest
    
' Wiederherstellung der aktiven Konfigurations-ID und des Namens
    'IDconfig = swModel.ConfigurationManager.ActiveConfiguration.GetID
    ActiveConfig = swModel.ConfigurationManager.ActiveConfiguration.Name
    bRet = ConfigMgr.GetConfigurationParams(ActiveConfig, "TEIL $NUMERO", ParamConfigValue)
    'Debug.Print' Konfigurations-ID beim Öffnen aktiviert: " & IDconfig
    Debug.Print "Konfigurationsname beim Öffnen aktiv: " & ActiveConfig
    Debug.Print "In Stücklisten verwendete Nummer: " & ParamConfigValue(1)      'ParamConfigValue 1 stimmt mit der in der Stückliste verwendeten Teilenummer überein

Ende Sub

Vielen Dank für Ihre Antworten.

Ich habe die Lösung mit GetConfigurationParams gefunden.

Beispiel:

ActiveConfig                als Zeichenfolge dimmen
Dim bRet                        als boolescher Wert
ConfigMgr                   als ConfigurationManager dimmen
Komponente                   als SldWorks.Component2 dimmen
Dim ParamConfigValue            als Variante
Dim swApp                       als SldWorks.SldWorks
Sun swSelMgr                    As SldWorks.selectionMgr
Dim swModel                     As SldWorks.ModelDoc

Sub main()

    Legen Sie swApp = Application.SldWorks fest
    Festlegen von swModel = swApp.ActiveDoc
    Legen Sie swSelMgr = swModel.SelectionManager fest
    Legen Sie ConfigMgr = swModel.ConfigurationManager fest
    
' Wiederherstellung der aktiven Konfigurations-ID und des Namens
    'IDconfig = swModel.ConfigurationManager.ActiveConfiguration.GetID
    ActiveConfig = swModel.ConfigurationManager.ActiveConfiguration.Name
    bRet = ConfigMgr.GetConfigurationParams(ActiveConfig, "TEIL $NUMERO", ParamConfigValue)
    'Debug.Print' Konfigurations-ID beim Öffnen aktiviert: " & IDconfig
    Debug.Print "Konfigurationsname beim Öffnen aktiv: " & ActiveConfig
    Debug.Print "In Stücklisten verwendete Nummer: " & ParamConfigValue(1)      'ParamConfigValue 1 stimmt mit der in der Stückliste verwendeten Teilenummer überein

Ende Sub