Macro d'enregistrement PDF dans dossier actuel

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.

 

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/Save%20Part-Assembly%20as%20Parasolid.zip

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

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

2 « J'aime »

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!

1 « J'aime »

Mr Macro à encore sévit ^^

1 « J'aime »

Si tu as MyCADtools, PowerPrint le fait très bien.

 

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 ?? :)

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.

1 « J'aime »

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