Comment enregistre en PDF avec une macro

Bonjour à tous

voici mon soucis , je voudrais enregistrer en PDF les mises en plans que je modifie.

comme je doit en faire plusieur de suite, a chaque fois il faud enregistrer sous re-donner le chemin ...... bref pas mal de clics.

J'ai essayer de me faire une macro, elle enregistre bien en PDF , mais toujour dans son dossier de création, et non pas dans le même dossier que la mise en plan.

La macro en question:

' ******************************************************************************
' C:\Users\FCH.CORADINCORP.001\AppData\Local\Temp\swx3264\Macro1.swb - macro recorded on 03/30/16 by fch
' ******************************************************************************
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
longstatus = Part.SaveAs3("E:\teste macro.PDF", 0, 0)
End Sub

 

merci de votre aide

françois


enr-pdf-1.swp

Pourquoi ne pas utiliser batchconverter?....

 

1 « J'aime »

Bonjour,

Voilà une macro qui devrait marcher :

 


Dim swApp As Object

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

Sub main()

Set swApp = _
Application.SldWorks

 

Set Part = swApp.ActiveDoc
docPath = Part.GetPathName
longstatus = Part.SaveAs3(Replace(LCase(docPath), ".slddrw", ".pdf"), 0, 0)
End Sub

5 « J'aime »

Bonjour, utilise l'utilitaire Mycadtools

2 « J'aime »

Bonjour,

voici la mocro qu'on utilise chez nous, cette macro enregistre le PDF automatiquement dans le dossier ou il y a la mise en plan.


macro_pdf.swp
1 « J'aime »

Merci a tous pour votre aide

SergeR:   je ne connais pas bathconverteur, mais je vais me renseigner.

amseli:   Mycad tool je ne l'ai pas dans mon contract pour le moment. j'espère pour bientot.

Manu 67:  merci manu mais ta macro est vide

 

 .PL : merci pour la macro ,j'ai juste remplacer le .sldprt par slddrw et maintenant elle marche trés bien,encore merci

la ligne d'origine : longstatus = Part.SaveAs3(Replace(LCase(docPath), ".sldprt", ".pdf"), 0, 0)

remplacer par: longstatus = Part.SaveAs3(Replace(LCase(docPath), ".slddrw", ".pdf"), 0, 0)

encore merci à tous pour votre aide

françois

1 « J'aime »

Dim swApp As SldWorks.SldWorks
Dim swModel As ModelDoc2
Dim lErrors As Long
Dim lWarnings As Long

Sub main()

Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
swModel.Extension.SaveAs GetFilename(swModel.GetPathName) & " rev." & swModel.GetCustomInfoValue("", "Révision") & ".pdf", swSaveAsCurrentVersion, swSaveAsOptions_Silent, Nothing, lErrors, lWarnings

End Sub


Function GetFilename(strPath As String) As String
    Dim strTemp As String
    strTemp = Mid$(strPath, InStrRev(strPath, "\") + 1)
    GetFilename = Left$(strTemp, InStrRev(strTemp, ".") - 1)
End Function

 


macro_pdf.docx
1 « J'aime »

Merci manu67 je j'essais ta macro au plus vite

Bonjour,

voici celle qui fonctionne et je viens de la tester:

Dim swApp As SldWorks.SldWorks
Dim swModel As ModelDoc2
Dim lErrors As Long
Dim lWarnings As Long

Sub main()

Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
swModel.Extension.SaveAs GetFilename(swModel.GetPathName) & " rev." & swModel.GetCustomInfoValue("", "Révision") & ".pdf", swSaveAsCurrentVersion, swSaveAsOptions_Silent, Nothing, lErrors, lWarnings

End Sub

Function GetFilename(strPath As String) As String
Dim strTemp As String
strTemp = Mid$(strPath, InStrRev(strPath, "\") + 1)
GetFilename = Left$(strTemp, InStrRev(strTemp, ".") - 1)
End Function

3 « J'aime »

Les macros marchent bien, mais j'ai une petite demande à rajouter si c'est possible que la macro marche pour tous les plans ouverts dans Solidworks.