Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 2 sur 2
  1. #1
    Invité de passage
    Inscrit en
    avril 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : avril 2007
    Messages : 3
    Points : 0
    Points
    0

    Par défaut [VBA-E] Expert recherché pour convertir fichier DWG, DXF, SLDDRW en PDF

    Salut le Forum, Je suis nouveau dans ce forum et j'espère que je pourrai vous apporter une aide quelconque dans les mois à venir mais en ce moment, c'est moi qui ai besoin de vos connaissances.

    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:

    Code :
    1
    2
    3
    4
    5
    6
    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é:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    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
    @+++

  2. #2
    Responsable Visual Basic

    Avatar de bbil
    Profil pro
    Inscrit en
    juin 2003
    Messages
    13 051
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Ariège (Midi Pyrénées)

    Informations forums :
    Inscription : juin 2003
    Messages : 13 051
    Points : 23 984
    Points
    23 984

    Par défaut

    ben sans solidWork .. difficile de te répondre... tu devrai regarder l'aide en ligne de la commande ".SaveAs2" dans solidWork ..

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •