guibout Posté(e) le 16 mars 2006 Posté(e) le 16 mars 2006 Bonjour, J'ai environ 900 fichiers concernant un projet. On me demande de faire le listing de ce projet en ayant pour chaque fichier la date de création, la date de dernière modification, le nom des présentations et le temps passé (enregistré par Autocad).Pour cela, j'ai suivi les conseils donnés sur ce forum :1 - utiliser un listeur de répertoire type PCCATALOG2 - mettre cette liste sous EXCEL3 - réaliser un LISP sous AUTOCAD me permettant d'extraire les données recherchées4 - lancer depuis EXCEL un traitement pour chaque fichier a) ouverture du fichier par AUTOCAD b) execution du lisp c) fermeture du fichier AUTOCAD cela crée à chaque fichier .dwg un fichier qui porte le meme nom avec une extension supplémentaire .ctl dans le meme répertoire que le fichier .dwg5 - lancer depuis EXCEL un traitement pour chaque fichier crée afin de traiter le contenu et de l'intégrer dans le tableau excel Pour information, voici le code LISP que j'ai fait : (defun c:dateagu ()(setvar "cmdecho" 0) (princ "\nTraitement en cours...")(setq f (open (strcat (getvar "dwgprefix")(getvar "dwgname") ".ctl") "w"))(princ "Fichier dessin: " f)(princ "\n" f) (princ (getvar "dwgname") f)(princ "\n" f) (princ "Taille :" f)(princ "\n" f) (princ (vl-file-size (strcat (getvar "dwgprefix")(getvar "dwgname"))) f)(princ "\n" f) (princ "Date de création : " f)(princ "\n" f) (princ (menucmd "M=$(edtime,$(getvar,TDCREATE), DD/MO/YY - HH:MM:SS)")f)(princ "\n" f) (princ "Date du dernier enregistrement : " f)(princ "\n" f) (princ (menucmd "M=$(edtime,$(getvar,tdupdate), DD/MO/YY - HH:MM:SS)")f)(princ "\n" f) (princ "Temps passé :" f) (princ "\n" f) (princ (menucmd "M=$(edtime,$(getvar,tdindwg), HH:MM)")f) (princ "\n" f) (princ "Présentations :" f) (princ "\n" f) (princ (layoutlist) f) (close f)(princ "\nFin du traitement.")(princ (strcat "\nLe fichier d'information se nomme: " (getvar "dwgname") ".CTL")) (princ) (princ "\n==> DATEAGU")(princ)) Et voici le contenu du fichier (.ctl) construit par le LISP :Fichier dessin: Relevé du 9-03-06.dwgTaille :1723126Date de création : 24/10/05 - 14:57:35Date du dernier enregistrement : 16/03/06 - 10:33:13Temps passé : 07:57Présentations :(Layout1 Présentation1 Présentation2 Présentation3) Merci de toute l'aide que vous pourriez m'apporter pour faire avancer tout ou partie de ce projet.Si par ailleurs, vous avez d'autres solutions, je veux bien en être informé afin d'en explorer les pistes. Cordialement Wallas
Patrick_35 Posté(e) le 16 mars 2006 Posté(e) le 16 mars 2006 SalutTu as ce sujet et celui-ci @+ [Edité le 16/3/2006 par Patrick_35] Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
fabcad Posté(e) le 16 mars 2006 Posté(e) le 16 mars 2006 Et pourquoi ne pas utiliser un script de commandes "fichier.scr" pour ouvrir, faire ton traitement lisp et quitter dans tous les dessins.copie ta liste de tes dessins dans un bloc-notes que tu enregistres sous travail.scr tapes tes commandes autocad en faisant attention aux espaces : SAUVERAPCMDDIA 0 FILEDIA 0OUVRIR DESSIN1 (load "fonction") NOM-DE-TA-FONCTION SAUVERAPOUVRIR DESSIN2 (load "fonction") NOM-DE-TA-FONCTION SAUVERAPetc...OUVRIR DERNIERDESSIN (load "fonction") NOM-DE-TA-FONCTION SAUVERAPCMDDIA 1 FILEDIA 1 Dans un fichier script.dwg avec dans les options se mettre en SDI pour n'avoir qu'un dessin ouvert à chaque fois et tu lances ce fichier via la fonction script ou par glisser-deposer
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