LUDWIG Posté(e) le 23 mars 2005 Posté(e) le 23 mars 2005 Bonjour, J'ai fait un lisp pour faire un Wbloc sur chacun des blocs sélectionnés dans le dessin. Je souhaite saisir le chemin du dossier ou enregistrer ces blocs via une boîte de dialogue ... Mais la commande GETFILED m'oblige à sélectionner un FICHIER... Si mon dossier est vide, je ne sais pas comment le sélectionner (à part en créer un fichier à l'intérieur...). Y-a-t'il un moyen d'utiliser GETFILED (ou une autre commande) pour sélectionner un DOSSIER ? Merci d'avance... Autocad 2021 - Revit 2022 - Windows 10
Tramber Posté(e) le 23 mars 2005 Posté(e) le 23 mars 2005 Je te conseille d'aller voir le lien de mon premier message dans ce fil de discussion. Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
bonuscad Posté(e) le 23 mars 2005 Posté(e) le 23 mars 2005 Ludwig, Voici un lisp que je me sert pour me créer une bibliothèque de dessin à partir d'un dessin contenant des blocs que je veux récupérer. Avec (getfiled) j'arrive bien à créer ou sélectionner un dossier ??? Je n'ai pas compris ton problème (defun record_dwg (name / nam_file) (cond ((not (wcmatch (cdr (assoc 2 name)) "`**")) (if (not prefix) (progn (setq nam_file (getfiled "Dessin bibliothèque" (cdr (assoc 2 name)) "dwg" 1)) (setq prefix (substr nam_file 1 (- (strlen nam_file) (strlen (cdr (assoc 2 name)))))) ) (setq nam_file (strcat prefix (cdr (assoc 2 name)))) ) (command "_.-wblock" nam_file (cdr (assoc 2 name))) ) ) ) (defun c:blk2dwg ( / first_blk l_blk n_blk prefix) (setq first_blk (tblnext "BLOCK" T)) (cond (first_blk (setq l_blk (list first_blk)) (while (setq n_blk (tblnext "BLOCK")) (setq l_blk (cons n_blk l_blk)) ) (setvar "FILEDIA" 0) (foreach n l_blk (record_dwg n)) (setvar "FILEDIA" 1) ) (T (princ "\nPas de blocs définis!") ) ) (prin1) ) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
LUDWIG Posté(e) le 23 mars 2005 Auteur Posté(e) le 23 mars 2005 Tramber, je suis aller voir, mais ça me dépasse :hallucine: Bonuscad, Mon code (la différence avec le tien , c'est que je n'exporte que des blocs présents graphiquement...) : (defun c:wb () (setq filediaOLD (getvar "filedia")) (setvar "filedia" 0) (setq blocs (ssget (list (cons 0 "INSERT")))) (setq n 0) (repeat (sslength blocs) (setq bloc_traite (entget (ssname blocs n))) (setq fichier (strcat "C:/Documents and Settings/ldesmier/Bureau/BIBLI/" (setq nom (cdr (assoc 2 bloc_traite))) ".dwg")) ;le chemin est pour l'instant imposé (command "-wbloc" fichier nom) (setq n (+ 1 n)) ) (setvar "filedia" filediaOLD) ) Bon, sinon, je crois que je me suis fourvoyé lamentablement : je tentais un (getfiled "Chemin d'export des blocs" "" "" [b] 0[/b]) --> pas de nom par défaut donc ça ne marchait pas ! Mon problème est maintenant résolu. Merci pour ton lisp qui est très bien. NOTE : mon lisp ne traite pas le pb des doublons ! [Edité le 23/3/2005 par LUDWIG] Autocad 2021 - Revit 2022 - Windows 10
Patrick_35 Posté(e) le 23 mars 2005 Posté(e) le 23 mars 2005 SalutTramber voulait dire qu'avec le gratuiciel Doslib, tu as la fonction dos_getdir qui te permet de choisir seulement le répertoire, sans pour autant donner un nom de fichier @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
LUDWIG Posté(e) le 23 mars 2005 Auteur Posté(e) le 23 mars 2005 OK je me pense dessus... Autocad 2021 - Revit 2022 - Windows 10
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