Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Massives Performanceproblem nach Konvertierung von VB-Macro nach .EXE

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
  
3DEXPERIENCE Conference 2024 | München
Autor Thema:  Massives Performanceproblem nach Konvertierung von VB-Macro nach .EXE (1871 mal gelesen)
Herrmann
Mitglied



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

Beiträge: 302
Registriert: 13.03.2002

erstellt am: 04. Nov. 2002 10:34    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

Hatte jemand schon ein ähnliches Problem?:

Die Funktionalität des erstellten Macro´s :
Der Aufbau einer Baugruppe wird  über die APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface)-Schnittstelle / VB ausgelesen und in einem TreeView dargestellt.
Im TreeView werden den ausgelesenen Komponenten dem Unterdrückungsstatus entsprechende Icons zugeordnet.
Der Programmcode wurde im Macro erstellt. Performance des Macro´s ist gut.
Wird dieser Programmcode nun in VB importiert und anschließend eine exe-Datei erstellt, so verschlechtert sich die Performance
dieser exe-Datei gegenüber der des Macro´s um mindestens Faktor 10.

Danke im Voraus............Herrmann

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: 04. Nov. 2002 12:13    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 Herrmann 10 Unities + Antwort hilfreich

Hallo Herrmann,

ja, dass kann gut der Fall sein, je nachdem wie intensiv in den Schleifen zum Auslesen der Struktur zwischen VB und SolidWorks hin- und hergeschaltet werden muss. Ich hab etwas ähnliches mit ein paar Routinen erlebt, die die Flächenfarben gelöscht haben; ich hatte das zuerst als Programm und dann als Makro -> Laufzeit Programm 50 Sekunden, Makro 2 Sekunden 

Ich kenn mich da zwar in Detail auch nicht mit aus, versuch aber trotzdem eine grobe Erklärung: eine selbständige EXE läuft in ihrem eigenen Prozessraum, das Makro hingegen oder auch ein Add-In läuft innerhalb des SolidWorks-Prozessraums. Infolgedessen muss jede Aktion in der EXE, die irgendetwas mit SolidWorks macht über diese Grenze hinüber; und das kostet bei intensiver Nutzung von SolidWorks-Funktionen eben entsprechend Zeit.

Ciao,
Stefan

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

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

Herrmann
Mitglied



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

Beiträge: 302
Registriert: 13.03.2002

erstellt am: 06. Nov. 2002 20:09    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

Zitat:
Original erstellt von StefanBerlitz:
eine selbständige EXE läuft in ihrem eigenen Prozessraum, das Makro hingegen oder auch ein Add-In läuft innerhalb des SolidWorks-Prozessraums.

Hallo Stefan,
--Add-In--?? Ist da was mit einer in VB erzeugten DLL was zu machen?
Geht ja anscheinend in 2001+. Die läuft ja, wenn ich dich recht verstehe, innerhalb des SWXSolidWorks-Prozessraumes.

Grüße...................Herrmann

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: 07. Nov. 2002 07:27    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 Herrmann 10 Unities + Antwort hilfreich

Hallo Herrmann,

ja, das sollte eigentlich funktionieren. Einenguten Start für ein SolidWorks-VB-AddIn bekommst du auf http://www.bitwright.com/ ganz oben das "SWAddIn Template"

Ciao,
Stefan

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

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

Herrmann
Mitglied



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

Beiträge: 302
Registriert: 13.03.2002

erstellt am: 08. Nov. 2002 12:19    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 Stefan,
B-I-N-G-O  -> funktioniert super!
Als DLL läuft's noch schneller.

Nur noch ein kleines Problem:
Zum Laden und entladen der DLL verwenden wir
retval = swApp.LoadAddIn("G:........\SWAddIn.dll")
retval = swApp.UnloadAddIn("G:.......\SWAddIn.dll")

Laden funktioniert, aber die DLL wird nicht mehr entladen. D.h., das Programm kann nur 1x gestartet werden. Beim 2.Mal kommt eine Fehlermeldung. Was könnte das sein?????????????

Grüße...........Herrmann

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

Herrmann
Mitglied



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

Beiträge: 302
Registriert: 13.03.2002

erstellt am: 13. Nov. 2002 22: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

In unserer Not haben wir Bitwright angeschrieben.
Es lag ganz einfach daran, daß wir eine alte Version der Bitwright-Software am laufen hatten.
Jetzt funzt es 

Die Antwort von Bitwright (falls es jemand interessiert)

I am sorry to hear of the problem you have encountered with SolidToolbar.

The problem is almost certainly due to the use of a version of SolidToolbar
previous to version 2.10 (the current version) with the Bitwright SWAddIn
VB
Project Template.


Explanation:

In order to permit multiple SolidToolbars to peacefully co-exist, each one
is assigned a globally "unique" identifier.  In SolidToolbar version 2.9
and
earlier, these identifiers are assigned at the moment that the SolidToolbar
control is "sited" (first drawn) on a Visual Basic form.  We failed to
anticipate that new SolidToolbars could be created without new "sitings" --
from a Template (like the SWAddIn Template) or by copy-and-paste, for
example.  A new SolidToolbar created in one of these ways shares its
parent's "siting" -- and therefore its "unique" identifier.

We have fixed this problem in SolidToolbar 2.10 by assigning a new globally
unique identifier to each SolidToolbar every time its Properties are
changed
in any way.  This guarantees that any SolidToolbars that differ in any way
will have unique identifiers and can co-exist peacefully.


Solution:

The best solution to this problem is to download SolidToolbar 2.10 from

          www.bitwright.com/download%20SolidToolbar.html  and install it.

You can install this version on top of your existing installation.  Your
existing licenses will be unaffected.

After you install version 2.10, edit your add-in projects.  For each
SolidToolbar, show the SolidToolbar Designer Property Page, click "Apply",
and then re-compile the project.

(Before you implement this solution, please check the version number of
your
existing SolidToolbar installation.  This is easy to do:  open a VB project
that uses a SolidToolbar, and look at the control's "About" box --
accessible through the VB "Properties" page.  If this shows that you
already
have version 2.10 installed, please let me know).


Best Regards,

James Lewontin
Bitwright Software


PS There will soon be a new version of the Bitwright SWAddIn VB Project
Template available for free download from www.bitwright.com.

This new version of the Template will contain a few minor changes that will
enable projects built on the Template to take full advantage of some new
APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface)
features in SolidWorks 2003.

So far, it appears that Add-Ins built on earlier versions of the Template
work perfectly in SolidWorks 2003.

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

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

Florian Gerteisz
Mitglied



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

Beiträge: 13
Registriert: 26.04.2004

erstellt am: 26. Apr. 2004 14:58    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 Herrmann 10 Unities + Antwort hilfreich

Ist ja ein schon "etwas" ältere Beitrag, aber betrifft genau mein Problem.

Kann ich auf so ein VB-AddIn (sprich DLL) auch von "außerhalb", also mit einer normalen VB-Anwendung, zugreifen?

Im Idealfall würde ich gerne mit einer "schnellen DLL" den FeatureTree auslesen und die Werte an meine VB-Applikation zurück geben. Ist dies Möglich?

Evtl. mit "SldWorks.GetAddInObject"??

Vielen Dank für eure Hilfe!

Gruß
Florian

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