Vorschau von SolidWorks Dateien mit einer API

Hallo

Ich habe eine Anwendung (VB6.0  32bit-Entwicklung, wir können dies mit einem VBA in Excel  32bit vergleichen)

Ich habe ein "Objekt" vom Typ ImageList , das ich verwende, um die Vorschauen der ausgewählten  Dateien anzuzeigen (die Vorschaubilder bekomme ich aus dem Windows-Explorer)

Es funktioniert gut mit CATIA V5 / Autodesk  CAD-Dateien, aber mein Code funktioniert nicht mit SolidWorks-Dateien 

(es ist ein 32-Bit-Code, der mit einer 32-Bit-Version von SolidWorks funktionierte, aber jetzt nur noch mit einer 64-Bit-Version :-( )

Gibt es eine Möglichkeit, das Vorschaubild einer SolidWorks Datei in einer VBA (in 32 Bit) wiederherzustellen?

--

Ich habe "PreviewDoc" gefunden (siehe unten),  aber ich habe es nicht geschafft, es zu verwenden (man muss eine DLL kompilieren, und ich habe nicht verstanden, wie man das Bildobjekt .....)

=> Hat jemand von euch jemals etwas Ähnliches gemacht? 

--

Dann dachte ich daran, ein Bild zu erzeugen, aber als ich testete, fand ich die Verarbeitungsdaten super lang, ganz zu schweigen von der Ansicht, die in ISO eingegeben und neu fokussiert werden musste.....

--

PreviewDoc-Codebeispiel 

Dim-Instanz als ISldWorks
HWnd als System.Integer dimmen
Dim FullName As System.String
Dimm-Wert Als System.Boolean
 
Wert = Instanz. PreviewDoc(HWnd, Vollständiger Name)

Parameter

HWnd
Fensterziehpunkt, an dem die Vorschau-Bitmap angezeigt werden soll; Dieser Zeiger ist nicht prozessübergreifend gültig. Daher funktioniert diese Methode nur, wenn Ihre Anwendung als DLL implementiert ist
Vollständiger Name
Vollständiger Pfadname des Dokuments zur Vorschau

 

Hallo
Ich habe VB.Net eine Anwendung erstellt, die die Beziehung zwischen unserem ERP und SolidWorks verwaltet. Insbesondere kümmert sie sich um das Einspeisen von Revisionen in die ERP-SQL-Datenbank, die Erstellung von PDF-, DXF- und eDrawings-Plänen sowie das Einfügen von Verknüpfungen in die Datenbank. Es erstellt auch JPG-Ansichten der Teile und Baugruppen, die im ERP referenziert sind, und fügt dann den Link in die Datenbank ein.

Ich hatte darüber nachgedacht, die Explorer-Vorschau zu bekommen, aber sie sind nicht alle korrekt und noch weniger in ISO-Ausrichtung. Auf der anderen Seite ist die Behandlung langwierig. Aber wir werfen es ungefähr einmal pro Woche.

Hier ist eine vereinfachte Version der Funktion, die die Generierung von Clips und Bildern übernimmt:

Sub TraitementCreaDocsSwPrt(ByVal Fichier As String, ByRef SW_Errors As Integer, ByRef SW_Warning As Integer, ByRef SW_Errors_MEP As Integer, ByRef SW_Warning_MEP As Integer)
        Dim SW_Model As SldWorks.ModelDoc2, SW_Model_MEP As SldWorks.ModelDoc2
        Dim SW_ModelDocExtension As SldWorks.ModelDocExtension
        Dim Info_MEP As FileInfo
        Try
            SW_Model = SW_App.OpenDoc6(Fichier, swDocumentTypes_e.swDocPART, swOpenDocOptions_e.swOpenDocOptions_Silent, "", SW_Errors, SW_Warning)
            If SW_Errors = Nothing Then
                SW_ModelDocExtension = SW_Model.Extension
                SW_ModelDocExtension.HideFeatureManager(True)
                SW_Model.ShowNamedView2("*Isométrique", swStandardViews_e.swIsometricView)
                SW_Model.ViewZoomtofit2()
                SW_Model.SaveAs3(Info_dossier_Export.FullName & "\" & Path.GetFileNameWithoutExtension(Fichier) & ".jpg", swSaveAsVersion_e.swSaveAsCurrentVersion, swSaveAsOptions_e.swSaveAsOptions_Silent)
                SW_Model.SaveAs3(Info_dossier_Export.FullName & "\" & Path.GetFileNameWithoutExtension(Fichier) & ".eprt", swSaveAsVersion_e.swSaveAsCurrentVersion, swSaveAsOptions_e.swSaveAsOptions_Silent)
                Info_MEP = New FileInfo(Left(Fichier, Fichier.Length - 7) & ".slddrw")
                If Info_MEP.Exists = True Then
                    SW_Model_MEP = SW_App.OpenDoc6(Info_MEP.FullName, swDocumentTypes_e.swDocDRAWING, swOpenDocOptions_e.swOpenDocOptions_Silent, "", SW_Errors_MEP, SW_Warning_MEP)
                    SW_Model.SaveAs3(Info_dossier_Export.FullName & "\" & Path.GetFileNameWithoutExtension(Fichier) & ".dxf", swSaveAsVersion_e.swSaveAsCurrentVersion, swSaveAsOptions_e.swSaveAsOptions_Silent)
                    Export_Pdf(SW_App, SW_Model_MEP, Info_dossier_Export.FullName & "\" & Path.GetFileNameWithoutExtension(Fichier) & ".pdf")
                Else
                    ' Traitement de l'erreur de présence de la MEP
                End If
            Else
              ' Traitement de l'erreur d'ouverture du fichier
            End If
            If ProcessSW.HasExited = False Then
                SW_App.CloseAllDocuments(True)
            End If
        Catch Ex As Exception
            ' Traitement de l'erreur
        End Try
End Sub

 

Meine Anwendung ist in 64bit. Ich glaube nicht, dass es möglich ist, ein 32-Bit zu programmieren.

Ich hoffe, ich habe dir geholfen.
Schönen Tag