Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Makrobeschleunigung durch Menüaufklappen?!

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
  
PLM TechnologieForum Leipzig
Autor Thema:  Makrobeschleunigung durch Menüaufklappen?! (2056 mal gelesen)
Lutz Federbusch
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. Maschinenbau



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

Beiträge: 3094
Registriert: 03.12.2001

alle SW seit 97+
AutoCAD2016-2022
ERP ProAlpha + CA-Link
Intel Core i7-7820K 32GB
Win10x64 Quadro K5000
SpacePilot

erstellt am: 13. Jul. 2006 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

Ich mag ja Voodoo, aber heute war ich doch erstaunt, als ich ein Excel-Makro aufrief, das sich nacheinander alle Teile der aktiven SolidWorks-Baugruppe holt und untersucht. Große Baugruppe geladen, das Makro lief lange. Irgendwann habe ich mal das SolidWorks-Menü Extras aufgeklappt, um nach der Baugruppenstatistik zu sehen. Und interessanterweise lief das Makro bei aufgeklapptem Menü (egal welches) spürbar schneller?! Und ich kann es nachvollziehen. Ist das bei Euch auch so?
Nur SolidWorks-Fenster aktivieren bringt nicht den Effekt. Ab morgen mit heruntergelassenen Menüs  ?

------------------
Lutz Federbusch
Mein Gästebuch

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

Frank_Schalla
Ehrenmitglied
CAD_SYSTEMBETREUER


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

Beiträge: 1732
Registriert: 06.04.2002

erstellt am: 14. Jul. 2006 04:50    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 Lutz Federbusch 10 Unities + Antwort hilfreich

Ja MS hat so manche Überraschung in der Win API versteckt.
Ist aber unabhängig von Solid Works.
Weitere Infos findest du hier  http://ww3.cad.de/foren/ubb/Forum465/HTML/000030.shtml

------------------
    " TARGET=_blank>http://ww3.cad.de/foren/ubb/Forum465/HTML/000030.shtml

[Diese Nachricht wurde von Frank_Schalla am 14. Jul. 2006 editiert.]

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

RGR
Mitglied



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

Beiträge: 218
Registriert: 17.04.2003

HPxw4600
IntelCore2 DUO CPU
3.00GHz - 3,48GB RAM
NVIDIA Quadro FX3700,
SWX 2008, SP4.0,
Windows XP, SAP,
Office 2003
und
Diverse

erstellt am: 14. Jul. 2006 07:05    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 Lutz Federbusch 10 Unities + Antwort hilfreich

@Frank  << erstellt am: 14. Jul. 2006 04:50 >>


Guten Morgen Frank,

hast Du durchgearbeitet oder bist Du Frühaufsteher?
Hat nichts mit dem Thema zu tun  ich weiß, aber zu dieser Zeit schon am Rechner....

einen schönen Tag

Romana

------------------

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

maximal
Mitglied
Konstrukteur


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

Beiträge: 508
Registriert: 08.01.2003

SolidWorks 2018 SP5
Keytech 13
WIN 10
Composer, Simulation, Tacton & Lino

erstellt am: 14. Jul. 2006 07:49    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 Lutz Federbusch 10 Unities + Antwort hilfreich

Hi Lutz,

kenne den Voodoo-Zauber auch in Verbindung mit ProfiDB!
Das aktualisieren des Schriftkopfes ist manchmal quälend langsam, aber wenn man das ProfiDB-Menue in SWXSolidWorks aufklappt ist es auf einmal rasend schnell..
Tja wo sind die andren Turboknöpfe?
Vielleicht sollte SWXSolidWorks nur nach den Knöpfen suchen .... 

Gruß, Max

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

StefanBerlitz
Guter-Geist-Moderator
IT Admin (CAx)



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

Beiträge: 8756
Registriert: 02.03.2000

SunZu sagt:
Analysiere die Vorteile, die
du aus meinem Ratschlag ziehst.
Dann gliedere deine Kräfte
entsprechend und mache dir
außergewöhnliche Taktiken zunutze.

erstellt am: 14. Jul. 2006 12:17    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 Lutz Federbusch 10 Unities + Antwort hilfreich

Hallo zusammen,

ich glaube nicht so wirklich an Voodoo, hab aber (über Alex Häusler aka horrores  ) ) von einem ähnlichen Phänomen gehört. Sie haben dort be sich festgestellt, dass Makros schneller laufen, wenn sie die ALT-Taste drücken     

Ich vermute hier denselben Zusammenhang, hab aber nur oberflächlich damals ein bisschen dran gekratzt, kann das in diesem Fall hier mit den geöffneten Menus nachvollziehen (was übrigens noch schneller geht als der ALT-Tasten-Trick): nach meinen Beobachtungen liegt es an den gefeuerten (bzw. nicht gefeuerten) Events von SolidWorks.

Schau dir mal mit dem Notification-Monitor ( von http://www.solidworks.com/pages/services/APIDownloads.html  runterladen, falls du es nicht hast) an, was SolidWorks so macht. Solange du nichts tust, wird ungefähr alle halbe Sekunde das SldWorks_OnIdleNotify abgefeuert. Laut API Hilfe wird es gefeuert wenn alles fertig ist und das nächste gemacht werden kann.

  Fired after all of the messages have been processed, included posted repaints

Jetzt halt mal die ALT-Taste gedrückt, während dein SolidWorks-Fenster aktiv ist. Du siehst, die OnIdleNotify kommen jetzt viel schneller. Was passiert beim Drücken auf die ALT-Taste? Unter anderem werden die Tastenkombinationen zum Öffnen der Menus eingeleitet und SolidWorks oder Windows oder der Grafikkartenkartentreiber (so weit hab ich es nicht verfolgt) lassen daraufhin bestimmte Dinge ausfallen, weil es nicht mehr notwendig ist.

Jetzt die Nadel in das Voodoo-Püppchen: wenn du das Menu aufklappst, wird das OnIdleNotify gar nicht mehr gefeuert, als ob SolidWorks das komplette Event-Handling abgeschaltet hätte. Und wenn jetzt ein externes Programm an SolidWorks ran will kann es das wohl mit Volldampf machen und ganz alleine damit flirten, ohne dass sich SolidWorks dauernd versucht an Anderen zu suchen. Die Diva verhält sich da wahrscheinlich ähnlich, wie im oben angelinkten Beitrag zu lesen 

Zumindest bis dahin bin ich gekommen, hört sich für mich schlüssig an. Es wäre sicher interessant, dass mal mit Earl Hasz zu diskutieren, vielleicht könnte man so etwas als gewolltes Flag in die API einbauen 

Ciao,
Stefan

------------------
Inoffizielle deutsche SolidWorks Hilfeseite    http://solidworks.cad.de

Member of CAD.de BOINC Team  -   | Seti@Home | CPDN | Einstein@Home

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

VBSpawn
Mitglied
Programmierer


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

Beiträge: 514
Registriert: 23.08.2005

Sorgfältige Planung ersetzt niemals pures Glück.

erstellt am: 14. Jul. 2006 14:41    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 Lutz Federbusch 10 Unities + Antwort hilfreich


speed.zip

 
Hi zusammen,

ersteinmal Rechtgeb@Stefan alles was nicht an Events ausgeführt wird spart enorm Zeit.

Ich selbst kenne das aus Excel -> Wenn der ScreenRefresh deaktiviert ist geht es schneller, allerdings bleiben die Events vorhanden!

Wenn jemals einer von euch ein Taskbar Icon mit einem Popupmenü entwickelt habt, kennt Ihr sicherlich das Problem das die eigene App nicht mehr Reagiert bis der User das Menü geklickt oder wieder geschlossen hat.

Kurze Rede wenig Sinn.. ich hab da noch was zum Thema gefunden und auch direkt ein kleines bsp Proggie gemacht.

Bei mir gehts schneller wenn der ScreenRefresh deaktiviert ist ;o)...

und nun zum selber Testen...

achja (öffnet vorher eine Datei mit nicht allzuvielen Features! sonst kann dauern)

Gruß
Micha

------------------
http://classicvb.org/petition/

       

Zitat:
Interpunktion und Orthographie des Postings sind frei erfunden.
Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.

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

Lutz Federbusch
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. Maschinenbau



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

Beiträge: 3094
Registriert: 03.12.2001

alle SW seit 97+
AutoCAD2016-2022
ERP ProAlpha + CA-Link
Intel Core i7-7820K 32GB
Win10x64 Quadro K5000
SpacePilot

erstellt am: 14. Jul. 2006 16:41    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

Danke Stefan für die Erklärung, klingt plausibel. Wenn man nun noch bestimmte Events abschalten könnte...

------------------
Lutz Federbusch
Mein Gästebuch

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

Kalle
Mitglied
Student


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

Beiträge: 706
Registriert: 14.04.2002

erstellt am: 17. Jul. 2006 10: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 Nur für Lutz Federbusch 10 Unities + Antwort hilfreich

Aheu,

was passiert denn wenn mein Makro zum arbeiten irgendwelche SolidWorks-Events benötigt? Das geht ja dann vermutlich nicht mehr oder?

Bis dann,
Kalle

------------------
-----------------------------------------
Es gibt immer mehr Lösungen als Probleme.

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

Lutz Federbusch
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. Maschinenbau



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

Beiträge: 3094
Registriert: 03.12.2001

alle SW seit 97+
AutoCAD2016-2022
ERP ProAlpha + CA-Link
Intel Core i7-7820K 32GB
Win10x64 Quadro K5000
SpacePilot

erstellt am: 18. Jul. 2006 10:05    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

Dann klappste halt nichts herunter bzw. wieder hoch mit der Indianertechnik Sendkey. Wenn man in der Zwischenzeit mit einer anderen Anwendung weiterarbeiten will und diese aktiviert, klappt das Menü sowieso wieder hoch und außerdem sieht so ein heruntergelassenes Menü uncool aus. Die Lösung: Das Dialogfenster EXTRAS-ZUSATZANWENDUNGEN aufrufen. Dann kann man trotzdem andere Anwendungsfenster aktivieren und das Makro läuft trotzdem schnell!

------------------
Lutz Federbusch
Mein Gästebuch

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

INKN
Mitglied
Consulant/Softwareentwickler


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

Beiträge: 277
Registriert: 22.08.2001

erstellt am: 15. Aug. 2006 10:00    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 Lutz Federbusch 10 Unities + Antwort hilfreich

Hi API'ler,

ich habe mal mit dem API Support wegen dieses Effektes konferiert, ob es nicht was Offizielles gibt.

Hier die Anwort:

An out-of-process application is an executable separate from SolidWorks. If this application is driving SolidWorks through the API, there may be no interactive user working with SolidWorks. So at some point there are no Windows messages (e.g. button clicks) in the message queue for SolidWorks. At this point the SolidWorks idle processing will kick in. For example it will check if any of the toolbars needs updating to ensure the button states are reflecting the state of the application.

Of course, idle processing consumes CPU cycles too. You would prefer SolidWorks to spend these cycles on your API calls instead.

Pressing the ALT-key or bringing up a menu, makes SolidWorks enters another message loop which does not perform any idle processing.


Please have a look at the following method:

    SldWorks::CommandInProgress

which will tell SolidWorks to wait a bit longer before having the idle processing kick in, so it can get to your API calls sooner.

The reason you have to explicitly tell SolidWorks is because the client making the API calls is in a separate process, so SolidWorks isn't aware someone wants it to do useful" things instead of idle processing.

If the client would be in the same process in the form of an add-in, the add-in would simply keep SolidWorks busy, delaying the idle processing in a natural way.

Usage is simple (VB pseudo code):

    swApp.CommandInProgress True

    ' your API calls go here......
   
    swApp.CommandInProgress False


Und das Beste ist es bringt auch was, ich habe Reduktionen von 80% bei langen Operationen erreicht.

------------------
Gruß Ingo

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

StefanBerlitz
Guter-Geist-Moderator
IT Admin (CAx)



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

Beiträge: 8756
Registriert: 02.03.2000

SunZu sagt:
Analysiere die Vorteile, die
du aus meinem Ratschlag ziehst.
Dann gliedere deine Kräfte
entsprechend und mache dir
außergewöhnliche Taktiken zunutze.

erstellt am: 15. Aug. 2006 11: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 Nur für Lutz Federbusch 10 Unities + Antwort hilfreich

Hallo Ingo,

jupp, die Antwort hatte ich auch erhalten, nur vergessen hier zu posten  

Vielleicht sollte man dazu noch erwähnen, dass der Call SldWorks::CommandInProgress erst ab SW2006 SP2 in der API drin ist, also Programme, die das nutzen, sollten vorher unbedingt einen Versionscheck machen, sonst landen die ggf. auf der Nase 

Ciao,
Stefan

------------------
Inoffizielle deutsche SolidWorks Hilfeseite    http://solidworks.cad.de

Member of CAD.de BOINC Team  -   | Seti@Home | CPDN | Einstein@Home

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

Lutz Federbusch
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. Maschinenbau



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

Beiträge: 3094
Registriert: 03.12.2001

alle SW seit 97+
AutoCAD2016-2022
ERP ProAlpha + CA-Link
Intel Core i7-7820K 32GB
Win10x64 Quadro K5000
SpacePilot

erstellt am: 15. Aug. 2006 11:21    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

Jetzt habe ich eine gute Ausrede, wenn jemand hinter mir steht und sagt, daß ich doch endlich mal auf den OK-Knopf drücken soll.
Ich verhindere, daß SolidWorks sich fertigmeldet, damit es sich schneller fertig melden kann   

------------------
Lutz Federbusch
Mein Gästebuch

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