(2) Application externe - Conversion de fichier SLDDRW en PDF

Xtian_Québec

XLDnaute Occasionnel
RE le Forum, mon dernier fil n'a probablement pas trouvé preneur car je l'ai inscrit sur le forum hier en fin de PM (Québec) et la plupart des XLnautes étaient probablement au lit (France) à ce moment...

Je relance donc mon post en espérant que j'obtiendrai plus de succès...Voici le roman que j'avais écrit hier.

J'aimerais obtenir de l'aide encore une fois. Prendre note que je ne suis pas trop familier avec les fonctions Set Object et en fouillant ici et là sur d'autres forum (MyCADservices ainsi que sur Avenao) et j'ai trouvé un bout de code qui, selon moi, pourrais régler mon problème mais j'essais de l'adapter et ça ne fonctionne pas.

Voici d'abord ce que je veux faire:

J'ai un fichier Excel qui récupère des dessins en format PDF avec le code suivant:

Sub RécupèreDessinPDF()
Range("A19").Select
ActiveSheet.OLEObjects.Add(Filename:= _
"C:\MonRépertoire\MonDessin.pdf", Link:=False, _
DisplayAsIcon:=False).Select
End Sub
Ce code fonctionne très bien. Par contre, ce code ne fonctionne pas avec des fichiers dessins dont les extensions se terminent par .dwg, .slddrw et .dfx. Les fichiers slddrw sont des dessins développés avec SolidWorks et on peut, à partir de ce programme, ouvrir les dessins et les enregistrer sous PDF. Donc ce que je veux réaliser, c'est ouvrir un dessin avec l'application SolidWorks avec mon code (dans Excel) et enregistrer le dessin en format PDF dans le même répertoire. Voici le code que j'ai trouvé:

Sub main()
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim FeatureData As Object
Dim Feature As Object
Dim Component As Object
Dim swModel As SldWorks.ModelDoc2
Dim sPathName As String
Dim sExtension As String
Set swApp = Application.SldWorks
sPathName = swModel.GetPathName
Set swModel = swApp.ActiveDoc 'associe Swmodel au document en cours
Set Part = swApp.ActiveDoc 'associe part au document en cours
sPathName = swModel.GetPathName 'recupere le nom complet du document actif
sPathName = Left(sPathName, Len(sPathName) - 6) 'suppr des 6 derniers caractères
sPathName = sPathName + "SLDDRW - Feuille1.dwg" ' ajoute SLDDRW - Feuille1.dwg (pour respecter la casse imposer par impression multidocuments
sExtension = Right(swModel.GetPathName, 6)
Part.Save2 False
Part.ViewZoomtofit2 'zoom tout
Part.SaveAs2 sPathName, 0, True, False 'sauvegarde en dwg dans le meme dossier que le fichier en cours
End Sub

Ce code est probablement assez explixcite pour un connaisseur mais comme je n'en suis pas un, je m'y perds un peu. Ce code enregistre un slddrw en dwg mais je crois que la logique, lorsque je comprendrai, sera la même pour enregistrer les fichier en format pdf.

Prendre note que j'utilise un poste de travail qui a SolidWorks donc je peux sélectionner les Library Type dans les préférences Visual basic, car elles sont nécessaires à l'exécution du code.

J'ai tenté d'adapter ce code à mes besoins mais ça ne fonctionne pas. Je suis vraiment novice lorsqu'il s'agit d'exécuter des codes qui touchent une autre application...Votre aide SVP

Ce qu'il me faudrait, c'est comprendre, étape par étape ce qui se passe dans ce code.

Merci de votre habituelle assistance

Xtian_Québec
@+++
 
C

Compte Supprimé 979

Guest
Re : (2) Application externe - Conversion de fichier SLDDRW en PDF

Salut Xtian,

S'il te plait ne créé pas de nouvelle discussion pour une question que tu as déjà posée
fessee.gif


Fait plutôt un Up, ce serait sympa :D

Si personne n'a répondu encore, c'est que personne ne sait, moi le premier !

Je ne connais pas et je n'ai pas "SolidWorks" !

La seule chose que je peux te dire, éventuellement :
c'est qu'en général dans une application lorsque l'on fait un "Sauvegarder sous" c'est pour enregistrer sous le format de fichier que l'application est capable d'ouvrir !

Donc dans ton cas je pencherais plutôt pour un truc du style (d'après ton code) :
Code:
Part.ExportTo "NomFichier"

Si cela peut t'aider ;)
 

Discussions similaires

Réponses
2
Affichages
593

Statistiques des forums

Discussions
314 656
Messages
2 111 612
Membres
111 225
dernier inscrit
arnaud3110