Hot News:
   

Mit Unterstützung durch:

  Foren auf CAD.de
  SolidWorks
  API BOM auf Zeichnung Teil Benutzereigenschaft lesen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Von der Idee zum echten Bauteil: Alles mit einer Plattform - SOLIDWORKS macht es möglich


Mehr Videos >>>

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS
  
SIEMENS PLM CONNECTION 2026 | 22. - 24. Juni 2026 | Lufthansa Konferenzzentrum Seeheim
  
CATIA V5 Power‘By: Der einfache Wechsel von dateibasierter zu objektbasierter Konstruktion., ein Webinar am 28.05.2026
Autor Thema:  API BOM auf Zeichnung Teil Benutzereigenschaft lesen (221 / mal gelesen)
brainer
Mitglied
Konstrukteur


Sehen Sie sich das Profil von brainer an!   Senden Sie eine Private Message an brainer  Schreiben Sie einen Gästebucheintrag für brainer

Beiträge: 63
Registriert: 25.09.2013

erstellt am: 04. Mai. 2026 15:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo API Spezialisten,
ich auf einer Zeichnung eine Stückliste mit Teilen. Wenn ich auf eine Spalte klicke und rechte Maustaste drücke kann ich das Teil direkt öffnen also quasi drauf zugreifen.
Ich bin dabei ein Programm zu schreiben welches eine Stückliste auf der Zeichnung ausliest und in eine Excelliste schreibt. Da ich einen altdatenbestand habe kommt es vor das ich noch zusätzliche Infos aus den Benutzereigenschaften des Teils benötige die auf der Stückliste nicht vorhanden sind. Daher würde ich gerne über die Stüli das Teil im Hintergrund öffnen Benutzereigenschaft auslesen dann weiter in nächste Zeile usw.
Ich kriege einfach nicht den Zugriff auf das Objekt durch die BOM table, hier ist immer Objekt Nothing
Set swComp = swBomTable.GetComponent2(i, 0)
i ist der Zähler durch Tabellen zeilen.

Hat jemand eine Idee oder geht das garnicht.

Danke schon mal
Gruß
Rainer

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

riesi
Mitglied
CAD-Admin


Sehen Sie sich das Profil von riesi an!   Senden Sie eine Private Message an riesi  Schreiben Sie einen Gästebucheintrag für riesi

Beiträge: 1119
Registriert: 06.05.2002

SWX Premium 2023-Sp5

erstellt am: 04. Mai. 2026 15:21    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für brainer 10 Unities + Antwort hilfreich

Die Methode GetComponent2 gibt es zumindest in SolidWorks 2023 nicht. Welche Methode meinst Du genau?

Wenn Du GetComponents2 aus BomTableAnnotation meintest, dann soll als zweiter Parameter die Konfiguration angeben werden.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

brainer
Mitglied
Konstrukteur


Sehen Sie sich das Profil von brainer an!   Senden Sie eine Private Message an brainer  Schreiben Sie einen Gästebucheintrag für brainer

Beiträge: 63
Registriert: 25.09.2013

erstellt am: 04. Mai. 2026 15:56    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Ja ich meine GetComponents2 aus BomTableAnnotation.
ich arbeite derzeit in SWX 2024 vielleicht ist das das Problem.
Ich habe eine Stückliste mit Einzug Detaillierte Nummerierung (Unterbaugruppen Nummerierung 10, 10.10, 10.20, 20 etc) als nicht alle Teile auf einer "Ebene"
Die Bom auf der Zeichnung auslesen als solches kein Problem nur von da auf das Teil kommen krieg ich nicht hin.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Holger.S
Mitglied
Konstrukteur


Sehen Sie sich das Profil von Holger.S an!   Senden Sie eine Private Message an Holger.S  Schreiben Sie einen Gästebucheintrag für Holger.S

Beiträge: 554
Registriert: 01.10.2004

Solidworks Professional 2021 SP5.1
Solidworks PDM
Lenovo Thinkpad
Microsoft Windows10 Pro
Intel(R) Core(TM) i9-10885H CPU @ 2.40GHz
32 GB RAM
NVIDIA Quadro RTX 3000

erstellt am: 05. Mai. 2026 07:43    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für brainer 10 Unities + Antwort hilfreich

Ich handhabe das wie folgt. Die Stückliste auf der Zeichnung besteht aus 17 Spalten von denen nur 8 angezeigt werden 9 sind ausgeblendet. Die Stückliste wird dann mit allen Spalten zur Weiterverarbeitung mit dem "SWXHelper" > "SWXHelper" in eine Exceldatei ausgelesen. Ich habe dann alle Stammdaten im Excel. Beim SWXHelper gibt es zahlreiche Einstellmöglichkeiten wie die Excel aussehen soll.

------------------
"Wir ertrinken in Informationen, aber wir hungern nach Wissen..." John Naisbitt

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

brainer
Mitglied
Konstrukteur


Sehen Sie sich das Profil von brainer an!   Senden Sie eine Private Message an brainer  Schreiben Sie einen Gästebucheintrag für brainer

Beiträge: 63
Registriert: 25.09.2013

erstellt am: 05. Mai. 2026 08:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

ja das kenn ich das Tool ist echt klasse.
Mir geht es aber darum, gibt es eine Methode von der ich über die Stückliste direkt auf die Eigenschaften eines Teils zugreifen kann oder muß ich wenn ich das Teil herausgefunden habe das Teil im Hintergrund öffnen Eigenschaften, lesen , schließen usw.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Holger.S
Mitglied
Konstrukteur


Sehen Sie sich das Profil von Holger.S an!   Senden Sie eine Private Message an Holger.S  Schreiben Sie einen Gästebucheintrag für Holger.S

Beiträge: 554
Registriert: 01.10.2004

Solidworks Professional 2021 SP5.1
Solidworks PDM
Lenovo Thinkpad
Microsoft Windows10 Pro
Intel(R) Core(TM) i9-10885H CPU @ 2.40GHz
32 GB RAM
NVIDIA Quadro RTX 3000

erstellt am: 05. Mai. 2026 08:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für brainer 10 Unities + Antwort hilfreich


Stuckliste.mp4

 
Natürlich, so wird doch eine Stückliste erzeugt, In der Tabelle die Spalte anklicken, Spalteneigenschaften wählen und dann die gewünschte Eigenschaft hinterlegen.

------------------
"Wir ertrinken in Informationen, aber wir hungern nach Wissen..." John Naisbitt

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

brainer
Mitglied
Konstrukteur


Sehen Sie sich das Profil von brainer an!   Senden Sie eine Private Message an brainer  Schreiben Sie einen Gästebucheintrag für brainer

Beiträge: 63
Registriert: 25.09.2013

erstellt am: 05. Mai. 2026 12:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

ist schon klar aber wie greife ich von der Stüli auf das Teil zu ohne es im Hintergrund separat zu öffnen. Den Teile Name und Pfad krieg ich raus hier gibt es auch ein Beispiel in SWX
Get Components in Each BOM Table Row Example (VBA).
aber hier die Frage ob es sowas wie CustomPropertyManager gibt da die Stüli ja auch auf die Eigenschaften der Teile zugreifen kann

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Christian_W
Ehrenmitglied V.I.P. h.c.
Konstrukteur (Dipl-Ing)


Sehen Sie sich das Profil von Christian_W an!   Senden Sie eine Private Message an Christian_W  Schreiben Sie einen Gästebucheintrag für Christian_W

Beiträge: 3445
Registriert: 04.04.2001

CSWP 12/2015<P>SWX2021sp5 Win10/11
(SWX2016, SWX2012)
proAlpha6.2e00/calinkV9
(Tactonworks)
(Medusa7, NesCAD2010,
solidEdge19)

erstellt am: 05. Mai. 2026 12:55    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für brainer 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von brainer:
... wie greife ich von der Stüli auf das Teil zu ohne es im Hintergrund separat zu öffnen. Den Teile Name und Pfad krieg ich raus ...

Hallo Rainer,

wenn das Teil auf der Zeichnung ist, hat SolidWorks das ja vermutlich im Hintergrund bereits geöffnet und dadurch Zugriff auf die Properties da drin. Ein regelrechtes Öffnen ist deshalb vermutlich nicht notwendig, evtl auch, wenn du den Befehl zum Öffnen benutzt.

Ansonsten gibt es noch den Documentmanager. Mit dem kommst du an die Properties ohne öffnen - benötigt aber einen Lizenzschlüssel den man bei jedem SWX-Update erneuern muss (nicht für Zugriff auf alte Versionen, nur damit das Makro im neuen SWX wieder läuft).

Gruß, Christian

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

brainer
Mitglied
Konstrukteur


Sehen Sie sich das Profil von brainer an!   Senden Sie eine Private Message an brainer  Schreiben Sie einen Gästebucheintrag für brainer

Beiträge: 63
Registriert: 25.09.2013

erstellt am: 05. Mai. 2026 16:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

so mit ein bischen KI support hier mal ein code

Sub ReadBOMCustomProperties()
    Dim swApp As SldWorks.SldWorks
    Dim swModel As SldWorks.ModelDoc2
    Dim swDraw As SldWorks.DrawingDoc
    Dim swView As SldWorks.View
    Dim swBOM As SldWorks.BomTableAnnotation
   
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
   
    If swModel Is Nothing Then
        MsgBox "Kein Dokument geöffnet"
        Exit Sub
    End If
   
    If swModel.GetType <> swDocDRAWING Then
        MsgBox "Bitte eine Zeichnung mit BOM öffnen"
        Exit Sub
    End If
   
    Set swDraw = swModel
    Set swView = swDraw.GetFirstView
    Set swView = swView.GetNextView ' erste echte Ansicht
   
    ' BOM holen (erste gefundene)
    Dim swTableAnn As SldWorks.TableAnnotation
    Set swTableAnn = swView.GetFirstTableAnnotation
   
    Do While Not swTableAnn Is Nothing
        If swTableAnn.Type = swTableAnnotation_BillOfMaterials Then
            Set swBOM = swTableAnn
            Exit Do
        End If
        Set swTableAnn = swTableAnn.GetNext
    Loop
   
    If swBOM Is Nothing Then
        MsgBox "Keine BOM gefunden"
        Exit Sub
    End If
   
    Dim rowCount As Long
    rowCount = swBOM.RowCount
   
    Dim i As Long
    For i = 1 To rowCount - 1 ' 0 ist Header
       
        Dim vCompArr As Variant
        vCompArr = swBOM.GetComponents2(i, "")
       
        If Not IsEmpty(vCompArr) Then
           
            Dim j As Long
            For j = 0 To UBound(vCompArr)
               
                Dim swComp As SldWorks.Component2
                Set swComp = vCompArr(j)
               
                Dim swCompModel As SldWorks.ModelDoc2
                Set swCompModel = swComp.GetModelDoc2
               
                If swCompModel Is Nothing Then
                    Debug.Print "Komponente nicht geladen"
                    GoTo NextComponent
                End If
               
                ' CustomPropertyManager holen (Konfiguration!)
                Dim swCustPropMgr As SldWorks.CustomPropertyManager
                Set swCustPropMgr = swCompModel.Extension.CustomPropertyManager(swComp.ReferencedConfiguration)
               
                ' Property lesen
                Dim valOut As String
                Dim resolvedValOut As String
                Dim wasResolved As Boolean
               
                wasResolved = swCustPropMgr.Get4("Beschreibung", False, valOut, resolvedValOut)
               
                Debug.Print "------------------------"
                Debug.Print "Komponente: " & swComp.Name2
                Debug.Print "Konfiguration: " & swComp.ReferencedConfiguration
                Debug.Print "Beschreibung (raw): " & valOut
                Debug.Print "Beschreibung (resolved): " & resolvedValOut
               
NextComponent:
               
            Next j
        End If
       
    Next i
   
    MsgBox "Fertig! Siehe Direktfenster (Strg+G)"

End Sub

ein bischen anpassen und man kann es gebrauchen

Danke an alle für die Antworten

VG
Rainer

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen .... | Nach anderen Beiträgen suchen

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2026 CAD.de | Impressum | Datenschutz