Aller au contenu

Petit challenge


Messages recommandés

Posté(e)

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 ..

 

 

Posté(e)

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)

Posté(e)

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 ...

 

@++

 

 

Posté(e)

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

Posté(e)

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 ...

 

 

@+

 

 

Posté(e)

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érence

file_scr est le non du fichier script à écrire

folder est le/les dossiers trouvé dans le chemin prefix

dwg 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

Posté(e)

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(':)','')

Posté(e)

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

Posté(e)

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 !!!!!!!!!!!!!!!!!!!!!!

 

 

Posté(e)

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

Posté(e)

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.....

 

:)

Posté(e)

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

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité