Aller au contenu

Comment imprimer rapidement une liste de blocs?


Messages recommandés

Posté(e)

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!

Posté(e)

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):

Posté(e)

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

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é