Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

GEODATA DAYS 2024

#1 Wed 07 December 2011 12:00

MiFe
Participant occasionnel
Lieu: MULHOUSE
Date d'inscription: 21 Nov 2006
Messages: 32

Transformation dwg2wmf

Bonjour

Utilisateur d'une version 12 d'autocad Map + Covadis, je cherche à transformer une centaine de fichiers dwg en autant de fichiers wmf.

En fait il faudrait que je puisse enchainer une suite de commande dans un fichier (lisp? ou scr) pour l'executer ensuite en batch:

ouvrir fichier[1] dwg
lancer une commande de transfo en wmf (sauvewmf ou autre?)
enregistre au format wmf

ouvrir fichier[2] dwg
lancer une commande de transfo en wmf (sauvewmf ou autre?)
enregistre au format wmf

et ainsi de suite...

Merci pour votre aide!

Cordialement

Michel F.
M2A (Mulhouse)
En pleine migration de GeoCity vers Apic
et en galère avec autocad


Michel F.
SIG- MULHOUSE (M2A)

Hors ligne

 

#2 Wed 07 December 2011 12:29

Patrice
JeSuisCharlie
Date d'inscription: 16 Sep 2005
Messages: 4779

Re: Transformation dwg2wmf

Hello

Humour : es tu bien sur qu'il s'agisse d'une version 12 qui etait la version courante en 1993-1994 sous MS-DOS ?

Connais tu les Scripts (Fichiers: *.SCR) ?
http://georezo.net/forum/viewtopic.php?id=51628

GeoBye, Pat


(Autodesk Expert Elite Team)

Hors ligne

 

#3 Wed 07 December 2011 14:12

MiFe
Participant occasionnel
Lieu: MULHOUSE
Date d'inscription: 21 Nov 2006
Messages: 32

Re: Transformation dwg2wmf

Pardon il fallait évidemment lire AutoCad Map 3D 2012!!!

Quant aux scripts je n'y connais pas grand chose...

Pouvez vous m'expliquer comment mettre les noms de fichiers à ouvrir en parametre

est ce que ceci est autorisé dans le :

ouvrir "chemin\fichier_entree_dwg"
sauvewmf "chemin\fichier_sortie_wmf"


MichelF

A+


Michel F.
SIG- MULHOUSE (M2A)

Hors ligne

 

#4 Wed 07 December 2011 15:04

bruno v.
Participant actif
Date d'inscription: 22 Mar 2010
Messages: 89

Re: Transformation dwg2wmf

Bonjour,

Pour générer ton script, je te propose de coller ce qui suit directement en ligne de commande dans un NOUVEAU dessin vierge.
Ceci, si ta centaine de dessins est dans le même dossier...

Code:

((lambda ( / prefix file_scr)
    (setq
        prefix (strcat (vl-filename-directory (getfiled "Sélectionner un fichier dessin TEMOIN" "" "dwg" 16)) "\\")
        file_scr (open (strcat prefix "dwg2wmf.scr") "w")
    )
    (foreach dwg (vl-directory-files prefix "*.dwg" 1)
        (write-line "_.open" file_scr)
        (write-line (strcat "\"" prefix dwg "\"") file_scr)
        (write-line "_.wmfout" file_scr)
        (write-line "" file_scr)
        (write-line "_all" file_scr)
        (write-line "" file_scr)
        (write-line "_.close" file_scr)
        (write-line "_yes" file_scr)
    )
    (close file_scr)
    (princ (strcat "\Vous pouvez lancer le SCRIPT :" prefix "dwg2wmf.scr"))
    (prin1)
))

Tu vas pointer un dessin témoin dans le dossier et le script va se monter tout seul.
Tu n'as plus qu'a lancer la commande SCRIPT et donner le fichier généré et aller boire un café, ou discuter avec les collègues.

Hors ligne

 

#5 Wed 07 December 2011 16:38

MiFe
Participant occasionnel
Lieu: MULHOUSE
Date d'inscription: 21 Nov 2006
Messages: 32

Re: Transformation dwg2wmf

Merci pour votre script, mais il me semble que dans la version 2012la commande WMFOUT ne fonctionne pas. Ce serait plutot SAUVEWMF.

Mais quand je remplace WMFOUT par SAUVEWMF j'ai ceci comme réponse dans ma console de commande:

Commande:
Commande: _.SAUVEWMF
Commande inconnue "SAUVEWMF".  Appuyez sur F1 pour obtenir de l'aide.

Avez vous une piste?

Merci

Miche F.


Michel F.
SIG- MULHOUSE (M2A)

Hors ligne

 

#6 Wed 07 December 2011 17:22

bruno v.
Participant actif
Date d'inscription: 22 Mar 2010
Messages: 89

Re: Transformation dwg2wmf

Je l'ai testé rapidement sur une 2011 sans soucis.

_WMFOUT n'est que la retranscription en international de la commande SAUVEWMF, ceci assure que les commandes fonctionneront quelque que soit la version linguistique d'Autocad utilisé.

Donc si autocad ne reconnait pas _WMFOUT, il ne reconnaitra pas non plus SAUVEWMF.

La commande SAUVEWMF n'est peut être plus disponible sur une 2012 ?

Donc en résumé le souligné (_) ne doit pas être mis devant une commande en FRANCAIS, seulement devant la commande ANGLAISE correspondante pour quelle soit comprise.

NB: Le point devant la commande, permet d'être sur d'utiliser la commande originale (au cas ou cette commande aurait été redéfinie avec REDEF), une sécurité peu utile, mais... sait on jamais!

Dernière modification par bruno v. (Wed 07 December 2011 17:33)

Hors ligne

 

#7 Wed 07 December 2011 19:24

Patrice
JeSuisCharlie
Date d'inscription: 16 Sep 2005
Messages: 4779

Re: Transformation dwg2wmf

Hello

SAUVEWMF  et  _WMFOUT  fonctionnent parfaitement sur AutoCAD 2012 et MAP 2012 !

Par contre je pense que mettre un  FILEDIA=0  devrait aider a faire marcher le Script !
ou plutot faire un  FILEDIA = 0  avant de lancer le Script
et ne pas oublier de faire un  FILEDIA =1  apres le traitement ...

GeoBye, Pat


(Autodesk Expert Elite Team)

Hors ligne

 

#8 Thu 08 December 2011 12:44

MiFe
Participant occasionnel
Lieu: MULHOUSE
Date d'inscription: 21 Nov 2006
Messages: 32

Re: Transformation dwg2wmf

Merci pour vos coup de mains.

Ca marche même en laissant la Variable FILEDIA positionnée à 1.

Par contre quand j'inclu la commande _close suivi de _yes le script execute juste la première transformation.

J'ai remarqué que le nombre de saut de ligne est très important donc très contraignant???

Voici un extrait de mon script:

_open
"C:\Temp\DWG2WMF\APPLIQUE.dwg"
_wmfout

_all

_close
_yes
_open
"C:\Temp\DWG2WMF\APPLIQUE2000.dwg"
_wmfout

_all

_close
_yes
_open
"C:\Temp\DWG2WMF\ARMOIREEDF.dwg"
_wmfout

_all

_close
_yes

Y a t'il une erreur quelque part qui empêche la fermeture du fichier traité et l'ouverture du suivant?

Si j'élimine les lignes close et yes ça fonctionne, mais il y a un paquet de fichiers ouverts à la fin de l'execution du script.

A+

Michel F


Michel F.
SIG- MULHOUSE (M2A)

Hors ligne

 

#9 Thu 08 December 2011 14:43

bruno v.
Participant actif
Date d'inscription: 22 Mar 2010
Messages: 89

Re: Transformation dwg2wmf

Bonjour Michel

Si il y a un problème cela peu provenir de la variable EXPERT, si elle est différente de zéro.

En effet elle supprime certains messages de confirmation ce qui à une répercussion sur les scripts.

Autrement je ne vois pas, l'extrait du script m'a semblé correct

Hors ligne

 

#10 Thu 08 December 2011 20:09

olivier.eckmann
Participant assidu
Date d'inscription: 14 Dec 2007
Messages: 353

Re: Transformation dwg2wmf

Bonsoir,

à la commande CLOSE, 2 possibilités, si le dessin a été modifé depuis son ouverture, alors il y a demande de confirmation pour ignorer les modifications. Par contre si le dessin n'a subi aucune modification, alors la commande close s'exéctue sans demande de confirmation.
C'est peut-être ce qui se passe car la commande wmfout ne doit certainement pas modifier le dessin => pas de confirmation.
C'est pourquoi à la fin d'un script j'ajoute toujours une commande -pan 0,0 1,1 pour forcer une modification pour qu'AutoCAD demande une confirmation à la fermeture.

Olivier

Hors ligne

 

#11 Thu 08 December 2011 21:10

Patrice
JeSuisCharlie
Date d'inscription: 16 Sep 2005
Messages: 4779

Re: Transformation dwg2wmf

Hello Olivier

EXCELLENT, j'adore ton PAN qui force la question : Voulez vous enregistrer ...

Je vais immediatement demander a Christian de te voter une grosse augmentation en fin d'annee !

GeoBye, Pat


(Autodesk Expert Elite Team)

Hors ligne

 

#12 Fri 09 December 2011 09:13

MiFe
Participant occasionnel
Lieu: MULHOUSE
Date d'inscription: 21 Nov 2006
Messages: 32

Re: Transformation dwg2wmf

Bonjour

Aprés une bonne nuit de sommeil je découvre le post d'Olivier et je confirme. Les fichiers ouverts et transformés avec la commande "wmfout" ne sont pas modifiés et après la commande "_close" il n'est donc pas nécessaire de rajouter "_yes". C'est ce "yes" qui mettait le bazar!

Dans le code de Bruno il faut donc éliminer la ligne "yes"

Merci à tous pour votre contribution

A+

PS: juste pour info pour ceux qui voudraient faire la même chose: après chaque ouverture de fichier il faut inclure la commande zoom etendu dans le script, sinon les objets exportés au format wmf sont tronqués. Dans ce cas il faut évidemment aussi inclure la confirmation de fermeture ("_yes"

Dernière modification par MiFe (Fri 09 December 2011 10:02)


Michel F.
SIG- MULHOUSE (M2A)

Hors ligne

 

Pied de page des forums

Powered by FluxBB