Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Makro für Stücklistenexport - Dateiname als CSV

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
  
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

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

Beiträge: 6
Registriert: 08.11.2019

SWX19

erstellt am: 08. Nov. 2019 15: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


MakroAnforderungenSWX_GH.pdf

 
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



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

Beiträge: 2776
Registriert: 18.07.2012

-Solid Works 2019 SP5
-Pro Engineer WF 3

erstellt am: 11. Nov. 2019 08:54    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 abullaman 10 Unities + Antwort hilfreich

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

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

Beiträge: 6
Registriert: 08.11.2019

SWX19

erstellt am: 11. Nov. 2019 16:06    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

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



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

Beiträge: 2776
Registriert: 18.07.2012

-Solid Works 2019 SP5
-Pro Engineer WF 3

erstellt am: 11. Nov. 2019 17:25    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 abullaman 10 Unities + Antwort hilfreich

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

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

Beiträge: 6
Registriert: 08.11.2019

SWX19

erstellt am: 11. Nov. 2019 19:25    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 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



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

Beiträge: 2776
Registriert: 18.07.2012

-Solid Works 2019 SP5
-Pro Engineer WF 3

erstellt am: 12. Nov. 2019 13:38    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 abullaman 10 Unities + Antwort hilfreich

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

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

Beiträge: 6
Registriert: 08.11.2019

SWX19

erstellt am: 13. Nov. 2019 07:44    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 Richtig, genau so möchte ich dann die Teile für Schweißkonstruktionen anlegen, und damit die "Halbzeuge" in die Stückliste kommen (eine Ebene nach oben), benötige ich dann das Makro...

------------------
www.dampfkessel.com

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

abullaman
Mitglied
Konstrukteur, Admin, Produktarchitektur

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

Beiträge: 6
Registriert: 08.11.2019

SWX19

erstellt am: 25. Nov. 2019 13:27    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, 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



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

Beiträge: 2776
Registriert: 18.07.2012

-Solid Works 2019 SP5
-Pro Engineer WF 3

erstellt am: 25. Nov. 2019 14:25    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 abullaman 10 Unities + Antwort hilfreich

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 ansehenKonstruktion, Visualisierung
abullaman
Mitglied
Konstrukteur, Admin, Produktarchitektur

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

Beiträge: 6
Registriert: 08.11.2019

SWX19

erstellt am: 25. Nov. 2019 15:22    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

Kannst du mir evtl mit der Methode/Variable helfen wo und was ich hier genau einsetzen muss ? Ich habe nur das hier gefunden, weiss aber nicht so recht damit umzugehen...

http://help.solidworks.com/2018/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.ibomfeature~sequencestartnumber.html


------------------
www.dampfkessel.com

[Diese Nachricht wurde von abullaman am 25. Nov. 2019 editiert.]

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