sebu38 Posté(e) le 15 septembre 2011 Posté(e) le 15 septembre 2011 Bonjour à tous,j'ai 500 blocs d'arbres dans un dossier(je suis paysagiste ;) )je cherche une routine pour les disposer dans une présentation avec leurs noms en dessous bien sûr, et les imprimer!Allez, je suis sûr que ma question réveille le génie qui sommeille au fond de vous :D Merci!
bonuscad Posté(e) le 15 septembre 2011 Posté(e) le 15 septembre 2011 Bonjour, Regarde cette réponse au sujet de l'insertion en masse Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
capde06 Posté(e) le 15 septembre 2011 Posté(e) le 15 septembre 2011 sinon il y a extraction de donnéesOutils>extraction de données Vous fîtes ce que vous pûtes et vous m'épatâtes !!!!
sebu38 Posté(e) le 15 septembre 2011 Auteur Posté(e) le 15 septembre 2011 Impeccable!Merci Bonuscad, j'ai utilisé ton code qui fonctionne à merveille:(defun c:cahier_bloc ( / old_osmd prefix pt_ins pt_tmp lst_dwg n dx dy loop key pt pt_last obj ll ur lg) (setvar "cmdecho" 0) (setvar "attreq" 0) (setq old_osmd (getvar "osmode")) (setvar "osmode" 0) (vl-load-com) (setq prefix (strcat (vl-filename-directory (getfiled "Sélectionner un fichier DWG TEMOIN" "" "dwg" 16)) "\\")) (setq pt_ins (getpoint "\nPoint d'insertion pour le 1er Bloc? <0.0,0.0,0.0>: ")) (if (null pt_ins) (setq pt_ins '(0.0 0.0 0.0))) (setq lst_dwg (vl-directory-files prefix "*.dwg" 1) next_ins pt_ins delta_x 0.0 delta_y 0.0 last_pt nil ) (initget "A4 A3") (setq dx (if (eq (getkword "\nQuel format [A4/A3]? : ") "A3") 420 210) dy (* 210 (sqrt 2))) (foreach dwg lst_dwg (setq Obj (vla-InsertBlock (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))) (vlax-3d-point next_ins) (strcat prefix dwg) 1 1 1 0 ) ) (vla-GetBoundingBox Obj 'll 'ur) (setq ll (safearray-value ll) ur (safearray-value ur) ) (command "_.move" (entlast) "" "_none" ll "_none" next_ins) ;(setvar "cecolor" "3") ;(command "_.rectang" ll ur) ;(setvar "cecolor" "256") ;(command "_.move" (entlast) "" "_none" ll "_none" next_ins) (setq next_ins (list (+ (car ur) (car next_ins)) (cadr next_ins) (caddr next_ins)) last_pt next_ins delta_x (+ (- (car ur) (car ll)) delta_x) delta_y (max (- (cadr ur) (cadr ll)) delta_y) ) (if (> delta_x dx) (if (> delta_y dy) (setq next_ins (list (+ (car pt_ins) dx) (cadr pt_ins) (caddr pt_ins)) delta_x 0.0 delta_y 0.0 pt_ins next_ins ) (setq next_ins (list (car pt_ins) (+ (cadr pt_ins) delta_y) (caddr pt_ins)) delta_x 0.0 pt_ins next_ins ) ) (setq next_ins (list (+ (car pt_ins) delta_x) (cadr pt_ins) (caddr pt_ins))) ) ; (command "_.text" "_justify" "_tleft" (list (car pt_ins) (+ (cadr pt_ins) dy)) "5.0" "0.0" dwg) ) (command "_.zoom" "_all") (command "_.zoom" "_extents") (setvar "osmode" old_osmd) (setvar "attreq" 1) (setvar "cmdecho" 1) (prin1) )Merci :(rires forts):
didier Posté(e) le 15 septembre 2011 Posté(e) le 15 septembre 2011 Coucou deux choses capde06 : ce dont tu parles est utile pour créer des tableaux "Excel ou autres"avec les attributs des blocs, s'ils en ont. les autres : ne copiez pas les messages dans les réponses c'est lourdingue à lire.j'ai supprimé le message en double (modérateur) amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
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