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