SolidWorks KnowHow - Tipps und Tricks

037: SolidWorks Prozesse - Hauptprozess

Dieser Tipp stammt direkt aus meinem SolidWorks Blog, dort finden Sie nicht nur weitere Informationen, Kommentare und Artikel sondern haben auch leicht und einfach die Möglichkeit mir und den anderen Lesern Kommentare zu schreiben. Schauen Sie doch mal vorbei

< vorige > nächste  Gesamtübersicht von: Stefan Berlitz vom 07.09.2007

Der Tipp: Im ersten Teil der kleinen Reihe rund um die SolidWorks Prozesse geht es um den Hauptprozess: sldworks.exe

Allgemeines

Dieser Prozess ist das eigentliche SolidWorks, das entweder von Hand direkt vom Nutzer über eine Verknüpfung oder durch ein externes Programm gestartet wird.

Die Verknüpfungen der normalen Installation starten allerdings nicht direkt SolidWorks und damit den sldworks.exe Prozess, sondern der Servicepack Manager - doch dazu mehr in der nächsten Folge der Prozessbeschreibungen. Die ausführbare Datei selbst liegt im Installationsverzeichnis von SolidWorks und kann auch direkt durch doppelklick auf die Datei sldworks.exe aufgerufen und ausgeführt werden.

Starten von sldworks.exe

Nach dem Starten der sldworks.exe wird zunächst der Lizenzmanager gestartet, ggf. noch der Installationsmanager, es wird die VBA Runtimeumgebung geladen und initialisiert und schließlich alle Addins (DLL) aufgerufen, die auf "automatisch laden" stehen. Wenn ein externes Programm SolidWorks startet werden die Addins allerdings nicht geladen, dadurch stehen dann zunächst einmal keine Zusatzanwendungen oder z.B. PDM-Schnittstellen zur Verfügung. Externe Programme können gezielt bekannte DLLs durch den API Befehl SldWorks.LoadAddIn (filename) selbst nachladen.

TEMP Dateien

Wie viele andere Programme auch legt der slworks.exe Prozess einige Daten im TEMP-Verzeichnis ab. Es werden drei Verzeichnisse VBE, swxNNNN und sldsearchtemp angelegt (swxNNNN steht für eine vierstellige, zufällige Nummer). Der VBE Ordner wird von der VBA-Runtimeumgebung genutzt und kann ggf. auch durch andere Programme, die VBA nutzen, erstellt worden sein oder genutzt werden. Im swxNNNN Ordner legt SolidWorks temporäre Daten der aktuellen Instanz ab, so z.B. die Evaluation1.swp, die zum Gleichungslösen und für die "Rechenkünste" der Parameterboxen genutzt wird.

Ferner werden ein ganzer Haufen Bildchen (BMP Dateien) entpackt und ins TEMP Verzeichnis geworfen, die unter anderem für die Toolbar des Befestigungsfeatures genutzt werden. Wie ansonsten auch üblich gibt es zusätzlich für alle geöffneten Dokumente ~-Dateien auch im TEMP Verzeichnis.

Wenn SolidWorks ordnungsgemäß beendet wird werden die meisten TEMP Dateien wieder aufgeräumt und weggeworfen, leider nicht die swxNNNN Verzeichnisse. Deswegen ist es unbedingt notwendig, dass regelmäßig das TEMP Verzeichnis von Hand aufgeräumt wird und alle Dateien gelöscht werden.

Mehrere Versionen parallel

Mehrere Versionen parallel zu installieren und zu betreiben ist kein großes Problem, solange auf strickte Datentrennung geachtet wird. Innerhalb einer Hauptversion stellt selbst das kein Problem dar, so dass ohne Schwierigkeiten mehrere Servicepackversionen nebeneinander betrieben werden können.

Mehrere Instanzen gleichzeitig nutzen

Die gleichzeitige Verwendung mehrerer SolidWorks Instanzen, also mehrere SolidWorks Prozesse parallel auf einem Rechner, sollte jedoch vermieden werden, da es zu merkwürdigen Effekten kommen kann. Z.B. wissen Addins manchmal nicht mehr, an welcher Instanz sie nun angeklinkt sind, die temporären Dateien der Instanzen geraten durcheinander und deswegen können Dialogboxen oder Beschriftungen nicht mehr korrekt angezeigt werden und so fort.

Fremdstarten

Wenn SolidWorks durch ein externes Programm gestartet wird geschieht die typischerweise durch einen Shellaufruf oder einen CreateObject-Call, der normalerweise nicht versionsabhängig ist: Beispiel:

Set SwApp = CreateObject("SldWorks.Application")

Damit sucht Windows in der Registry nach dem Klasseneintrag, findet dort die CLSID und schaut unter diesem Eintrag wiederum nach, wo der InProcServer, also das Programm, im Filesystem liegt und startet dieses.

Jedes Mal, wenn ein SolidWorks Prozess gestartet wird, trägt es seine "Kennung", also die eigene CLSID, im passenden Schlüssel in der Registry ein, dadurch nutzt ein externes Programm immer automatisch die Version, die als letztes von einem Anwender von Hand gestartet wurde. Um gezielt eine bestimmte Version aufzurufen wird der Klassenaufruf um die passende Nummer ergänzt, wie z.B. SldWorks.Application.14 für die Version SolidWorks 2006.

Und was sonst noch so interessant sein könnte

Der sldworks.exe Prozess legt noch weitere Daten auf dem lokalen Rechner ab. Im üblicherweise versteckten Verzeichnis C:\Dokumente und Einstellungen\<profil>\Anwendungsdaten\SolidWorks werden die verschiedensten Daten abgelegt, unter anderem die Logdateien, das Journal und auch das Performancelog. Diese Daten werden typischerweise mit dem SldRx genutzt oder von SolidWorks in der Leistungsemail verschickt, um statistische Informationen über Fehler und Verwendung zu bekommen.

Wahrscheinlich hab ich noch eine Menge vergessen, was rund um den Hauptprozess von SolidWorks wichtig oder interessant sein könnte, wenn Sie Fragen, Anregungen oder auch einfach nur weitere Informationen dazu haben immer her damit, die Kommentarfunktion ist freigegeben.

Zurück zum Seitenanfang

hr.gif (4491 Byte)

counter Kritik und Anregungen bitte an Stefan Berlitz. Letzte Änderung dieser Seite am Montag, 03. Dezember 2007 11:58