Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  VBA-Geschwindigkeit

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
  
Holz trifft Hightech - von der Idee direkt zur NC-Fräse., ein Webinar am 27.01.2026
Autor Thema:  VBA-Geschwindigkeit (482 mal gelesen)
Andreas Müller
Mitglied
Masch. Ing. HTL / Betriebsing. STV


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

Beiträge: 1151
Registriert: 11.04.2001

erstellt am: 17. Feb. 2005 13:46    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 Ihr VB-Spezialisten!

Vielleicht ist die Frage hier ein wenig offTopic, aber da hier einige Profis am Werke sind, wage ich es trotzdem sie hier zu stellen  .

Situation:
In der bekannten Excel-Tabelle hat mich immer die Geschwindigkeit, mit der die Teile aus SWX gelesen werden, gestört (schnell ist nicht schnell genug  ). Nun habe ich mal einen Versuch gestartet. Aus einem Excel-Makro und einem SWX-Makro habe ich eine Baugruppe rekursiv durchforstet. In beiden Makro's wird genau dasselbe gemacht.
Die Durchlaufzeiten:
    Excel : 25.64 sec.
    SWX  :  0.23 sec.

Aus Excel braucht es also über 100x länger!

Frage(n):

- ist das grundsätzlich so?
- mache ich was falsch?
- kann ich dagegen etwas unternehmen?

Über Anregungen und Tipp's würde ich mich freuen  !

------------------
Gruss
Andreas
A+E Müller AG

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: 17. Feb. 2005 14:03    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 Andreas Müller 10 Unities + Antwort hilfreich

Hallo Andreas,

ja, das ist immer so, wenn du mit "externen" Tools oder Programmen an andere Prozesse heranwillst. Das hat etwas mit dem Prozess-Übergreifgenden Overhead zu tun.

Einfach ausgedrückt: jedesmal, wenn du von aussen (also Excel) einen Befehl für SolidWorks absetzt packt Excel das Ganze in ein kleines Paket ein, übergibt es an den Prozesshandler, der überprüft das ganze, schickt es an SolidWorks, das führt den einen Befehl aus, verpackt die Antwort, übergibt es wieder dem Prozesshandling, der sucht deine Applikation und reicht dem das Ergebnis.

Das passiert jetzt mit jedem Befehl!

Ein SolidWorks Makro läuft im selben Prozessraum wie SolidWorks und deswegen fällt dieses ganze Hin und Her weg; wenn du also sehr viele Befehle von SolidWorks ausführen musst ist das entsprechend innerhalb eines Makro viel schneller.

Deswegen laufen z.B. die kompilierten DLLs als Add-In auch viel schneller als externe EXEs.

Umgehen kann man das theoretisch schon, ich hab's aber bisher nur in der Theorie gemacht     

Du kannst ein Makro schreiben, was die Daten komplett aufbereitet und z.B. in die Zwischenablage kopiert und dieses Makro von deinem Tool aus mit RunMacro aufrufen. Dasselbe geht natürlich mit einer DLL.

Du kannst das ganze natürlich auch andersherum machen: wenn du viel in SolidWork sund nur wenig in Excel machen musst kannst du natürlich auch eine SolidWorks-Makro schreiben, was dann Excel fernsteuert     

Ciao,
Stefan

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

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



Anzeige:Infos zum Werbeplatz >>

GeoVisual Civil Engineer CAD APP für 3D, Tiefbau, AEC - Architektur-, Ingenieur- und Bauwesen

Die benutzerfreundliche Softwarelösung zur Visualisierung von Infrastrukturplanungen

Andreas Müller
Mitglied
Masch. Ing. HTL / Betriebsing. STV


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

Beiträge: 1151
Registriert: 11.04.2001

erstellt am: 18. Feb. 2005 09:53    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 Stefan.

Besten Dank für Deine sehr ausführliche Info. Da bin ich doch beruhigt, dass es nicht an mir liegt  .

Eine Frage noch: kann es sein, dass zwischen Win2000 und XP (resp. den ensprechenden Excel-Versionen) ein massiver Geschwindigkeitsunterschied besteht?

------------------
Gruss
Andreas
A+E Müller AG

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