| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS | | | | SOLIDWORKS Inspection - Die automatisierte "One-Click" Prüfdokumentation |
Autor
|
Thema: Makro für Stücklistenexport - Dateiname als CSV (2210 mal gelesen)
|
abullaman Mitglied Konstrukteur, Admin, Produktarchitektur
Beiträge: 6 Registriert: 08.11.2019 SWX19
|
erstellt am: 08. Nov. 2019 15:36 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen, da ich mich heute das erste mal mit Makros und VBA befasst habe und nun nicht so recht weiß wie es weitergeht, benötige Hilfe beim erstellen von 3 Makros...Ziel ist: ______________ ______________ Makro 1: Einfügen einer Stückliste - Einfügen einer Stückliste gemäß Stücklistenvorlage →BOM-Export_Vorlage - Optimal wäre Einfügen an einem bestimmten Ankerpunkt oder Koordinaten (X/Y) - benutzerdefinierte Stücklisteneinstellungen übernehmen: o Stücklistentyp: mit Einzug- Grobe Nummerierung o detaillierte Zuschnittsiste o Positionsnummern: Beginnen bei 10 – Inkrement 10 Makro 2: Inhalt der Stückliste anhand von Symbolen bzw. Inhalten bearbeiten Folgende Regeln - Lösche alle Zeilen ohne Artikelnummer (Rohbleche) - Lösche alle Zeilen mit Symbol „Schweißkonstruktion“ Makro 3 Speichern der Stückliste - Das Makro soll die Stückliste in einem definierten Pfad speichern - Dateiname: eine benutzerdefinierte Dateigenschaft „TeileID“ - Dateiformat: .CSV ________________ ________________ Folgendes habe ich bereits...ergänzt die Stückliste in SWX gemäß der Vorlage "bomvorlage" und speichert mir eine .csv-Datei mit dem "Dateinamen" der CAD-Datei auf den Desktop: Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim swBOMTable As SldWorks.BomTableAnnotation Dim swTable As SldWorks.TableAnnotation Dim swAnn As SldWorks.Annotation Const BOMTemplate As String = "" Const OutputPath As String = "C:\Users\Stefan.Bulla\Desktop\" 'Pfad für Tests.eigentlich"\\profile\ExchangeDir\ImportBOM\Test\" Sub main()
Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc Set swBOMTable = swModel.Extension.InsertBomTable("\\server001\$Konstruktion\SOLIDWORKS\SWX\Tabellenvorlagen\bomvorlage.sldbomtbt", 0, 0, swBomType_e.swBomType_Indented, "Standard") Set swTable = swBOMTable swTable.SaveAsText OutputPath & swModel.GetTitle() & ".csv", vbTab Set swAnn = swTable.GetAnnotation swAnn.Select3 False, Nothing End Sub ________________ ________________ Folgende Frage habe ich: - Wie kann ich anstatt "GetTitle" eine benutzerdefinierte Dateieigenschaft als Dateiname der csv-Datei verwenden ? - Wie kann ich einstellen dass meine Stücklistenvorlage automatisch als "grobnummerierte" Stückliste mit "Zuschnittliste" und "Inkrement"=10 eingestellt wird ? - Welchen Mode benötige ich um das Ganze auch in einer Zeichnung zu verwenden ? Aktuell für die 3D-Bgr. ausgeführt... - Ist das bearbeiten einer Stückliste mittels Makros möglich ? (ich möchte gerne Schweißkonstruktionen anhand des Symbols erkennen & löschen und außerdem leere Zeilen löschen) Falls jemand die Muse hat mir weiterzuhelfen, bitte langsam und ausführlich für Anfänger, danke !!! ------------------ www.dampfkessel.com
[Diese Nachricht wurde von abullaman am 08. Nov. 2019 editiert.] [Diese Nachricht wurde von abullaman am 08. Nov. 2019 editiert.] [Diese Nachricht wurde von abullaman am 11. Nov. 2019 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2776 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 11. Nov. 2019 08:54 <-- editieren / zitieren --> Unities abgeben: Nur für abullaman
Hallo, ich lese hier "profile" in deinem Pfad, geht es hier um den Import in das ProFile PDM/DMS? Wenn ja kannst du die Stücklistenanpassungen doch in ProFile über ein Datenbankscript machen lassen und diese Stückliste dann auch entsprechend auf die Zeichnung holen. Gruß Bernd ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete [Diese Nachricht wurde von bk.sc am 11. Nov. 2019 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
abullaman Mitglied Konstrukteur, Admin, Produktarchitektur
Beiträge: 6 Registriert: 08.11.2019 SWX19
|
erstellt am: 11. Nov. 2019 16:06 <-- editieren / zitieren --> Unities abgeben:
Hi, an sich hast du recht ja, allerdings geht es bei diesem Thema um Schweißkonstruktionen und das "Auflösen" dieser, was am Ende ggf. auch noch das Makro übernehmen soll. Ich möchte keine Artikelnummern für bearbeitete Halbzeuge in der BOM haben... ------------------ www.dampfkessel.com Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2776 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 11. Nov. 2019 17:25 <-- editieren / zitieren --> Unities abgeben: Nur für abullaman
Hallo, sind bei dir Zeile 2 und 4 Baugruppen wenn ja, kannst du bei diesen doch einstellen (endweder in der Unterbaugruppe die Komponenteneigenschaft der Komponente (Aus Stückliste ausschließen) oder in der Unterbaugruppe die Konfigurationseigenschaft (Kindkomponenten ausblenden)) das diese nicht in der Stückliste erscheinen, würde dir schon mal arbeit sparen. Für das Einfügen der BOM kannst du dich an dem Beispiel aus der SWX-API-Hilfe "Insert and Show BOM Table and BOM Balloon Example (VBA)" orrientieren. Für das Durchsuchen der BOM könntest du dich am Beispiel "Get Components in Each BOM Table Row Example (VBA)" orrientieren. Für das Exportieren nach CSV kannst du dich an folgendem Macro aus dem www orrientieren Hier entlang Wie man aber eine Zeile löscht hab ich auf die schnelle keine Idee. Gruß Bernd PS: Dir ist bekannt das ProFile die Stückliste auf der Zeichnung eigentlich egal ist, ProFile erzeugt Grundsätzlich seine Stückliste anhand der Baugruppenstruktur und den Stauts der verbauten Komponenten (Sichtbar, Unterdrückt, Virtuell, Phantom, Komponenteneigenschaft "Aus Stückliste ausschliesen" etc.) und wie ProFile konfiguriert ist, weiter automatische Anpassungen an der Stückliste erfolgen dann in der Regel auf Datenbankebene per Script das z.B. bei Statuswechsel angestossen wird. ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete [Diese Nachricht wurde von bk.sc am 11. Nov. 2019 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
abullaman Mitglied Konstrukteur, Admin, Produktarchitektur
Beiträge: 6 Registriert: 08.11.2019 SWX19
|
erstellt am: 11. Nov. 2019 19:25 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, danke für deine ausführliche Antwort und die Beispiele. Ich werde mir alles einmal ansehen und das austesten, kann jedoch etwas dauern, wie gesagt, VBA-Neuling... Bzgl. Kindkomponenten ausblenden funktioniert leider nicht, auch nicht Untedrücken, ausblenden, Stücklisten-relevanz-Einstellungen etc, da ich ja die "Eltern" ausblenden, und die "Kinder" eine Ebene nach oben und einblenden möchte... Funktion von Profile etc. ist mir als als Admin bekannt ja, bietet jedoch keine "Standard" Möglichkeiten für das was ich erreichen möchte, und zwar dass ich für die geschnittenen Teile KEINEN Artikel anlegen muss...Beispiel: Baugruppe beinhaltet: - Art.Nr. Komponente A - (Bearbeitetes Blech), gefertigt aus: - Art.Nr. RohBlech - Art.Nr. Komponente B (Schweißkonstr./Bearb. Rohr), gefertigt aus: - Art.Nr. Halbzeug / Meterware etc. Rohblech soll raus, da ich für bearbeitete Bleche sowieso eine Artikelnummer brauche da ich Bleche extern beziehe. Komponente B soll raus, da ich selbst Halbzeuge verarbeite und keine Artikelnummern für ein abgeschnittenes Stück Rohr anlegen will, da mir sonst die Anzahl Varianten langfristig explodieren als Anlagenbauer...
------------------ www.dampfkessel.com Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2776 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 12. Nov. 2019 13:38 <-- editieren / zitieren --> Unities abgeben: Nur für abullaman
Hallo, du kannst doch in Pro.File auch Dokument ohne Teil anlegen, das heißt du hast ein Dokument (Rohling) dem kein Artikel zugeordnet ist der daher auch nicht in der Pro.File Stückliste erscheint, des weiteren kannst du auch virtuelle Komponenten / Phantom Komponenten welche auch keine Artikelnummer bekommen verwenden. Gruß Bernd ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
abullaman Mitglied Konstrukteur, Admin, Produktarchitektur
Beiträge: 6 Registriert: 08.11.2019 SWX19
|
erstellt am: 13. Nov. 2019 07:44 <-- editieren / zitieren --> Unities abgeben:
|
abullaman Mitglied Konstrukteur, Admin, Produktarchitektur
Beiträge: 6 Registriert: 08.11.2019 SWX19
|
erstellt am: 25. Nov. 2019 13:27 <-- editieren / zitieren --> Unities abgeben:
So, ein kleines Update: Das Makro 3 für das Exportieren ist fertig. das Makro 1 für den Import nach Vorlage, Mit Zuschnittliste etc. funktioniert auch, aber es fehlt noch das Einstellen der Positionsnummern auf "Start"= 10 und "Increment" auf 10... Könnte mir jemand helfen ? ___________________________ Option Explicit Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim swSelMgr As SldWorks.SelectionMgr Dim swFeatMgr As SldWorks.FeatureManager Dim swView As SldWorks.View Dim swBomAnn As BomTableAnnotation Dim swBomFeat As SldWorks.BomFeature Dim AnchorType As Long Dim BomType As Long Dim Configuration As String Dim TableTemplate As String Dim Hidden As Boolean Dim swNumberingType_e As Integer Dim DetailedCutList As Boolean Dim Options As IStackedBalloonOptions Sub main() Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc Set swSelMgr = swModel.SelectionManager Set swFeatMgr = swModel.FeatureManager Set swView = swSelMgr.GetSelectedObject6(1, 0) AnchorType = swBOMConfigurationAnchorType_e.swBOMConfigurationAnchor_BottomRight BomType = swBomType_e.swBomType_Indented Configuration = "" TableTemplate = "\\server001\$Konstruktion\SOLIDWORKS\SWX\Tabellenvorlagen\bomvorlage.sldbomtbt" '"Pfad Vorlage" Hidden = "False" swNumberingType_e = 2 DetailedCutList = True Set swBomAnn = swView.InsertBomTable4(True, 0, 0, AnchorType, BomType, Configuration, TableTemplate, Hidden, swNumberingType_e, DetailedCutList) swModel.ClearSelection2 True End Sub ------------------ www.dampfkessel.com Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2776 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 25. Nov. 2019 14:25 <-- editieren / zitieren --> Unities abgeben: Nur für abullaman
Hallo, die Start Position kannst du wohl hiermit festlegen SequenceStartNumber Property (IBomFeature) das Increment hab ich in der BOM jetzt nicht gefunden, evtl. geht das nur über die Stücklistensymbole ItemNumberIncrement Property (IBalloonOptions). Gruß Bernd ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Konstrukteur Maschinen- und Anlagenbau (m/w/d) | Menschen und Technologien zu verbinden, den Perfect Match für unsere Kunden zu gestalten, immer die richtigen Expert:innen für die jeweilige Herausforderung zu finden - das ist unser Anspruch bei FERCHAU und dafür suchen wir dich: als ambitionierte:n Kolleg:in, der:die wie wir Technologien auf die nächste Stufe bringen möchte. Du weißt genau, was du technologisch auf dem Kasten hast? Du suchst einen ... | Anzeige ansehen | Konstruktion, Visualisierung |
|
abullaman Mitglied Konstrukteur, Admin, Produktarchitektur
Beiträge: 6 Registriert: 08.11.2019 SWX19
|
erstellt am: 25. Nov. 2019 15:22 <-- editieren / zitieren --> Unities abgeben:
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|