| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| Performance steigern von großen Baugruppen und Zeichnungen mit SOLIDWORKS 2024 |
Autor
|
Thema: Baugruppen-Makro zum Exportieren von freigegeben Daten (3414 mal gelesen)
|
THSEFA Mitglied Konstrukteur/CAD-Admin
Beiträge: 1141 Registriert: 27.11.2002 SWX 2020 SP5.0 Premium Windows 10 Pro 64Bit Citrix VM Intel(R) XEON(R) Gold 6146 CPU @ 3.20GHz 24 GB Ram<P>Windows 10 Pro 64Bit
|
erstellt am: 23. Jan. 2012 16:28 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen, wer kennt es nicht: Die Konstruktion ist nach wochenlanger Mehrarbeit endlich fertig, die Arbeitsvorbereitung drängelt nach den Stücklisten, die Warenwirtschaft sitzt dir im Nacken wegen den Bestell-Dateien. Zwischendurch klingelt noch das Telefon und Cheffe fragt nach dem Stand. Dazu kommt dann die bescheidenen Möglichkeiten direkt aus dem PDMWorks heraus zu exportieren (Stichwort "Datenfreigabe"!!!). Wer da noch die Übersicht behält und beim ablegen der PDF, der IGS, der E-Drawing und den gedruckten Zeichnungen bei einem Projekt mit mehreren hundert Teilen in der Baugruppe keine Fehler macht, der hat echt Nerven wie Drahtseile! Ich hab sie nicht! Daher kam ich auf die Idee, das Makro von Andi Beck für meine Bedürfnisse anzupassen. Da es einigen von euch sicherlich ähnlich geht, möchte ich es zur freien Verfügung stellen. Aber nicht, ohne vorher nochmals ein besonderes Dankeschön an Andi Beck abzugeben, ohne dessen Hilfe ich nie und nimmer durchgeblickt hätte! Auch an alle anderen fleißigen Helferlein hier auf CAD.de, welche mir weitergeholfen haben -> ein herzliches Danke!!! Probiert´s aus, Rückmeldungen sowie sachdienliche Kritik sind erwünscht! PS: Sicherheitshalber noch der Hinweis: Das Makro befindet sich im Beta-Status... ------------------ Viele Grüße, THSEFA [Diese Nachricht wurde von THSEFA am 23. Jan. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Nobbi Mitglied Techniker
Beiträge: 151 Registriert: 21.08.2002 Windows 10 Enterprise SW2001 - SW2019 MDT ACPIx64-basierter PC NVIDIA Quadro M4000 Space Pilot SAP-Cideon
|
erstellt am: 23. Jan. 2012 17:43 <-- editieren / zitieren --> Unities abgeben: Nur für THSEFA
|
THSEFA Mitglied Konstrukteur/CAD-Admin
Beiträge: 1141 Registriert: 27.11.2002 SWX 2020 SP5.0 Premium Windows 10 Pro 64Bit Citrix VM Intel(R) XEON(R) Gold 6146 CPU @ 3.20GHz 24 GB Ram<P>Windows 10 Pro 64Bit
|
erstellt am: 23. Jan. 2012 19:12 <-- editieren / zitieren --> Unities abgeben:
|
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 2572 Registriert: 02.10.2006 Firma: SW 2023-4.0 + PDM Prof. Windows 10 Pro 64bit, i9-11900 32 GbRAM, Quadro P2200 Home: SW 2022-5.0 Passungstabelle von Heinz Windows 11 Pro 64bit, i7-12700K, 32 GbRAM, GeForce GTX 1050Ti Samsung C34H892, 3440x1440 Pixel
|
erstellt am: 23. Jan. 2012 19:14 <-- editieren / zitieren --> Unities abgeben: Nur für THSEFA
Hallo THSEFA, gratuliere recht schön, sieht schon mal ganz gut aus, und Danke für die Blumen. Also bei mir ist kein Kennwort vergeben, ich komme rein ins Makro. Leider habe ich zu Beginn gleich eine Irritation, siehe Bild. Nur mit meiner Testbaugruppe komme ich jetzt (am Wochenende ging es noch) nicht mehr durch deine einzelnen Schritte. Man muss schon sehr genau deine Dateistruktur nachbilden bzw. anpassen, um an alle Funktionen zu kommen. Mal eben Testen ist nicht mehr. Ansonsten kann ich dir schon mal eine zusätzliche Zeile vorab mitteilen. Sie gehört in die Sub: Private Function TraverseComponent(Level As Integer, Component As Object) im Abschnitt 'oberste Baugruppe actualDoc.Released = AssemblyDoc.CustomInfo2("", "Status") 'Status Freigegeben Dadurch wird auch der Status der obersten Baugruppe erfasst. Mach weiter so, bin schon gespannt drauf, wenn es fertig ist. Grüße, Andi ------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) [Diese Nachricht wurde von Andi Beck am 24. Jan. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
THSEFA Mitglied Konstrukteur/CAD-Admin
Beiträge: 1141 Registriert: 27.11.2002 SWX 2020 SP5.0 Premium Windows 10 Pro 64Bit Citrix VM Intel(R) XEON(R) Gold 6146 CPU @ 3.20GHz 24 GB Ram<P>Windows 10 Pro 64Bit
|
erstellt am: 24. Jan. 2012 08:45 <-- editieren / zitieren --> Unities abgeben:
Vielleicht ein paar erklärende Worte, damit man besser versteht, was ich damit bezwecken will: Wir benutzen SolidWorks Workgroup PDM und haben den Lebenszyklus aktiviert. Alle Baugruppen, Teile und Zeichnungen, welche ausgecheckt werden, sind in einem Ordner auf einem Server abgelegt. Die Zeichnung hat immer den selben Dateinamen wie das Bauteil oder die Baugruppe. Konfigurationen gibt es nicht. In allen Teilen befinden sich eine Artikelnummer (die auch in der Zeichnung vergeben wird) und eventuell noch eine Artikelnummer-Fertigteil für den Fall, das ein oder mehrere Bearbeitungsschritte notwendig sind. Baugruppen haben eine bestimmte Artikelnummer, welche mit M910.... anfängt. Ebenso deren Zeichnungen. Voraussetzung für das laufen des Makros sind also das Vorhandensein einer geöffneten Baugruppe. Andi hat recht, hier fehlt momentan noch die Abfrage, ob die Baugruppe freigegeben ist. Kommt also noch! Weiterhin benötigt man die Zeichnungen und Bauteile in dem angegebenen Ordner. Bauteile und Zeichnungen sollten den Lebenzykluststatus "Freigegeben" besitzen. Die Ordner, in welche die Exportformate gespeichert werden sollen, sollten vorhanden sein. Was macht das Makro (Bild "Freigabe 01"): Als erstes speichert es die Baugruppe als Edrawing ab. Dazu wird der Artikelnummer der Baugruppe vor den Namen angehängt. Danach öffnet es die Zeichnung der Baugruppe und speichert davon ein PDF. Auch mit dem Namen der Artikelnummer vorneweg. Dann wird der Button "Einlesen" aktiviert (Bild "Freigabe 02"). Durch Klick darauf wird nun durch die Baugruppe gegangen und alle Teile (incl. Norm- und Toolboxteile) werden gezählt. Dann wird versucht (wenn es kein Toolboxteil ist), von jedem anderen Teil die Zeichnung zu öffnen. Ist keine vorhanden, wird das Teil nicht weiter berücksichtigt. Nächstes Teil. Ist der Lebenszyklusstatus eines Teiles oder einer Zeichnung nicht "Freigegeben", dann kommt eine Abfrage, ob das Teil trotzdem aufgelistet werden soll. In der Liste wird dieses Teil dann markiert mit einem Zusatz. Sind alle durch, wird aufgefordert, sich die Teile auszuwählen, welche man exportieren will. Als nächstes wird der Butten "Export" freigegeben (Bild "Freigabe 03"). Drauf klicken, und es werden alle Teile, welche in der liste stehen und angehakt sind, als IGS gespeichert. Die Zeichnungen werden als PDF und DWG gespeichert. Wenn ich die Option "Zeichnung drucken" anwähle druckt es mir die Zeichnungen auch gleich mit aus. Bei eventuellen Unterbaugruppen erstellt es mir eine EDrawing und ein PDF der Baugruppenzeichung. Das war´s eigentlich schon. Zeitersparnis für eine Baugruppe mit 160 Teilen ca. 2h. Laufzeit des Makros für diese BG ca. 10 Minuten. ------------------ Viele Grüße, THSEFA Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Olls Lai Lolli Mitglied Konstrukteur
Beiträge: 366 Registriert: 07.05.2009 MS Windows 10 Prof. Intel Xeon E5-1630 v 3 3.7 GHz 32 GB Ram Nvidia Quadro M4000 SWX 2019 x64 SP 5 PDM Enterprise 2019 SP 3
|
erstellt am: 14. Apr. 2012 11:14 <-- editieren / zitieren --> Unities abgeben: Nur für THSEFA
Hallo, gibt es eine Chance das Makro auch in SWX 2011 zu starten? Habe es eben versucht, bin aber gleich stecken geblieben und hab dann in den Verweisen gesehen, dass dort an zwei Stellen auf die Version 2012 gezeigt wird. Mein Versuch die beiden Zeilen durch die Verweise auf die Version der 2011 zu ersetzen sind leider gescheitert. Gruß OLL Edit: Habs hinbekommen, weiß nur nicht wie [Diese Nachricht wurde von Olls Lai Lolli am 14. Apr. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
THSEFA Mitglied Konstrukteur/CAD-Admin
Beiträge: 1141 Registriert: 27.11.2002 SWX 2020 SP5.0 Premium Windows 10 Pro 64Bit Citrix VM Intel(R) XEON(R) Gold 6146 CPU @ 3.20GHz 24 GB Ram<P>Windows 10 Pro 64Bit
|
erstellt am: 15. Apr. 2012 14:16 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von Olls Lai Lolli: ...Habs hinbekommen, weiß nur nicht wie...
Das ist dann glaube ich auch egal! Bei Fragen zum Makro melde dich einfach. ------------------ Viele Grüße, THSEFA Was gute Mitarbeiter kosten, wissen alle. Was sie wert sind, die wenigsten! API: Hilfe gesucht! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Olls Lai Lolli Mitglied Konstrukteur
Beiträge: 366 Registriert: 07.05.2009 MS Windows 10 Prof. Intel Xeon E5-1630 v 3 3.7 GHz 32 GB Ram Nvidia Quadro M4000 SWX 2019 x64 SP 5 PDM Enterprise 2019 SP 3
|
erstellt am: 16. Apr. 2012 20:30 <-- editieren / zitieren --> Unities abgeben: Nur für THSEFA
Zitat: Original erstellt von THSEFA: Bei Fragen zum Makro melde dich einfach.
:D Du weißt aber schon, dass du gerade einen absoluten Makro/VBA DAU vor dir hast Aber erste Erfolge kann ich schon verzeichnen :-) Ich bin auch zuerst auf das Problem aufgelaufen, welche Andi Beck in seinem Screenshot zeigt. Nach dem ich dann aber raus bekommen habe, wie man sich die zusammengesetzte Variable beim swAPP.OpenDoc6... anzeigen lassen kann, war mir klar an was es liegt. Wobei ich schon etwas verwundert war, warum du in der Sub " PDFspeichernBG " einen Pfad y:!!!Einzelteile!!! verwendest. Da bei mir die Baugruppen und die Zeichnungen im gleichen Verzeichniss liegen, hab ich mir das jetzt mal so umgebaut: Code: 'OLL zwei neue Variablen für den ganzen Pfad und Pfad ohne Dateierweiterung. Dim AssemblydocFullPath As String Dim AssemblydocWithoutExtension As String 'OLL Wert auf Variable schreiben AssemblydocFullPath = AssemblyDoc.GetPathName 'OLL Extension abschneiden. AssemblydocWithoutExtension = Left(AssemblydocFullPath, InStrRev(AssemblydocFullPath, ".") - 1) 'OLL Zeichnung zur Baugruppe öffnen. Set AssemblyDrw = swApp.OpenDoc6(AssemblydocWithoutExtension + ".SLDDRW", swDocDRAWING, swOpenDocOptions_Silent, "", openerrors, openwarnings) 'THSEFA Version Set AssemblyDrw = swApp.OpenDoc6(PfadPART + "\" + AssemblyName + ".SLDDRW", swDocDRAWING, swOpenDocOptions_Silent, "", openerrors, openwarnings) Set AssemblyDrw = swApp.ActiveDoc AssemblyDrw.Visible = True
Nach dieser Modifikation und noch ein paar kleineren Anpassungen an den Zielverzeichnissen für PDF und edrawing, hab ich dann schon die ersten beiden Dateien erzeugen können Gruß OLL
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
THSEFA Mitglied Konstrukteur/CAD-Admin
Beiträge: 1141 Registriert: 27.11.2002 SWX 2020 SP5.0 Premium Windows 10 Pro 64Bit Citrix VM Intel(R) XEON(R) Gold 6146 CPU @ 3.20GHz 24 GB Ram<P>Windows 10 Pro 64Bit
|
erstellt am: 17. Apr. 2012 12:23 <-- editieren / zitieren --> Unities abgeben:
Das freut mich, wenn du Verwendung für das Makro findest. Andy Beck hat da ja schon eine großartige Vorarbeit geliefert. Ich habe dann auch nur etwas zusätzlichen Code gegutenbergt... Der von dir beschriebene Ordner (!!!Einzelteile!!!) liegt auf einem Server, wo auch Leute mit etwas weniger Ahnung von Computern Zugriff haben. Nachdem er am Anfang von diesen Usern 2x gelöscht wurde, musste ich den ein wenig deutlicher kennzeichnen! In eben diesem Ordner werden alle Teile, Zeichnungen, Baugruppen aus dem Tresor ausgecheckt. Es ist sozusagen der Arbeitsordner. Wenn also die fertige (und freigegebene) Baugruppe geöffnet ist, sind alle Teile + Zeichnungen dort vorhanden. Sollte also ähnlich sein wie bei dir. Mein VBA-Wissen + "Können" hab ich mir auch nur so wie du angeeignet: Probieren, probieren, probieren! Und natürlich Fragen stellen! Und wenn ich kann, dann beantworte ich solche Fragen gern! ------------------ Viele Grüße, THSEFA Was gute Mitarbeiter kosten, wissen alle. Was sie wert sind, die wenigsten! API: Hilfe gesucht! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Delta1988 Mitglied Konstrukteur
Beiträge: 64 Registriert: 15.06.2012 SolidWorks 2017
|
erstellt am: 18. Jul. 2012 14:18 <-- editieren / zitieren --> Unities abgeben: Nur für THSEFA
|
THSEFA Mitglied Konstrukteur/CAD-Admin
Beiträge: 1141 Registriert: 27.11.2002 SWX 2020 SP5.0 Premium Windows 10 Pro 64Bit Citrix VM Intel(R) XEON(R) Gold 6146 CPU @ 3.20GHz 24 GB Ram<P>Windows 10 Pro 64Bit
|
erstellt am: 18. Jul. 2012 22:14 <-- editieren / zitieren --> Unities abgeben:
Die freigegebene BG ist bei mir schon aus dem Workgroup PDM ausgecheckt, wenn ich aufs Knöpfchen drücke. Ob du mit Enterprise PDM die gleichen benutzerdefinierten Eigenschaften erzeugen kannst, weiß ich leider nicht... ------------------ Viele Grüße, THSEFA Was gute Mitarbeiter kosten, wissen alle. Was sie wert sind, die wenigsten! API: Hilfe gesucht! [Diese Nachricht wurde von THSEFA am 18. Jul. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Delta1988 Mitglied Konstrukteur
Beiträge: 64 Registriert: 15.06.2012 SolidWorks 2017
|
erstellt am: 19. Jul. 2012 06:24 <-- editieren / zitieren --> Unities abgeben: Nur für THSEFA
|
THSEFA Mitglied Konstrukteur/CAD-Admin
Beiträge: 1141 Registriert: 27.11.2002 SWX 2020 SP5.0 Premium Windows 10 Pro 64Bit Citrix VM Intel(R) XEON(R) Gold 6146 CPU @ 3.20GHz 24 GB Ram<P>Windows 10 Pro 64Bit
|
erstellt am: 19. Jul. 2012 08:27 <-- editieren / zitieren --> Unities abgeben:
Warum nicht? Ich könnte mir vorstellen, das die benutzerdefinierten Eigenschaften, welche das PDM einträgt (Status; Revision usw.) auch per Hand bzw. anderen Makro eingetragen werden können. Dann würde es meiner Meinung nach auch funktionieren. ------------------ Viele Grüße, THSEFA Was gute Mitarbeiter kosten, wissen alle. Was sie wert sind, die wenigsten! API: Hilfe gesucht! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |