Je crois que dans tous les cas SolidWorks est nécessaire sur le PC pour faire la conversion.
a par ca pour convertir sans licence de base log SW
http://www.datakit.com/convertisseurs-cao/solidworks-3d-vers-pdf-3d/3-72-0.html
http://www.datakit.com/fr/cross_manager.php
voir aussi
http://helpx.adobe.com/fr/acrobat/kb/supported-file-formats-acrobat-reader.html
@+ ;-)
Comme le dit Lucas, il existe des exemples de code pour faire cela, sur ce forum ou d'autres trouvables depuis google
Tous ces exemples neccesite SW,
Il est possible de passer par les API de eDrawing pour créer un PDF (en passant par un driver d'impression PDF) ou un fichier image, mais rien de plus.
Je precise que la qualité de conversion n'est pas garanti via eDrawing
Bon, j'ai fouiller dans tous ces liens, et j'ai trouver pour le moment , la macro qui permet l'enregistrement dans les 2 formats.
Maintenant je dois trouver le moyen de les sauvegarder dans un dossier spécifique.
Et pour finir, controler dans quelle version d'autocad ca les enregistre.
Alors,
la version d'enregistrement ne dépend pas de la macro, mais des paramètres régler dans autocad.
Donc ce point est résolu.
Lors de l'enregistrement du DWG et PDF, la macro, crée un sufixe au nom du plan. Qui est "espace -", et j'amierai le supprimer.
Je pense que cela vient de la : FileName = Left(swDraw.GetTitle, Len(swDraw.GetTitle) - 9)
Et avant de mettre le chantier sur notre réseau.....
Nous rangeant nos fichier de la façon suivante :
fichier de premier niveau : VOITURE ou MOTO ou TRACTEUR ou VELO
fichier second niveau : Cabriolet ou Coupé ou monospace ou 4x4
fichier troisieme niveau : 3D / DWG / PDF
Donc, dans nos premiers niveau, nous avons une catégorie
second une taille ou un type spécifique
Troisieme, des dossiers tries des fichiers.
Et donc ce troisieme niveau, ce retrouve dans tout les dossiers. Mais comment dire à la macro, qu'il faut enregistrer le fichier dans un dossier DWG bien précis (sachant qu'il y en existe des dizaine)
en fait il vaut mieux utiliser
Dim fso As New Scripting.FileSystemObject
Set fso = CreateObject("Scripting.FileSystemObject") ' ajouter la reference "microsoft Scripting Runtime
FileName = fso.GetBaseName(swDraw.GetPathName)
Car swDraw.GetTitle retorune le nom du ficheri + le nom de la deuille et on sourtrait 9 caracteres pour enlever le nom de la feuille ! c'est pas terrible
Je viens de remplacer FileName = Left(swDraw.GetTitle, Len(swDraw.GetTitle) - 9)
par
FileName = fso.GetBaseName(swDraw.GetPathName)
Et lors de l'execution, erreur d'execution "424"
..pourquoi?
Erreur de ma part je crois.
car la macro, maintenant me nomme exatement les fichiers DWG et PDF comme l'origine.
Point sur la macro.
Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
' Check to see if a drawing is loaded.
If (swModel Is Nothing) Or (swModel.GetType <> swDocDRAWING) Then
swApp.SendMsgToUser ("To be used for drawings only, Open a drawing first and then TRY!")
' If no model currently loaded, then exit
Exit Sub
End If
Set swDraw = swModel
Filepath = Left(swDraw.GetPathName, InStrRev(swDraw.GetPathName, "\"))
Set fso = CreateObject("Scripting.FileSystemObject") ' ajouter la reference "microsoft Scripting Runtime
FileName = fso.GetBaseName(swDraw.GetPathName)
swDraw.SaveAs (Filepath + FileName + ".PDF")
swDraw.SaveAs (Filepath + FileName + ".DWG")
End Sub
Un point négatif,
Je viens d'ouvrir la sauvegarde DWG, et j'ai le message suivant :
Le fichier DWG a été enregistré dans une appliation qui n'a pas été développée par Autodesk ou qui n'a pas de license Autodesk. Que voulez-vous faire?
Quand je poursuit l'ouverture, rien de spécial, mais nous ne pouvons nous permettre qu'un tel message apparaisse quand on l'ouvre. (Audit qualité oblige)
Comment faire?
Ca va vite être compliqué de répondre à des dizaines de question dans cette discussion !
Pourquoi ne pas ouvrir une nouvelle question par problème ?
Pour la macro, pour l'erreur DWG, etc ?
Lors d'un enregistrer sous en DWG depuis SolidWorks, est-ce qu'il y a le même message ?
Si oui (et c'est probablement le cas), il faut modifier les options d'export en DWG :
Fichier > Enregistrer-sous > Choisir DWG, et la un bouton Options apparait
Avec quel logiciel est ouvert le DWG ?
Lucas,
J'ai effectuer les manip habituel (sans passer par la macro)
Fichier / Enregistrer sous / Format DWG.
quand j'ouvre le DWG "avec AUTOCAD2013, le même message apparaît effectivement.
Comme je l'ai dit dans un précédent message à propos du dossier :
"Avec une macro on peut choisir de définir un dossier commun, un dossier par type de fichier, un dossier (en fonction d'une propriété personnalisée client, numéro d'affaire) ou proposer un explorateur de fichier pour choisir à chaque fois où enregistrer les différents fichiers."
Est-ce que tu as une propriété perso ou quelque chose dans la codification qui t'indique ça :
fichier de premier niveau : VOITURE ou MOTO ou TRACTEUR ou VELO
fichier second niveau : Cabriolet ou Coupé ou monospace ou 4x4
La partie :
swDraw.SaveAs (Filepath + FileName + ".PDF")
swDraw.SaveAs (Filepath + FileName + ".DWG")
Devra ressembler à ça :
Select case type 'select case permet d'éviter de nombreux IF imbriqués
case = "VOITURE" 'si type = voiture
Dossier = "C:\VOITURE" 'on enregistre dans le dossier voiture
case = "MOTO" 'idem...
Dossier = "C:\MOTO"
case = "TRACTEUR"
Dossier = "C:\TRACTEUR"
case = "VELO"
Dossier = "C:\VELO"
case else 'si autre type ou pas de type, erreur
msgbox "Erreur type1"
exit
end select
Select case type2
case = "COUPE" 'si type1 = coupé
Dossier = Dossier & "\COUPE" 'on ajoute coupé au dossier
case = "CAB"
Dossier = Dossier & "\CAB"
case = "4x4"
Dossier = Dossier & "\4x4"
case = "MONOSPACE"
Dossier = Dossier & "\MONOSPACE"
case else
msgbox "Erreur type2"
exit
end select
Pour information :
type1 et type2 doivent être des variables qui soient existes déjà dans tes fichiers soit à demander à l'utilisateur lors du lancement de la macro.
swDraw.SaveAs (Dossier & "\PDF\" & FileName & ".PDF")
swDraw.SaveAs (Dossier & "\DWG\" & FileName & ".DWG")
Pour utiliser le FSO il faut ajouter la reference microsoft Scripting Runtime a votre macro
Voir capture
capture.jpg
Pour le problème de message à l'ouverture avec AutoCAD, il n'y a pas de case à décocher pour que le message n'apparaisse plus ?
Sinon voir ce lien /
http://autodesk.blogs.com/between_the_lines/2005/06/how_to_tell_if_.html
Vous vous en êtes sortie ?
Bonjour, je tiens à vous remercier pour votre aide.
Pour le moment, la macro convient à notre BE. Nous ferons juste les dossiers DWG et PDF, à la main.
On y gagne déjà pas mal de temps.
Il ce peut que la socièté investisse dans EPDM...
Nous retravaillerons sur le stockge des fichiers à ce moment.
Cordialement.
Merci de désigner la meilleure réponse dans ce cas !