| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| Innovationstag mit SolidCAM und Plogmann bei HEDELIUS in Meppen |
Autor
|
Thema: Makro: Baugruppen in Baugruppe zählen (713 / mal gelesen)
|
Pete85 Mitglied
Beiträge: 156 Registriert: 09.05.2016
|
erstellt am: 31. Mai. 2022 08:31 <-- editieren / zitieren --> Unities abgeben:
Guten Tag zusammen, ich bin gerade auf der Suche, wie ich die Gesamtanzahl von Baugruppen in einer Baugruppe ermitteln kann. Das natürlich bis zur n-ten Unterbaugruppe Ziel ist es, eine Gesamtübersicht zu bekommen und es sollen ja nachher nicht zu wenig Baugruppen bestellt werden :-) Gibt es da ein Makro um das zu zählen oder eben einen Ansatz? Vielen Dank, Gruß Pete Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christoph Weise Mitglied Technischer Produktdesigner / Konstruktion / CAD-Admin
Beiträge: 204 Registriert: 22.03.2015 Dell 3650 Intel I7 11700k 32 GB RAM Nvidia RTX A4000 16GB Win 10 22H2 64-bit SolidWorks 2022SP5 QuickPress 6.3.3 PortaX 2.27 SAP ERP 6.0
|
erstellt am: 31. Mai. 2022 09:11 <-- editieren / zitieren --> Unities abgeben: Nur für Pete85
Hallo Pete, Ein Makro habe ich keines um die Baugruppen zu zählen, Wir haben das Problem auch nicht, da wir von jeder Baugruppe die Stückliste ins ERP System übergeben. Falls ihr ohne ERP System Arbeitet kann man dies aber auch über verschidene Stücklisteneinstellungen lösen. Es kommt dann nur darauf an wie genau euere "Endstückliste" auszusehen hat und wie die Baugruppenstruktur bei euch ist. Mit etwas Überlegungsarbeit und den Stücklistenoptionen in den Konfigurationseigenschaften der Baugruppen lässt es sich darstellen. Gruß Christoph ------------------ Wer einen Fehler findet darf ihn behalten, wer zwei findet kann beide behalten, ab fünf Fehler gibs Rabatt :-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
deckelmaho Mitglied Konstrukteur
Beiträge: 239 Registriert: 03.03.2020 SolidWorks 2023 SP5 Windows 10 64bit Office 2019
|
erstellt am: 31. Mai. 2022 09:49 <-- editieren / zitieren --> Unities abgeben: Nur für Pete85
Hi Pete, was fertiges habe ich nicht für dich, aber einen Ansatz. Hier ein Beispiel aus der SOLIDWORKS API mit einer Schleife über alle Teile, Baugruppen und Unterbaugruppen. https://help.solidworks.com/2015/english/api/sldworksapi/traverse_assembly_at_component_level_example_vb.htm Der Part an dem du eingreifen müsstest, wäre dieser hier...
Code:
'Hier werden die Kind-Komponenten in vChildComp übergeben vChildComp = swComp.GetChildren 'Die Schleife wirkt hier wie eine versteckte IF-Abfrage, denn es soll eine Schleife über die Größe vom Array vChildComp erfolgen. 'Wenn es keine Kind-Komponenten gibt (es also ein Teil ist) ist die Arraygröße Null und es wird nicht weiter ausgeführt. 'An dieser Stelle müsstest du also deinen Counter irgendwo einbringen
EDIT: Hat sich als falsch erwiesen, bitte ignorieren For i = 0 To UBound(vChildComp) Set swChildComp = vChildComp(i) TraverseComponent swChildComp, nLevel + 1 Debug.Print sPadStr & swChildComp.Name2 & " <" & swChildComp.ReferencedConfiguration & ">" Next i
Ich hoffe ich konnte dir damit helfen. LG Kevin ------------------ HOMEPAGE | SWXTools.de - SWXHelper für SOLIDWORKS KONTAKT | support@swxtools.de FACEBOOK | facebook.com/SWXHelper TWITTER | twitter.com/SWXTools
[Diese Nachricht wurde von deckelmaho am 01. Jun. 2022 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andi Spieler Mitglied Mechaniker
Beiträge: 1347 Registriert: 12.12.2002 SOLIDWORKS 2024SP1
|
erstellt am: 31. Mai. 2022 11:26 <-- editieren / zitieren --> Unities abgeben: Nur für Pete85
|
deckelmaho Mitglied Konstrukteur
Beiträge: 239 Registriert: 03.03.2020 SolidWorks 2023 SP5 Windows 10 64bit Office 2019
|
erstellt am: 31. Mai. 2022 12:18 <-- editieren / zitieren --> Unities abgeben: Nur für Pete85
|
Pete85 Mitglied
Beiträge: 156 Registriert: 09.05.2016
|
erstellt am: 31. Mai. 2022 12:58 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, danke für die Ansätze. Wir schreiben wirklich noch alles per Hand in user System. Leider kommt es hier immer wieder zu fehlern und wir haben entweder zu viel, zu wenig oder es passt. deswegen meine Frage. Hätte hier gerne eine Übersicht aller Baugruppen in einer excel oder ähnliches. Die anderen Funktionen (die mir bekannt sind) sind mir hier zu umständlich oder nicht genau genug danke
Gruß Pete Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Olaf Wolfram Ehrenmitglied V.I.P. h.c. CAD-Mutti und Konstrukteur CSWP CSWI
Beiträge: 2431 Registriert: 30.06.2008 I7-3770 CPU 3,40 Ghz 32 Gb RAM 64 bit WIN 10 SWX 2019 SP5 NVIDIA Quadro K2000<P> Lenovo ThinkStation
|
erstellt am: 31. Mai. 2022 13:05 <-- editieren / zitieren --> Unities abgeben: Nur für Pete85
|
Pete85 Mitglied
Beiträge: 156 Registriert: 09.05.2016
|
erstellt am: 01. Jun. 2022 06:25 <-- editieren / zitieren --> Unities abgeben:
Treehouse kannte ich noch nicht. Habe es gerade ausprobiert. Hier hat SW beim BG analysieren einfach abgebrochen und es geht nix ,ehr... scheint also leider auch nicht das richtige zu sein. trozdem Danke :-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
deckelmaho Mitglied Konstrukteur
Beiträge: 239 Registriert: 03.03.2020 SolidWorks 2023 SP5 Windows 10 64bit Office 2019
|
erstellt am: 01. Jun. 2022 08:10 <-- editieren / zitieren --> Unities abgeben: Nur für Pete85
Zitat: Original erstellt von Pete85: Hallo zusammen,danke für die Ansätze. Wir schreiben wirklich noch alles per Hand in user System. Leider kommt es hier immer wieder zu fehlern und wir haben entweder zu viel, zu wenig oder es passt. deswegen meine Frage. Hätte hier gerne eine Übersicht aller Baugruppen in einer excel oder ähnliches. Die anderen Funktionen (die mir bekannt sind) sind mir hier zu umständlich oder nicht genau genug danke
Gruß Pete
Ich habe dir die Komponenten Schleife mal umgeschrieben, sodass du nachher auch einen Wert für die Unterbaugruppen im VBA erhältst. Den Excelteil müsstest du dir selber schreiben. Code:
Option ExplicitDim AssemblyCounter As Integer Dim TempModel As ModelDoc2 Sub TraverseComponent(swComp As SldWorks.Component2, nLevel As Long) Dim vChildComp As Variant Dim swChildComp As SldWorks.Component2 Dim swCompConfig As SldWorks.Configuration Dim sPadStr As String Dim i As Long For i = 0 To nLevel - 1 sPadStr = sPadStr + " " Next i vChildComp = swComp.GetChildren For i = 0 To UBound(vChildComp) Set swChildComp = vChildComp(i) Debug.Print sPadStr & swChildComp.Name2 & " <" & swChildComp.ReferencedConfiguration & ">" Set TempModel = swChildComp.GetModelDoc2 If Not TempModel Is Nothing Then If TempModel.GetType = swDocumentTypes_e.swDocASSEMBLY Then AssemblyCounter = AssemblyCounter + 1 TraverseComponent swChildComp, nLevel + 1 End If Next i End Sub Sub main() Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim swConf As SldWorks.Configuration Dim swRootComp As SldWorks.Component2 Dim bRet As Boolean Dim fileName As String Dim errors As Long Dim warnings As Long Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc If swModel.GetType <> swDocumentTypes_e.swDocASSEMBLY Then MsgBox "Das Dokument ist keine Baugruppe" Exit Sub End If AssemblyCounter = 0 Set swConf = swModel.GetActiveConfiguration Set swRootComp = swConf.GetRootComponent3(True) Debug.Print "File = " & swModel.GetPathName ' Traverse components TraverseComponent swRootComp, 1 MsgBox "Die Anzahl der Unterbaugruppen beträgt: " & AssemblyCounter 'Der Wert wurde ermittelt, hier könnte die Ausgabe ins Excel erfolgen. End Sub
Grüße und so ------------------ HOMEPAGE | SWXTools.de - SWXHelper für SOLIDWORKS KONTAKT | support@swxtools.de FACEBOOK | facebook.com/SWXHelper TWITTER | twitter.com/SWXTools Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christoph Weise Mitglied Technischer Produktdesigner / Konstruktion / CAD-Admin
Beiträge: 204 Registriert: 22.03.2015 Dell 3650 Intel I7 11700k 32 GB RAM Nvidia RTX A4000 16GB Win 10 22H2 64-bit SolidWorks 2022SP5 QuickPress 6.3.3 PortaX 2.27 SAP ERP 6.0
|
erstellt am: 01. Jun. 2022 18:29 <-- editieren / zitieren --> Unities abgeben: Nur für Pete85
Hallo Pete, brauchst du eine Auflistung der Gesamtmenge an Baugruppen oder brauchst du eine komplette Stücklistenstruktur. Also in BG 1 ist BG 2 und BG 3 verbaut. In BG 2 ist BG 3 und BG 4 verbaut. -> Gesamtinhalt wäre dann 1x BG 2 / 2x BG 3 und 1x BG4
Variante 1 geht wie vom Andi Spieler geschrieben mit der Baugruppenstatiskik funktionieren. Variante 2 ist schwieriger: Auf oberster Ebene Stückliste mit Option "Mit Einzug" erstellen. In dieser Stückliste ist die ganze Struktur aufgelistet. Das ganze nach Excel exportieren. Im Excel würde ich mit einem Makro die Baugruppen zusammenzählen. Bei der Gelegenheit können die Einzelteile auch aufsumiert werden. -> Am Schluss gibts ne Liste welche Baugruppen Montiert werden müssen + eine Liste welche Einzelteile insgesammt beschafft werden müssen. Ist das in etwa wie du es brauchst? Gruß Christoph ------------------ Wer einen Fehler findet darf ihn behalten, wer zwei findet kann beide behalten, ab fünf Fehler gibs Rabatt :-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Pete85 Mitglied
Beiträge: 156 Registriert: 09.05.2016
|
erstellt am: 02. Jun. 2022 06:45 <-- editieren / zitieren --> Unities abgeben:
Hi Christoph, ich bin auf der Suche nach der 2ten Variante. Das zusammenzählen in Excel über ein Makro habe ich mal angefangen. ist schon länger her... war aber immer mit einer großen Unsicherheit verbunden. Daher wollte ich mal fragen ob es da eventuell einen Code bzw. eine Funktion in SolidWorks gibt. Danke für euren Support :-) Gruß Pete Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |