Utilisation des macros SLDW

Je crois que dans tous les cas SolidWorks est nécessaire sur le PC pour faire la conversion.

1 « J'aime »

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.

 

 

7 « J'aime »

Je precise que la qualité de conversion n'est pas garanti via eDrawing

4 « J'aime »

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

 

6 « J'aime »

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 ?

2 « J'aime »

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 ?

2 « J'aime »

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")

1 « J'aime »

Pour utiliser le FSO il faut ajouter la reference microsoft Scripting Runtime a votre macro

Voir capture


capture.jpg
4 « J'aime »

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 ?

1 « J'aime »

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.

 

 

2 « J'aime »

Merci de désigner la meilleure réponse dans ce cas !