Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  [Makro] Stückliste auswählen

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

Anzeige:

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
  
In CATIA den Maßstab ändern - so geht es, ein Fachartikel
Autor Thema:  [Makro] Stückliste auswählen (2499 mal gelesen)
Findu
Mitglied



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

Beiträge: 12
Registriert: 27.07.2010

SolidWorks 2010

erstellt am: 01. Mrz. 2011 17:35    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,

ich suche und probiere jetzt schon eine geraume Zeit, habe es aber leider nicht geschafft.

Ich versuche von einer geöffeneten Zeichnung, die eine Stückliste, die dort vorhanden ist, auszuwählen. Der Basiscode:

Code:

Dim swApp As Object
Dim Part As Object
Set swApp = CreateObject("SldWorks.Application")
swApp.Visible = True
Set Part = swApp.ActiveDoc

Dim swView As Object
Set swView = Part.GetFirstView
Set swBOMTable = swView.GetBomTable


swBOMTable ist leider leer.
Dann habe ich versucht, dass per while-Schleife zu erweitern:

Code:

Dim swApp As Object
Dim Part As Object
Set swApp = CreateObject("SldWorks.Application")
swApp.Visible = True
Set Part = swApp.ActiveDoc

Dim swView As Object
Set swView = Part.GetFirstView
Set swBOMTable = swView.GetBomTable
Do While swBOMTable Is Nothing
  swView = swView.GetNextView
  swBOMTable = swView.GetBomTable
Loop


Das resultiert mit diversen Ausschmückungen entwerder in einer Endlosschleife oder in "Laufzeitfehler 91". Darum bin ich der Meinung, dass ich den falschen Ansatz gewählt habe. Wisst ihr, wie man die Tabelle auswählen kann?

mfG Findu

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

ad_man
Mitglied
freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))


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

Beiträge: 1384
Registriert: 20.12.2003

SolidWorks 2023 SP5 mit Enterprise PDM , Windows 11, Dell Precision 3660, i7-12700K, 96 GB DDR-Ram, Quadro RTX A4000

erstellt am: 01. Mrz. 2011 20:11    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 Findu 10 Unities + Antwort hilfreich

Hallo Findu,

du bist dir aber darüber im Klaren, dass du mit der GetBOMTable-Methode
nur auf Excel-basierende Stülis zurückgreifen kannst? Der Zugriff auf die
SWXSolidWorks-Stülis ist in dem Beispiel "Get Components in Each BOM Table Row (VBA)" beschrieben.

------------------
==========
Gruß
Andreas
==========

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

nahe
Ehrenmitglied



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

Beiträge: 1764
Registriert: 18.01.2001

arbeite mit:
Dell Precision 7750
i7 2,6 GHz 6 Kerne
32GB RAM
512GB SSD
NVIDIA Quadro RTX 4000
------------------------
SWX-2020 SP5.0
EPDM
----------------
Windows 10
----------------
VB.net
VB
VBA
ein wenig Swift am Mac

erstellt am: 02. Mrz. 2011 06:36    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 Findu 10 Unities + Antwort hilfreich

Hallo Findu

das sollte das eigentlich erledigen
ist ein etwas abgewandelter Code der als Beispiel in der Online-Hilfe unter dem Suchbegriff
"Get Table Annotation and Contents Example (VBA)" zu finden ist

die Stückliste ist dann in swTable gespeichert

Sub main()
    Dim swApp                  As Object
    Dim swModel                As Object
    Dim swDraw                  As Object
    Dim swView                  As Object
    Dim swTable                As Object
    Dim gefunden                As Boolean
   

    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set swDraw = swModel

    Set swView = swDraw.GetFirstView
    gefunden = False
    Do While Not swView Is Nothing And gefunden = False
        Set swTable = swView.GetFirstTableAnnotation
        Do While Not swTable Is Nothing And gefunden = False
            If swTable.Type = swTableAnnotation_BillOfMaterials Then
              gefunden = True
            End If
            If gefunden = False Then Set swTable = swTable.GetNext
        Loop
        Set swView = swView.GetNextView
    Loop
End Sub

------------------
Grüße
Heinz

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

Findu
Mitglied



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

Beiträge: 12
Registriert: 27.07.2010

SolidWorks 2010

erstellt am: 03. Mrz. 2011 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

Danke für die Hilfe, der Code scheint zu funktionieren.

@ad_man Ich dachte eigentlich, allerdings habe ich das missverstanden. Ich dachte die Funktion liefert eine Stückliste in Excelkompatiblem Format zurück, unabhängig davon, was wirklich vorliegt.

mfG Findu

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 | CAD.de-Newsletter

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

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

(c)2024 CAD.de | Impressum | Datenschutz