Ma communauté

Accédez à plus de ressources avec myCADservices

  • Support personnalisé
  • Téléchargement CAO
  • Composants 3D
  • Applications premium
En savoir plus sur myCADservices

Macro d'enregistrement PDF dans dossier actuel
  • Topic:
    • SOLIDWORKS

  • 8 réponses
  • 1903 vues

Par allan.comment Le 14 septembre 2015

Bonjour,

Malgré toutes les questions déjà posées au sujet des macros pour un enregistrement en PDF sur Solidworks (2014 dans mon cas), je ne trouve rien correspondant à mon problème.

J'aimerais une macro qui enregistre le plan en PDF dans le dossier actuel, avec le nom de fichier actuel, mais n'ayant aucune connaissance en code VBA, impossible pour moi de modifier le code à la ligne du chemin ou va s'enregistrer le PDF, malgré pas mal de recherche sur internet.

J'ai créé une macro par apprentissage que voici, il ne reste qu'à modifier cette fameuse ligne.

Dans mon cas, la macro enregistrera toujours les PDF avec le nom "1841-22" dans le dossier "1841", alors que pour un plan "1836-12", je l'aimerais dans le dossier "1836", le tout en ayant une seule macro commune pour tous mes dossiers, et non une macro pour chaque dossier.

Dim swApp As Object

Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long

Sub main()

Set swApp = _
Application.SldWorks

Set Part = swApp.ActiveDoc
Dim myModelView As Object
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Part.ViewZoomtofit2
Part.ViewZoomtofit2
Part.ViewZoomtofit2
longstatus = Part.SaveAs3("M:\Bureau d'étude\Produits\1800-49\1841\1841-22.PDF", 0, 0)
End Sub

 

En vous remerciant par avance pour votre aide,

 

Cordialement,

 

Allan.

 

Meilleure réponse

.PL | 52628 point(s)

En fait j'ai fait la modification, essaye ça :

Sub main()

Set swApp = Application.SldWorks

Set Part = swApp.ActiveDoc

'obtient le chemin complet du document actif, y compris le nom du fichier :
PathName = UCase(PArt.GetPathName)


Dim myModelView As Object
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Part.ViewZoomtofit2
Part.ViewZoomtofit2
Part.ViewZoomtofit2
longstatus = Part.SaveAs3(Replace(PathName,"SLDDRW","PDF") , 0, 0)
End Sub

Les autres réponses

.PL | 52628 point(s)

Bonjour,

Voir comment récupérer le nom du fichier ici :

https://forum.solidworks.com/thread/26814

Et il faudra changer cette ligne :

longstatus = Part.SaveAs3("M:\Bureau d'étude\Produits\1800-49\1841\1841-22.PDF", 0, 0)

On peut s'inspirer de cette macro aussi :

https://forum.solidworks.com/servlet/JiveServlet/download/116587-39393/S...

Voir aussi mes macros ici (je ne sais plus laquelle inclue le nom de fichier) :

http://www.lynkoa.com/tutos/macro-ouvrir-la-piece-dans-l-assemblage

http://www.lynkoa.com/tutos/3d/macro-enregistrer-sous-avec-solidworks

.PL | 52628 point(s)

En fait j'ai fait la modification, essaye ça :

Sub main()

Set swApp = Application.SldWorks

Set Part = swApp.ActiveDoc

'obtient le chemin complet du document actif, y compris le nom du fichier :
PathName = UCase(PArt.GetPathName)


Dim myModelView As Object
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Part.ViewZoomtofit2
Part.ViewZoomtofit2
Part.ViewZoomtofit2
longstatus = Part.SaveAs3(Replace(PathName,"SLDDRW","PDF") , 0, 0)
End Sub

allan.comment | 295 point(s)

Je te remercie .PL ta modification marche parfaitement, j'ai fait l'essai sur plusieurs dossiers et aucun souçi, merci à toi pour ton aide!

Centor | 14574 point(s)

heu vu le sujet, si on veut avoir le meme chemin, mais juste le nom du fichier qui change ces possible sa ? on devrai noté ou l'info ?? :)

allan.comment | 295 point(s)

Bonjour tout le monde,

Après plusieurs mois d'essai concluant grâce à la macro de .PL (je te remercie encore), je reviens vers vous pour un petit détail qui commence à m'embêter.

Lorsqu'un plan .PDF est ouvert à l'atelier pour consultation et que je dois faire une modif. sur ce même plan directement sur Solidworks, et que j'utilise cette macro PDF, Solidworks plante et se ferme, car il ne peut pas écraser le fichier PDF puisqu'il est déjà ouvert.

Cependant quand j'essaye d'enregistrer en .PDF le plan en passant par Fichier-Enregistrer sous-.PDF, le message "Ce fichier est en lecture seule" apparait et permet à Solidworks de ne pas planter.

Serait-il possible de récupérer une ligne de code dans ma macro qui me permettrais d'avoir ce message lorsque le fichier est déjà ouvert, et de ne pas faire planter Solidworks?

D'avance merci à vous pour votre aide,

Cordialement,

Allan.

.PL | 52628 point(s)

@allan.comment : pose une nouvelle question sur le forum, personne ne vient voir les anciennes.

 

Rejoignez la communauté dès maintenant

ou

Créez votre compte :