| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| SolidCAM World 2024 in Rosenheim, eine Veranstaltung am 24.09.2024
|
Autor
|
Thema: VBA: Makro beim Öffnen eines Parts automatisch starten (4377 mal gelesen)
|
pi-design Mitglied Design Engineer
Beiträge: 950 Registriert: 09.08.2002 WIN 10 / 64bit SWX 2018 SP5 64 Bit MS Office 2013 HP Z420 Intel Xeon E5-1620 3,66GHz 16 GB RAM 2x HP LA2405wg (24") NVIDIA Quadro 2000 Space Explorer
|
erstellt am: 16. Nov. 2009 08:07 <-- editieren / zitieren --> Unities abgeben:
Hi, ich möchte gerne beim Öffnen eines Parts ein Makro automatisch starten. Geht sowas, und wenn ja, wie? Hintergrung: Sofort nach dem Öffnen eines Parts soll die Konfigurationstabelle geöffnet werden. Das Makro zum Öffnen der Tabelle habe ich mit dem Recorder aufgezeichnet. ------------------ Gruß Pille Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ad_man Mitglied freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))
Beiträge: 1384 Registriert: 20.12.2003 SolidWorks 2023 SP5 mit Enterprise PDM , Windows 11, Dell Precision 3660, i7-12700K, 96 GB DDR-Ram, Quadro RTX A4000
|
erstellt am: 16. Nov. 2009 08:31 <-- editieren / zitieren --> Unities abgeben: Nur für pi-design
Hallo Pille, dreh das Ganze doch um . Erzeuge dir ein Makro, dass dir dein Teil öffnet (1. Schritt) und dann die Konfigurations-Tabelle (2. Schritt). Ich glaube nicht, dass du es mit "einfachen" Mitteln schaffst, ein Makro beim Öffnen eines Teiles ausführen zu lassen. Da gab es aber schon mal etwas, muss mal schauen, ob ich es nachher wiederfinde. Muss jetzt erst mal in 'ne Besprechung. ------------------ ========== Gruß Andreas ========== Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pi-design Mitglied Design Engineer
Beiträge: 950 Registriert: 09.08.2002 WIN 10 / 64bit SWX 2018 SP5 64 Bit MS Office 2013 HP Z420 Intel Xeon E5-1620 3,66GHz 16 GB RAM 2x HP LA2405wg (24") NVIDIA Quadro 2000 Space Explorer
|
erstellt am: 16. Nov. 2009 08:40 <-- editieren / zitieren --> Unities abgeben:
Hallo Andreas, das Part wird über ein Excel-Makro geöffnet. Könnte ich dieses dann weiter verwenden? Public Sub Hof_Kapsel_3D_Part() Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim fileerror As Long Dim filewarning As Long Dim swxDatei As String ' Pfad Solidworks-Modell swxDatei = ActiveWorkbook.Path & "\" & "Formhöfe\Hof_Kapsel.SLDPRT" ' Objekt Set swApp = CreateObject("SldWorks.Application") swApp.Visible = True ' Modell öffnen swApp.OpenDoc6 swxDatei, swDocPART, swOpenDocOptions_Silent, "", fileerror, filewarning ' zur Startseite wechseln Sheets("Startseite").Select End Sub ------------------ Gruß Pille Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HenryV Mitglied Konstrukteur, Engineering
Beiträge: 817 Registriert: 18.05.2005 SolidWorks 2022 x64 SP5.0 Dell Precision 5820 Intel Xeon W-2125 4x4GHz NVIDIA Quadro P2000 5GB 32GB RAM 2x Dell U2412M, 24" TFT Windows 10 Enterprise x64 22H2 Microsoft 365 E5 Microsoft Visual Studio Enterprise 2022
|
erstellt am: 16. Nov. 2009 08:53 <-- editieren / zitieren --> Unities abgeben: Nur für pi-design
Hallo Pille Ich würde es mal so probieren Code: Dim boolstatus As Boolean boolstatus = swApp.RunMacro("<path\macro-name>", "<ModuleName>", "<ProcedureName>")
Gruss Andreas ------------------ 21 ist nur die halbe Antwort. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pi-design Mitglied Design Engineer
Beiträge: 950 Registriert: 09.08.2002 WIN 10 / 64bit SWX 2018 SP5 64 Bit MS Office 2013 HP Z420 Intel Xeon E5-1620 3,66GHz 16 GB RAM 2x HP LA2405wg (24") NVIDIA Quadro 2000 Space Explorer
|
erstellt am: 16. Nov. 2009 09:34 <-- editieren / zitieren --> Unities abgeben:
Hallo Andreas, habe jetzt das Problem, daß ich außer einer Makro-Aufzeichnung keinen blassen Schimmer von der Geschichte habe. Könntest Du mir eventuell zeigen, wie mein obiges Makro dann letzlich sein muß? Den Pfad zu den Dateien kann ich dann schon selbst Eintragen ------------------ Gruß Pille Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MWN Mitglied Dipl.-Ing.
Beiträge: 492 Registriert: 14.02.2007
|
erstellt am: 16. Nov. 2009 10:03 <-- editieren / zitieren --> Unities abgeben: Nur für pi-design
Hey Leute, soweit ich mich erinnern kann, gab es dazu hier auf CAD.de schon mal eine Diskusion und dort kam auch der Vorschlag, das Makro gleich über den Pfad in der Verknüpfung zur Sldworks.exe mit anzugeben. Es gibt wohl eine Möglichkeit, gleich das Makro dort mit starten zu lassen, so als Art "Startparameter"! Und dann ist es ja ein leichtes, auf das Event zu warten, welches nach dem öffnen eines Teils ausgelöst wird. Einfacher wäre natürlich die Programmierung einer Zusatzanwendung, die auf den entsprechenden Event lauscht! Grüße Tobias ------------------ Besucht mich doch mal in meiner Tischlerei Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ad_man Mitglied freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))
Beiträge: 1384 Registriert: 20.12.2003 SolidWorks 2023 SP5 mit Enterprise PDM , Windows 11, Dell Precision 3660, i7-12700K, 96 GB DDR-Ram, Quadro RTX A4000
|
erstellt am: 16. Nov. 2009 10:17 <-- editieren / zitieren --> Unities abgeben: Nur für pi-design
Hallo Pille, probier doch mal folgendes: ' Modell öffnen swApp.OpenDoc6 swxDatei, swDocPART, swOpenDocOptions_Silent, "", fileerror, filewarning
' Konfigtabelle öffnen Set swModel = swApp.ActiveDoc boolstatus = swModel.Extension.SelectByID2("Tabelle", "DESIGNTABLE", 0, 0, 0, False, 0, Nothing, 0) swModell.InsertFamilyTableEdit
' zur Startseite wechseln Sheets("Startseite").Select Ich weiß nicht, wie Excel reagiert, da du ja aus Excel heraus über SWX im Endeffekt wieder ein Excel-Sheet aufrufst... ------------------ ========== Gruß Andreas ========== Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pi-design Mitglied Design Engineer
Beiträge: 950 Registriert: 09.08.2002 WIN 10 / 64bit SWX 2018 SP5 64 Bit MS Office 2013 HP Z420 Intel Xeon E5-1620 3,66GHz 16 GB RAM 2x HP LA2405wg (24") NVIDIA Quadro 2000 Space Explorer
|
erstellt am: 16. Nov. 2009 10:31 <-- editieren / zitieren --> Unities abgeben:
Hallo Tobias, meintest Du diesen hier? Wenn ich das dort richtig verstehe, dann muß SWX jedes mal komplett neu gestartet werden. In meinem Fall ist SWX bereits offen. Vielleicht muß ich noch ein wenig ausholen: In der Excel-Tabelle sind mehrere Blattregister (für jedes SWX-Part ein Blatt), in dem jeweils Werte eingetragen werden. Sobald die Werte eingetragen sind, öffnet der User mit einem Button (siehe obiges Makro) das SWX-Part. Damit dort die Werte aus Excel in der SWX-Tabelle eingetragen werden können, muß diese erstmal geöffnet werden. Und genau dieses öffnen der SWX-Tabelle hätte ich gerne automatisiert. ------------------ Gruß Pille Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pi-design Mitglied Design Engineer
Beiträge: 950 Registriert: 09.08.2002 WIN 10 / 64bit SWX 2018 SP5 64 Bit MS Office 2013 HP Z420 Intel Xeon E5-1620 3,66GHz 16 GB RAM 2x HP LA2405wg (24") NVIDIA Quadro 2000 Space Explorer
|
erstellt am: 16. Nov. 2009 10:37 <-- editieren / zitieren --> Unities abgeben:
|
HenryV Mitglied Konstrukteur, Engineering
Beiträge: 817 Registriert: 18.05.2005 SolidWorks 2022 x64 SP5.0 Dell Precision 5820 Intel Xeon W-2125 4x4GHz NVIDIA Quadro P2000 5GB 32GB RAM 2x Dell U2412M, 24" TFT Windows 10 Enterprise x64 22H2 Microsoft 365 E5 Microsoft Visual Studio Enterprise 2022
|
erstellt am: 16. Nov. 2009 10:40 <-- editieren / zitieren --> Unities abgeben: Nur für pi-design
|
ad_man Mitglied freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))
Beiträge: 1384 Registriert: 20.12.2003 SolidWorks 2023 SP5 mit Enterprise PDM , Windows 11, Dell Precision 3660, i7-12700K, 96 GB DDR-Ram, Quadro RTX A4000
|
erstellt am: 16. Nov. 2009 10:40 <-- editieren / zitieren --> Unities abgeben: Nur für pi-design
Hallo Pille, änder das swModell mal in swModel (da war der Finger zu lange auf der Tastatur ). EDIT: Mann, ich werde alt Schon wieder jemand schneller... ------------------ ========== Gruß Andreas ========== [Diese Nachricht wurde von ad_man am 16. Nov. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MWN Mitglied Dipl.-Ing.
Beiträge: 492 Registriert: 14.02.2007
|
erstellt am: 16. Nov. 2009 10:48 <-- editieren / zitieren --> Unities abgeben: Nur für pi-design
Hey Pille, genau den Thread meinte ich! Zitat: Sobald die Werte eingetragen sind, öffnet der User mit einem Button (siehe obiges Makro) das SWX-Part
Bis hierhin ist es User - Interaktion! Also User drückt Button und Teil öffnet sich. Zitat: Damit dort die Werte aus Excel in der SWX-Tabelle eingetragen werden können, muß diese erstmal geöffnet werden. Und genau dieses öffnen der SWX-Tabelle hätte ich gerne automatisiert.
Jetzt schreibst du dir noch ein Zweites Makro, was du mit Hilfe dieses Threads beim Starten von SolidWorks ausführen lässt! Und dieses Makro macht jetzt nichts anderes, als auf den FileOpenNotify - Event von SolidWorks zu warten (nachher noch prüfen, ob es sich auch um ein Part handelt) und wenn es durch diesen Event ausgelöst wird, dann die Tabelle zu öffnen! Grüße Tobias PS: Andreas und Andreas haben recht! ------------------ Besucht mich doch mal in meiner Tischlerei [Diese Nachricht wurde von MWN am 16. Nov. 2009 editiert.] [Diese Nachricht wurde von MWN am 16. Nov. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pi-design Mitglied Design Engineer
Beiträge: 950 Registriert: 09.08.2002 WIN 10 / 64bit SWX 2018 SP5 64 Bit MS Office 2013 HP Z420 Intel Xeon E5-1620 3,66GHz 16 GB RAM 2x HP LA2405wg (24") NVIDIA Quadro 2000 Space Explorer
|
erstellt am: 16. Nov. 2009 11:02 <-- editieren / zitieren --> Unities abgeben:
Hallo Andreas's (Mehrzahl) und Tobias, Juch hu, es funktioniert schon mal fast so, wie ich es gern möchte. Aaaber, gibt es noch die Möglichkeit, daß die Tabelle in SWX und nicht in Excel aufgemacht wird? Wenn nicht, ist es auch nicht so schlimm. Ihr habt mir auch so schon super geholfen. ------------------ Gruß Pille Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ad_man Mitglied freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))
Beiträge: 1384 Registriert: 20.12.2003 SolidWorks 2023 SP5 mit Enterprise PDM , Windows 11, Dell Precision 3660, i7-12700K, 96 GB DDR-Ram, Quadro RTX A4000
|
erstellt am: 16. Nov. 2009 12:00 <-- editieren / zitieren --> Unities abgeben: Nur für pi-design
Hallo Pille, dann musst du deinen Code wie folgt ändern: Public Sub Hof_Kapsel_3D_Part() Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2
Dim swDTable As SldWorks.DesignTable
... ' Modell öffnen swApp.OpenDoc6 swxDatei, swDocPART, swOpenDocOptions_Silent, "", fileerror, filewarning
' Interne Designtabelle aufrufen Set swModel = swApp.ActiveDoc Set swDTable = swModel.GetDesignTable swDTable.Attach
' zur Startseite wechseln Sheets("Startseite").Select End Sub Mahlzeit zusammen ------------------ ========== Gruß Andreas ========== Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pi-design Mitglied Design Engineer
Beiträge: 950 Registriert: 09.08.2002 WIN 10 / 64bit SWX 2018 SP5 64 Bit MS Office 2013 HP Z420 Intel Xeon E5-1620 3,66GHz 16 GB RAM 2x HP LA2405wg (24") NVIDIA Quadro 2000 Space Explorer
|
erstellt am: 16. Nov. 2009 12:34 <-- editieren / zitieren --> Unities abgeben:
|