Ellionel Posté(e) le 26 octobre 2007 Posté(e) le 26 octobre 2007 Bonjour , Voici le challenge auquel je suis confronté : --Je souhaite copier des repertoires contenat des dessins en dxf 2000 vers un repertoire avec ces dessins en dwg2004 avec au passage la creation de la miniatures .... --Pour la cretion de la miniatures , il suufit d'ouvrir chaque dessin dans autocad et de l'enregistrer à nouveau ( en ayant bien configurer autoacd )) Merci pour vos pistes , acr je ne sais pas trop si je pars sur du vba ou un cript ou un lisp... A bientot ..
Krynn Posté(e) le 27 octobre 2007 Posté(e) le 27 octobre 2007 Pourquoi ne pas utiliser SAS http://www.caderix.com/Telechargements_AutoCAD.html Je ne suis juste pas sur qu'il puisse "enregistrer sous" Alors on peu imaginer le combiner avec A9Converter http://www.a9tech.com/products/a9converter/ dans le principe: - ouvrir a9 converter - glisser les fichiers DXF2000 a transformer en DWG 2004 - ouvrir SAS - glisser les fichiers a enregistrer (pour avoir la vignette) - puis mettre _SAVE dans script et gros je procèderait comme ca (et pas sur les originaux pour etre sur)
Ellionel Posté(e) le 29 octobre 2007 Auteur Posté(e) le 29 octobre 2007 Merci pour cette reponse , elle marche tres bien .. Mais j'avoue faire cette routine regulierement 1ou 2 x/semaine .;Alors je cherche quelque chose qui se fasse plus automatiquement ... @++
bonuscad Posté(e) le 29 octobre 2007 Posté(e) le 29 octobre 2007 Bonjour, Je viens de faire une chose similaire, transformer du DXF14 en DWG2000. Je devais faire un dossier (vide) avec tous ses sous-dossiers (contenant 1 DXF) 1er niveau seulement! J'ai donc créé un dxf dans mon dossier vide pour qu'il me serve de référence.puis à l'aide de ces quelque lignes, créé un script en pointant mon dxf de référence en ouverture.puis dans la foulée je lance derrière le script généré. Les lignes qui suivent sont a adapter à ton besoin. (dwg 2004) (defun c:make_script ( / prefix file_scr folder under_folder) (setq prefix (strcat (vl-filename-directory (getfiled "Sélectionner un fichier dessin TEMOIN" "" "dxf" 16)) "\\") file_scr (open (strcat prefix "open_folder.scr") "w") ) (foreach folder (cddr (vl-directory-files prefix nil -1)) (foreach under_folder (cddr (vl-directory-files (strcat prefix folder "\\") nil -1)) (foreach dwg (vl-directory-files (strcat prefix folder "\\" under_folder "\\") "*.dxf" 1) ;(print dwg) (write-line "_.open" file_scr) (write-line (strcat "\"" prefix folder "\\" under_folder "\\" dwg "\"") file_scr) (write-line "_.zoom" file_scr) (write-line "_extent" file_scr) (write-line "_.qsave" file_scr) (write-line "2000" file_scr) (write-line (strcat "\"" prefix folder "\\" under_folder "\\" (substr dwg 1 (- (strlen dwg) 4)) "\"") file_scr) (write-line "_.close" file_scr) ) )) (close file_scr) (princ (strcat "\Vous pouvez lancer le SCRIPT :" prefix "open_folder.scr")) (prin1) ) Voilà si ça peut t'aider et si tu as des questions ?.... Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Ellionel Posté(e) le 29 octobre 2007 Auteur Posté(e) le 29 octobre 2007 Merci pour cette reponse ; ms j'avoue que je n'ai pas trop compris ton architecture de fichier .. De plus je voudrais copier un repertoire ( avec des sous reprtoire) ves un autre repertoire (C'est une sorte de sauvegarde) ..Et lors de de l'écriture "enregister sous" en version dwg 2004 .. Merci.. Peux tu m'expliquer un peu plus ton script , stp...Je vais essayer de comprendre ... @+
bonuscad Posté(e) le 29 octobre 2007 Posté(e) le 29 octobre 2007 Le code est pour des dossiers de 1er niveaux (le précédent était de 2 niveaux) (defun c:make_script ( / prefix file_scr folder) (setq prefix (strcat (vl-filename-directory (getfiled "Sélectionner un fichier dessin TEMOIN" "" "dxf" 16)) "\\") file_scr (open (strcat prefix "open_folder.scr") "w") ) (foreach folder (cddr (vl-directory-files prefix nil -1)) (foreach dwg (vl-directory-files (strcat prefix folder "\\") "*.dxf" 1) (write-line "_.open" file_scr) (write-line (strcat "\"" prefix folder "\\" dwg "\"") file_scr) (write-line "_.zoom" file_scr) (write-line "_extent" file_scr) (write-line "_.qsave" file_scr) (write-line "2004" file_scr) (write-line (strcat "\"" "C:\\ELLIONEL\\" folder "\\" (substr dwg 1 (- (strlen dwg) 4)) "\"") file_scr) (write-line "_.close" file_scr) ) ) (close file_scr) (princ (strcat "\Vous pouvez lancer le SCRIPT :" prefix "open_folder.scr")) (prin1) ) La variable:prefix contient le chemin du dossier racine de référencefile_scr est le non du fichier script à écrirefolder est le/les dossiers trouvé dans le chemin prefixdwg est le dxf trouvé dans chaque dossier j'ai modifié "2000" en "2004" et mis pour exemple "C:\\ELLIONEL\\" en dossier cible. Donc tu devrais pouvoir tester la génération du script en lançant le code.(pour ce faire tu peux directement copier-coller le code en ligne de commande autocad, puis tu tapes MAKE_SCRIPT) NB: avant de lancer le script généré regarde le contenu du fichier open_folder.scr s'il te semble correct et si il peut fonctionner. Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Ellionel Posté(e) le 30 octobre 2007 Auteur Posté(e) le 30 octobre 2007 Merci ton script marche à merveille .. Peux tu l perfectionner , que l'on puisse ecraser un fichier existant lors de la seconde sauvegarde .. Merci encore ... javascript:insertAtCaret(':)','')javascript:insertAtCaret(':)','')
bonuscad Posté(e) le 30 octobre 2007 Posté(e) le 30 octobre 2007 on puisse ecraser un fichier existant lors de la seconde sauvegarde .. Pour une gestion facile, je pense que le mieux est d'introduire ce qui suit dans le code. (pas testé) (write-line (strcat "\"" prefix folder "\\" dwg "\"") file_scr)(write-line "_.expert" file_scr)(write-line "2" file_scr)(write-line "_.zoom" file_scr) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Ellionel Posté(e) le 30 octobre 2007 Auteur Posté(e) le 30 octobre 2007 Merci...Merci Ca marche ...Si je ne mets pas dans outil -options -enregistrer -dwg2004- il plante , peux tu corriger cela ..De plus , pour les fichier déja ouvert au moment de leur ouverture , il demande si on veux l'ouvrir en lecture seule .. cela fait planter la routine ... Merci encore !!!!!!!!!!!!!!!!!!!!!!
bonuscad Posté(e) le 31 octobre 2007 Posté(e) le 31 octobre 2007 Si je ne mets pas dans outil -options -enregistrer -dwg2004- il plante Essayes de passer par la commande "_.saveas" au lieu de "_.qsave". En fait mets au point ton propre script.Tu essayes manuellement tes commandes (mettre "filedia" à 0 pour bien être en situation de script), de façon à pouvoir reproduire la séquence en adaptant le lisp. pour les fichier déja ouvert La pas de solution rapide pour adapter. Ou tourne toi vers des développements de scripts plus poussés qui prévoient ceci. Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Ellionel Posté(e) le 31 octobre 2007 Auteur Posté(e) le 31 octobre 2007 Merci , pour ce dernier conseil ..je vais continuer à personnaliser ce script ..... Peux tu me dire ou trouver toutes les commandes clavier ( genre "expert" ,...) Merci encore..... :)
bonuscad Posté(e) le 31 octobre 2007 Posté(e) le 31 octobre 2007 Expert n'est pas une commande, mais une variable (qui influe sur certaines commandes) Les variables acceptants d'être entrées directement au clavier sans passer par la commande "MODIFVAR" ("_SETVAR"), ceci pour faire un script le plus condensé possible. et l'aide pointe dessus si tu fais F1 au lieu d'entrer une valeur à la variable expert. Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Ellionel Posté(e) le 31 octobre 2007 Auteur Posté(e) le 31 octobre 2007 Merci encore et a bientot ..... :D :D :D :D :D
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