| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS | | | | CAD/CAM-Workshop in Suhl-Friedberg: SolidCAM + SOLIDWORKS |
Autor
|
Thema: Stückliste durch Macro erstellen (2415 mal gelesen)
|
Joker15 Mitglied Konstrukteur
Beiträge: 22 Registriert: 09.06.2015 SolidWorks 2013
|
erstellt am: 28. Aug. 2015 11:41 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich erstelle momentan durch folgenden Code eine Zuschnittsstückliste, leider würde ich gerne in der "Teilekonfigurationsgruppierung" die Einstellung auf "Alle Konfigurationen desselben Teils als ein Element anzeigen" stellen. Gibt es hierfür evtl. einen anderen oder zusätzlichen Befehl?
Code: Dim swApp As ObjectDim Part As Object Dim boolstatus As Boolean Dim longstatus As Long, longwarnings As Long Dim swBOMTable As Object Sub main() Set swApp = Application.SldWorks Set Part = swApp.ActiveDoc Dim swActiveView As Object Set swActiveView = Part.ActiveDrawingView Set swBOMTable = swActiveView.InsertBomTable4(False, 0, 0, swBOMConfigurationAnchorType_e.swBOMConfigurationAnchor_TopLeft, swBomType_e.swBomType_Indented, "Standard", "C:\Users\Luithardt\Documents\TESTStückliste.sldbomtbt", False, swBomType_e.swBomType_Indented, True) End Sub
Zudem würde ich die einzelnen Bauteile im Anschluss gerne noch Auflösen, sodass aus der Stückliste in Bild1 eine Stückliste wie in Bild2 wird, auch hierfür finde ich keinen Befehl! Gruß Joker!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Joker15 Mitglied Konstrukteur
Beiträge: 22 Registriert: 09.06.2015 SolidWorks 2013
|
erstellt am: 28. Aug. 2015 14:51 <-- editieren / zitieren --> Unities abgeben:
Ok, das auflösen hab ich über die fett markierte Whileschleife nun hinbekommen! Code: Sub main()Set swApp = Application.SldWorks Set Part = swApp.ActiveDoc i = 1 Dim swActiveView As Object Set swActiveView = Part.ActiveDrawingView Set swBOMTable = swActiveView.InsertBomTable4(False, 0, 0, swBOMConfigurationAnchorType_e.swBOMConfigurationAnchor_TopLeft, swBomType_e.swBomType_Indented, "Standard", "C:\Users\Luithardt\Documents\TESTStückliste.sldbomtbt", False, swBomType_e.swBomType_Indented, True) totrows = swBOMTable.RowCount Debug.Print "Reihen " & totrows
Do While i <= (totrows - 1) Debug.Print "Reihe " & i
boolstatus = swBOMTable.Dissolve(i) totrows = swBOMTable.RowCount i = i + 1 Loop End Sub
Gruß Joker Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StefanBerlitz Guter-Geist-Moderator IT Admin (CAx)
Beiträge: 8756 Registriert: 02.03.2000 SunZu sagt: Analysiere die Vorteile, die du aus meinem Ratschlag ziehst. Dann gliedere deine Kräfte entsprechend und mache dir außergewöhnliche Taktiken zunutze.
|
erstellt am: 31. Aug. 2015 08:32 <-- editieren / zitieren --> Unities abgeben: Nur für Joker15
Hallo Joker15, versuch mal die Methode BomFeature.PartConfiguratio nGrouping Ich geh bei der Suche nach solchen API Calls so vor: ich stell mein SolidWorks um auf englisch, gehe interaktiv zu der Funktion und schaue mich dann nach Stichworten um, die ich in der API Hilfe in der Suchzeile eingeben kann, hier "part configuration grouping" (siehe Bild). In der Regel kommt man so relativ schnell zu einem brauchbaren Ergebnis oder wird zumindest auf die richtige Fährte gesetzt. Ciao, Stefan ------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Spirou85 Mitglied Konstruktuer und CAD-Betreuer
Beiträge: 70 Registriert: 01.12.2014 HP ZBook 15 G5 Intel Xeon 2,9 GHz - 32GB Ram NVIDIA Quadro P2000M Windows 10 Pro 64Bit Version 1809 Build 17763.1098 SWX2020-64Bit-SP1.0 MaxxDB 2020 SP0.06 DraftSight Enterprise 2019 x64 SP3 3DCONNEXION SpaceMouse Enterprise mit CadMouse
|
erstellt am: 31. Aug. 2015 11:56 <-- editieren / zitieren --> Unities abgeben: Nur für Joker15
Hallo Joker15, hab gerade auch ein Makro geschrieben, welches mit "InsertBomTable4" eine Stückliste einfügt. Dann wollte ich den Text in der Überschrift der Tabelle ändern und hab lange gebraucht bis ich zur entsprechenden Funktion kam. Die war auch über Umwege durch BomFeature zu bekommen. Willst Du die Funktion die Stefan für Dich rausgesucht hat aufrufen musst Du erst ein BomFeature-Objekt erzeugen( set neueVariable = swBOMTable.BomFeature ), da Dein swBOMTable ein IBomTableAnnotation-Objekt ist. ------------------ Viele Grüße aus Brackenheim Lars Pauly Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Joker15 Mitglied Konstrukteur
Beiträge: 22 Registriert: 09.06.2015 SolidWorks 2013
|
erstellt am: 01. Sep. 2015 15:28 <-- editieren / zitieren --> Unities abgeben:
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|