SolidWorks API Hilfe - Vorschaubild in VB anzeigen

construct.gif (9873 Byte)

apitut_mac03.gif (1942 Byte)

Eine häufig gestellte Frage von Visual Basic Programmierern ist die folgende: Wie kann ich in meinem Programm das Vorschaubild eines SolidWorks Dokumentes anzeigen lassen?

Bisher bekam man dann von C/C++ Programmierer die mitleidige Auskunft, dass der dafür zuständige API-Call SldWorks.PreviewDoc ( hWnd, fullname) laut API-Hilfe leider nur von einer DLL aus funktioniert, und das geht ja bekanntlich mit VB nicht.

Aber eben nur bisher

Update 26.01.2002: eine "offizielle" Alternative ist am Ende aufgeführt

Update 06.02.2006: SolidWorks Preview plugin 1.0.5.0 für TotalCommander und WhereIsIt
Thomas Beutlich hat ein Plugin für den TotalCommander geschrieben, das dort in der Vorschau die Previewbitmaps ausliest und darstellt. Info und Download: http://tbeu.totalcmd.net

Der entscheidende Hinweis kommt von Armin B im Thema Vorschaubilder von SW in VB einbinden im SolidWorksforum auf CAD.DE. Mit detektivischen Spürsinn findet man in der sdm.dll eine Funktion namens extractBitMap2File. Also einfach die DLL eingebunden und los geht's.

Beispielanwendung

Nur zu Demonstrationszwecken habe ich ein kleines Beispielprojekt erstellt, dessen Sourcen Sie hier herunterladen können ( 3KB ZIP)

Das einzig Schwierige ist eigentlich das Einbinden dieser DLL, man muss wissen wie die heißt. Die benötigte DLL heißt sdm.dll und wird von SolidWorks bei der Installation mit registriert. Um diese ins Projekt mit einzubinden gehen Sie unter Projekte/Verweise und suchen den Eintrag sdm 1.0 Type Library und setzen den Haken.

Im Objektbrowser sehen Sie dann die die benötigten Objekte und Methoden. Im Beispielprojekt wird noch eine API Funktion benutzt um, den Pfad zum TEMP-Verzeichnis zu ermitteln, aber sonst ist alles in wenigen Zeilen VB erledigt. Schauen Sie es sich einfach selbst an.

Keep hacking ... madhack.gif (5829 Byte)

Zurück zum Seitenanfang

Offizielle Alternative

Das oben gezeigte Beispiel hat einen großen Nachteil: es ist nicht offiziell unterstützt. Umso erstaunter war ich, als ich von Trevor D'Arcy-Evans vom API-Support von SolidWorks folgende Mail erhielt:

Stefan,
I was look at your great web site and saw the "Preview Bitmap" VB program.
I have downloaded the program and it works as expected. However, it relies on some unsupported functionality exposed by a component of the SolidWorks Explorer.
To avoid future problems, I have developed a simple COM object to extract the SolidWorks bitmap preview. Please find attached the source code, compiled COM object, documentation and sample projects. This will be in the SW API SDK shortly. Please feel free to redistribute these files as you see fit.

Na, wenn das nicht klasse ist. Selbstverständlich komme ich dieser Freigabe gerne nach und stelle dieses offizielle Beispiel, das auch bald in der API-SDK zu finden sein wird, hier zur Verfügung.

SldWorks_ExtractBitmap.zip 262 KB

 

Zurück zum Seitenanfang

hr.gif (4491 Byte)

counter Kritik und Anregungen bitte an Stefan Berlitz. Letzte Änderung dieser Seite am Donnerstag, 01. Februar 2007 17:40