Code macro SOLIDWORKS VBA pour enregistrer le dessin au format PDF

Article par Samony Riyaz mis à jour le 4 septembre 2019

Article

Habituellement, lorsque nous voulons accélérer les tâches de traitement dans SOLIDWORKS, nous avons tendance à rechercher des macros qui peuvent effectuer la tâche pour nous afin de réduire le temps de traitement. Un grand nombre de ces macros sont publiées en ligne par divers utilisateurs, mais faites attention car le code publié est SPECIFIQUE à leur machine et à leur environnement et peut ne pas être le même pour vous.

Examinons une macro en particulier - Enregistrer un dessin SOLIDWORKS au format PDF.

  • Modifiez la macro pour l'intégrer dans le flux de travail de votre processus.
  • Créer un bouton de Macro et une touche de raccourci pour la Macro

Code échantillon :

Sous main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swExportPDFData As SldWorks.ExportPdfData
Dim strFilename As String
Dim status As Boolean
Dim errors As Long, warnings As Long
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Enregistrer
status = swModel.Save3(swSaveAsOptions_e.swSaveAsOptions_Silent, errors, warnings)
Exportation au format PDF s'il s'agit d'un dessin
Si (swModel.GetType = swDocDRAWING) Alors
strFilename = swModel.GetPathName
strFilename = Left(strFilename, Len(strFilename) - 6) & "pdf" (gauche)
Set swExportPDFData = swApp.GetExportFileData(1)
swModel.Extension.SaveAs strFilename, 0, 0, swExportPDFData, 0, 0
End If
End Sub

Le code ci-dessus a été modifié de manière à ce qu'en plus d'enregistrer le fichier de dessin, il exporte également un PDF de ce dessin en utilisant les paramètres par défaut du système.

Intégrer le code :

Lancez SOLIDWORKS et accédez à Outils > Macro > Nouveau.

  • Cela fait apparaître la boîte de dialogue du navigateur de dossiers qui vous invite à enregistrer le fichier.
    • Si cette macro est partagée avec d'autres personnes de votre réseau, veillez à l'enregistrer dans un emplacement réseau partagé.

SI vos collègues utilisent une version DIFFERENTE de SOLIDWORKS ou un répertoire d'installation différent, cela peut provoquer des erreurs de référence.

  • Solution de rechange: Envoyez-leur le code, afin qu'ils puissent créer la macro sur leur propre machine locale.
  • Une fois que vous avez sauvegardé la macro, une boîte de dialogue Visual Basic for Applications s'ouvre avec le code par défaut ci-dessous :
Dim swApp As Object
Sub main()
Set swApp = Application.SldWorks
End Sub

Remplacez le code par défaut par le "code type" présenté ci-dessus etenregistrez.

Félicitations ! Vous venez de créer une macro utilisable à partir du code source.

Exécution de la macro avec un bouton d'accès rapide :

Pour utiliser efficacement la macro "Enregistrer le dessin SOLIDWORKS en PDF", vous devez personnaliser un bouton/une touche de macro dans SOLIDWORKS :

  1. Créer un bouton de macro personnalisé
    • Lancez SOLIDWORKS et créez un nouveau dessin (Nouveau > Dessin (utilisez un modèle disponible)).
    • Cliquez avec le bouton droit de la souris sur la barre des tâches > Personnaliser > Onglet Commandes > Sélectionnez la catégorie de macro.
    • Faites glisser l'icône du bouton macro vers un emplacement approprié.
    • À côté de la zone de texte Macro, cliquez sur le bouton Parcourir > sélectionnez la macro. S'il y a plus d'une méthode, sélectionnez la méthode appropriée dans la liste. Cliquez sur OK.
    • Votre nouveau bouton macro est maintenant utilisable.
  2. Créer un raccourci clavier
    • Lancez SOLIDWORKS et créez un nouveau dessin (Nouveau > Dessin (utilisez un modèle disponible)).
    • Cliquez avec le bouton droit de la souris sur la barre des tâches > Personnaliser > Onglet Clavier > Faites défiler l'écran jusqu'à la ligne correspondant au bouton Macro.
    • Appuyez sur n'importe quelle combinaison que vous voulez, dans ce cas nous ferons (Ctrl + P) pour l'impression en PDF.
    • Cliquez sur Oui pour passer outre, cliquez sur OK
    • Désormais, Control P enregistrera un PDF si un fichier de dessin est ouvert.

Samony Riyaz