| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS | | | | PLM TechnologieForum Hannover |
Autor
|
Thema: Makros automatisch entladen (2442 mal gelesen)
|
Metallica88 Mitglied Konstrukteur; CAD Admin
Beiträge: 379 Registriert: 01.04.2009 Win7 Pro 64bit SolidWorks 2015 SP5 MaxxDB 2015 Fujitsu Celsius M470-2 / M720 Quadro 2000 / Quadro K2000 Intel Xeon W3690 6x3,46GHz (3,73GHz) / Intel Xeon E5-1650 6x3,2GHz (3,8GHz) 12GB RAM / 16GB RAM 120GB SSD
|
erstellt am: 27. Aug. 2013 08:19 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, hätte folgende Fragen: 1. Gibt es die Möglichkeit ein Makro nach Ausführung automatisch wieder zu entladen, da sonst jener der es als erster ausgeführt hat dieses für Veränderungen mehr oder weniger sperrt... (weils ja bei jenem im Macro Editor / Speicher verbleibt) Einziges was mir bis jetzt aufgefallen wäre ist der Umweg über ein Macro welches das eigentliche Makro mit RunMacro2 aufruft (dort kann mit swRunMacroUnloadAfterRun eben dieses wieder entladen werden) Zudem auch noch die Frage wie ich Makros die ich gerade bearbeitet habe wieder entladen kann ohne dabei gleich SolidWorks schließen zu müssen. (Close Project ist zumindest bei uns immer ausgegraut) Danke! Nachtrag: mit "Close and Return to SolidWorks" werden alle offenen Projekte zumindest schon mal geschlossen... Mfg Metallica88 [Diese Nachricht wurde von Metallica88 am 27. Aug. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christian_W Ehrenmitglied V.I.P. h.c. Konstrukteur (Dipl-Ing)
Beiträge: 3189 Registriert: 04.04.2001 CSWP 12/2015<P>SWX2021sp5 Win10/11 (SWX2016, SWX2012) proAlpha6.2e00/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19)
|
erstellt am: 06. Mai. 2014 12:53 <-- editieren / zitieren --> Unities abgeben: Nur für Metallica88
Hallo, habe da gerade etwas gemeines probiert: das makro kann sich selber mit der Option unload aufrufen und ist dann weg. im Modul unload_makro_1:
Code: Option ExplicitDim swApp As Object Dim boolstatus As Boolean Dim filename As String Dim runMacroError As Long Sub Unload_me() Set swApp = Application.SldWorks swApp.SendMsgToUser "gleich schließe ich ..." filename = swApp.GetCurrentMacroPathName boolstatus = swApp.RunMacro2(filename, "unload_makro_1", "ciao", swRunMacroUnloadAfterRun, runMacroError) End Sub Sub ciao() Rem swApp.SendMsgToUser "bin dann mal weg ..." End Sub
Achtung! Schließt offensichtlich ohne Speichern und ohne weitere Rückfrage ... Das wird ich wohl mal in meine vom Netzlaufwerk kommenden Makros einbauen und als letzten Aufruf einfügen ... vielleicht kann ja mal ein Profi noch einen Kommentar dazu geben, wie man es am schönsten hinbekommt... Edith: ich hab es schon mal beim Passungstabellenmakro probiert - scheint zu gehen. muss jetzt Feierabend machen und schreibe morgen mehr dazu ... Gruß, Christian
[Diese Nachricht wurde von Christian_W am 06. Mai. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christian_W Ehrenmitglied V.I.P. h.c. Konstrukteur (Dipl-Ing)
Beiträge: 3189 Registriert: 04.04.2001 CSWP 12/2015<P>SWX2021sp5 Win10/11 (SWX2016, SWX2012) proAlpha6.2e00/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19)
|
erstellt am: 07. Mai. 2014 12:24 <-- editieren / zitieren --> Unities abgeben: Nur für Metallica88
in Verbindung mit userforms geht es auch: Code: userform1.show Unload_me
oder auch Code: userform1.show (vbModal) Unload_me
nicht funktionierend : entlädt alles, auch das Userform:
Code: userform1.show (vbModeless) Unload_me
in einigen unserer Aufrufe steht allerdings (true) oder (false) drin, weiß gar nicht, wie die da rein kommen .... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christian_W Ehrenmitglied V.I.P. h.c. Konstrukteur (Dipl-Ing)
Beiträge: 3189 Registriert: 04.04.2001 CSWP 12/2015<P>SWX2021sp5 Win10/11 (SWX2016, SWX2012) proAlpha6.2e00/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19)
|
erstellt am: 07. Mai. 2014 17:02 <-- editieren / zitieren --> Unities abgeben: Nur für Metallica88
so, das (false) war von hier und war wegen des nachträglichen nachvorneholens der Userform ... was ist von so einem Aufruf zu halten:
Code:
frmname.Show (vbModeless) lRet = FindWindow(vbNullString, frmname.Caption) res = SetWindowPos(lRet, HWND_TOPMOST, 0, 0, 0, 0, FLAGS) frmname.hide frmname.Show (vbModal) Unload_me
dann hab ich ihn erst modeless, hole ihn nach vorne, mache ihn nochmal modal auf und kann nach der Abarbeitung das makro entladen ... Was sagen die Programmierprofis? Gruß, Christian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christian_W Ehrenmitglied V.I.P. h.c. Konstrukteur (Dipl-Ing)
Beiträge: 3189 Registriert: 04.04.2001 CSWP 12/2015<P>SWX2021sp5 Win10/11 (SWX2016, SWX2012) proAlpha6.2e00/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19)
|
erstellt am: 09. Mai. 2014 09:44 <-- editieren / zitieren --> Unities abgeben: Nur für Metallica88
Habe jetzt unsere Makros so umgestrickt. einige hatten mitten im Userform einen Abbruch mit "end" - dann kommt man natürlich nicht zum unload_me das "Close and return to solidworks" hat meines Wissens die Makros trotzdem offen gehalten. mit meiner Variante sieht man die Projekte im VBA-Editor geladen werden und nach Abarbeitung verschwinden sie wieder. allerdings läuft das mit SWX2012-SP5 auf win7-64. wie ist das Verhalten mit neueren Versionen? Schönes Wochenende, Gruß, Christian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|