PHILPHIL Posté(e) le 13 août 2009 Posté(e) le 13 août 2009 hello la fonction "findfile" recheche dans le repartoire que l'on a deja designer dans autocad dans les options est ce qu'il y a un moyen par LISp de faire une rcherche d'un fichier dans un repertoire defini et de ses sous répertoires a la fois ( non defini dans les options ceux la ) pour élargir les recherches a+ bonne soirée phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
(gile) Posté(e) le 13 août 2009 Posté(e) le 13 août 2009 Salut, Regarde ici cette merveilleuse routine d'ElpanovEvgeniy Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
(gile) Posté(e) le 13 août 2009 Posté(e) le 13 août 2009 Ou encore celle là (récursivité croisée) (defun getFile (file path / foo1 foo2 rslt) (defun foo1 (path) (cond ((findfile (strcat path "\\" file))) ((foo2 (vl-remove "." (vl-remove ".." (vl-directory-files path nil -1))))) ) ) (defun foo2 (lst) (cond ((null lst) nil) ((foo1 (strcat path "\\" (car lst)))) ((foo2 (cdr lst))) ) ) (foo1 path) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
PHILPHIL Posté(e) le 13 août 2009 Auteur Posté(e) le 13 août 2009 hello merci gile pour le lienmerci usegomme bon ok je suis pas bon sur ce coup la j'ai voulu modifie le LISP de "usegomme" majbloc pour qu'il cherche dans les sous repertoires il remplace bien le bloc et fait la mise a jour mais il reste ce probleme la kezako Commande:MJBSelectionner le bloc a mettre a jour: *Incorrect*ERREUR d'application: irfcldcommande AutoCAD incorrecte: nil a+ bonne nuit phil (defun C:mjb (/ ELST ENAM BLKNAME typent) (setq ENAM (car (entsel "\nSelectionner le bloc a mettre a jour: ")) ELST (entget ENAM) typent (cdr (assoc 0 ELST)) ) (IF (= typent "INSERT") (progn (setq BLKNAME (GetFirstFile (strcat (cdr (assoc 2 ELST)) ".dwg") '("C:\\PERSO\\BIBLIOTHEQUE"))) (command "_-insert" (strcat (cdr (assoc 2 ELST)) "=" BLKNAME)) (command) (if (cdr (assoc 66 ELST)) (command "_attsync" "_n" (cdr (assoc 2 ELST)))) (if BLKNAME (prompt "\n Bloc mis à jour")) ) (prompt "\n Ce n'est pas un BLOC ") ) (princ) ) (defun GetFirstFile (f p) (cond ((not p) nil) ((vl-directory-files (car p) f) (strcat (car p) "\\" (car (vl-directory-files (car p) f)))) ((GetFirstFile f (append (mapcar (function (lambda (x) (strcat (car p) "\\" x))) (vl-remove ".." (vl-remove "." (vl-directory-files (car p) nil -1))) ) ;_ mapcar (cdr p) ) ;_ append ) ;_ GetFirstFile ) ) ;_ cond ) ;_ defun[Edité le 13/8/2009 par PHILPHIL] [Edité le 13/8/2009 par PHILPHIL] FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
(gile) Posté(e) le 14 août 2009 Posté(e) le 14 août 2009 Salut, Une petite recherche dans les forums de CADxp avec "irfcld" t'aurais dirigé vers d'autres cas de même erreur. D'après ce que je comprends cette erreur est due à l'utilisation de la fonction command et semble ne survenir que sur certains postes. Elle doit être due à une application chargée sur le poste qui ne supporte pas certaines utilisation de cette fonction. PS : il serait sûrement plus "économique en temps" de déclarer tes répertoires de "BIBLIOTHEQUE" que d'utiliser une routine de recherche. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
PHILPHIL Posté(e) le 14 août 2009 Auteur Posté(e) le 14 août 2009 hello gile : comme tu dis j'aurais du chercher , je l'ai fait pour regler le souci de l'insertion d'un bloc sans confirmation et apres dodo à 2h00 du mat faut bien dormir des fois je vais continuer de chercher ce "irfcld" pour ce qui est des sous répertoire biblio j'en ai 35 et surtout je ne connais pas ceux des autresj'essaye de faire comme toi gile un lisp qui sert a tous a+ merci bon week phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
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