Bekijk een voorbeeld van SolidWorks-bestanden met een API

Hallo

Ik heb een applicatie (VB6.0  32bit development, dit kunnen we vergelijken met een VBA in Excel  32bit )

Ik heb een "object" van het type ImageList dat ik gebruik om de previews van de geselecteerde  bestanden weer te geven (ik haal de preview afbeeldingen uit de Windows verkenner)

het werkt prima met CATIA V5 / Autodesk  CAD-bestanden Maar mijn code werkt niet met SolidWorks-bestanden 

(het is een 32-bits code die werkte met een 32-bits versie van SolidWorks, maar nu met alleen een 64-bits versie :-( )

Is er een manier om de voorbeeldafbeelding van een SolidWorks-bestand te herstellen, in een VBA (in 32-bits)

--

Ik vond "PreviewDoc" (zie hieronder),  maar het lukte me niet om het te gebruiken (je moet een DLL compileren en ik begreep niet hoe ik het afbeeldingsobject .....) kon krijgen)

=> heeft iemand van jullie ooit iets soortgelijks gedaan? 

--

Toen dacht ik eraan om een afbeelding te genereren, maar toen ik testte, vond ik de verwerking tesmps super lang, om nog maar te zwijgen van de weergave om in ISO te zetten en opnieuw te focussen .....

--

Voorbeeld van PreviewDoc-code 

Dim instantie As ISldWorks
Dim HWnd als System.Integer
Dim FullName als System.String
Dim waarde Als System.Booleaanse
 
waarde = instantie. PreviewDoc(HWnd, volledige naam)

Parameters

HWnd
Venstergreep waar u de voorbeeldbitmap wilt weergeven; Deze aanwijzer is niet geldig voor alle processen; daarom werkt deze methode alleen als uw applicatie is geïmplementeerd als een DLL
Volledige naam
Volledige padnaam van het document naar voorbeeld

 

Hallo
Ik heb in VB.Net een applicatie gemaakt die de relatie tussen ons ERP en SolidWorks beheert. Ze beheert met name de injectie van revisies in de ERP SQL-database, de creatie van PDF-, DXF- en eDrawings-plannen en het invoegen van links in de database. Het maakt ook JPG-weergaven van de onderdelen en samenstellingen waarnaar in het ERP wordt verwezen en voegt de link vervolgens in de database in.

Ik had gedacht om de verkenner preview te krijgen, maar ze zijn niet allemaal correct en nog minder in ISO-oriëntatie. Aan de andere kant is de behandeling lang. Maar we gooien het ongeveer een keer per week.

Hier is een vereenvoudigde versie van de functie die het genereren van clips en afbeeldingen afhandelt:

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

 

Mijn applicatie is in 64bits. Ik denk niet dat het mogelijk is om een 32bit te coderen.

Ik hoop dat ik je heb geholpen.
Fijne dag