dol Posté(e) le 27 novembre 2004 Posté(e) le 27 novembre 2004 salut a tousje suis sur autocad 2005ce lisp sert a transformer un dxf en dwg automatiquement qq1 peux m'aider sur ce lisp il ne marche pas. ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (defun NOEXT(chaine) ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (setq ct 1 len (strlen chaine)) (while (and (/= "." (substr chaine ct 1)) (<= ct len) );fin and (setq ct (1+ ct)) );fin while (substr chaine 1 (- ct 1)) );fin defun ;**************************************************************************************** ;************** PERMET DE CHANGER DES FICHIERS ***************************** ;************* DXF EN DWG **************************** ;************ *************************** ;*********** ************************* ;**************************************************************************************** ;------------------------------------------------------------------------ (defun C:chdxf();/ rep dos s f ligne lst nom ;------------------------------------------------------------------------ (initget "Oui Non") (setq choix (getkword "\nVoulez-vous un repertoire specifique (Oui ou Non) : ")) (if (= choix "Oui") (progn (setq rep (getstring T "\nRépertoire de recherche: ") ) );fin progn (progn (setq rep (getvar "dwgprefix") lg (strlen rep) rep (substr rep 1 (- lg 1)) ) );fin progn );fin de if (dos_command (strcat "dir " rep "\\*.dxf/b/on>" rep "\\listdxf") 8) (princ) (setq lst nil s (open (strcat rep "\\dxf.scr") "w") f (open (strcat rep "\\listdxf") "r") );fin setq (while (setq ligne (read-line f)) (setq lst (append lst (list ligne))) );fin while (foreach x lst (setq nom (NOEXT x)) (write-line "_NEW" s) (write-line (strcat nom "=") s) (write-line "_DXFIN" s) (write-line (strcat rep "\\" nom) s) (write-line "zoom et" s) (write-line "FILEDIA 1" s) (write-line "CMDDIA 1" s) (write-line "CMDECHO 1" s) (write-line "ATTREQ 1" s) (write-line "SAUVENOM 2000" s) ;(write-line "2000" s) (write-line (strcat rep "\\" nom) s) );fin foreach (princ "\n") (close s) (close f) (setq ecr (strcat rep "\\dxf")) (command "script" ecr) (princ) );fin defun
rebcao Posté(e) le 27 novembre 2004 Posté(e) le 27 novembre 2004 pourquoi y a t-il un ; devant ta fonction ( DEFUN C... et (INITGET... (au début) ? Christian [Edité le 27/11/2004 par rebcao] Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
Patrick_35 Posté(e) le 29 novembre 2004 Posté(e) le 29 novembre 2004 Pour rebcaoun ; sert de rem, c'est à dire que la ligne devient un commentaire Pour dolPourquoi faire un lisp ? Il existe le programme Batch drawing converter des migrations assistance fournit avec le cd d'autocad. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
rebcao Posté(e) le 29 novembre 2004 Posté(e) le 29 novembre 2004 Merci Patrick_35, même si je ne suis pas très assidu sur les questions LISP, je suis tout de même un LISPeux dinosaurien... Je sais à quoi sert le ;... mais si j'analyse le source la fonction ( DEFUN C... est attendu puisque à la fin il y a la parenthèse fermant du ) ; DEFUN Désolé, mais la parenthèse à la fin devrait aussi se trouver derrière un ; ou alors supprimer le ; devant la fonction DEFUN au début et éventuellement devant INIGET... Christian [Edité le 29/11/2004 par rebcao] Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
Tramber Posté(e) le 29 novembre 2004 Posté(e) le 29 novembre 2004 Pourquoi faire un lisp ? Il existe le programme Batch drawing converter des migrations assistance fournit avec le cd d'autocad. @+ Je l'avais téléchargé sur le net, sur tes conseils, et c'est un super outil. Il faut être muni de son numéro de série (ou d'autorisation, enfin un numéro, ou avoir un programme installé, je ne sais plus).Je recherche Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
Serge Posté(e) le 29 novembre 2004 Posté(e) le 29 novembre 2004 Dol, Je n'ai pas essayé de faire rouler ta routine mais je peux te dire qu'il y a vait quelques coquilles. Comme rebcao l'a mentionné, le fait que defun se trouve sur la même ligne qu'un ; qui le précède, c'est comme si le defun n'avait jamais été écrit. Il y a d'autres coquilles du genre.Le initget a été amélioré. On a placé la déclaration de variables locales en commentaires (pourquoi?) Je t'envoie une version corrigée. Fais attention au mélange d'expressions anglaises/françaises. ;------------------------------------------------------------------------ (defun C:chdxf() ;/ rep dos s f ligne lst nom ;------------------------------------------------------------------------ (initget "Oui Non") (setq choix (getkword "\nVoulez-vous un repertoire specifique [Oui/Non] : ")) (if (not choix) (setq choix "Oui")) (if (= choix "Oui") (progn (setq rep (getstring T "\nRépertoire de recherche: ")) ) (progn (setq rep (getvar "dwgprefix")) (setq lg (strlen rep)) (setq rep (substr rep 1 (- lg 1))) )) (dos_command (strcat "dir " rep "\\*.dxf/b/on>" rep "\\listdxf") 8) (princ) (setq lst nil) (setq s (open (strcat rep "\\dxf.scr") "w")) (setq f (open (strcat rep "\\listdxf") "r")) (while (setq ligne (read-line f)) (setq lst (append lst (list ligne))) );fin while (foreach x lst (setq nom (NOEXT x)) (write-line "_NEW" s) (write-line (strcat nom "=") s) (write-line "_DXFIN" s) (write-line (strcat rep "\\" nom) s) (write-line "zoom et" s) (write-line "FILEDIA 1" s) (write-line "CMDDIA 1" s) (write-line "CMDECHO 1" s) (write-line "ATTREQ 1" s) (write-line "SAUVENOM 2000" s) ;(write-line "2000" s) (write-line (strcat rep "\\" nom) s) );fin foreach (princ "\n") (close s) (close f) (setq ecr (strcat rep "\\dxf")) (command "script" ecr) (princ) );fin defun Serge
Patrick_35 Posté(e) le 30 novembre 2004 Posté(e) le 30 novembre 2004 Bonjour à tous pour TramberIl me semble qu'il suffit d'avoir Autocad d'installé pour lancer les outils de migrationVoici un lien pour la version 2004 Pour RebcaoExcuse-moi si je t'ai un peu froissé. Je pensais que tu ne connaissais pas @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
rebcao Posté(e) le 30 novembre 2004 Posté(e) le 30 novembre 2004 Eh Oui ! Patrick ! et moi qui aimait tant la Bretagne.... mais en résumé, c'était bien là qu'était l'erreur ! Christian Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant