Echa un ojo al vídeo para ver como funciona
https://youtu.be/udkCNQUP1tM
También os dejo el código del LISP por si alguien lo quiere retocar y adecuar a sus necesidades
Código: Seleccionar todo
;-------------------------------------- crea presentaciones ------------------------------
(princ "\nEjecuta la aplicacion con la oreden:  presenta")
(defun c:presenta (/)  
 
 (setvar "cmdecho" 0)
 (vl-load-com)
 (setq i 0)
 (setq cuanta 0)
 (setq titu 0)
 (setq total 0
   minimo-list
    (list)
   maximo-list
    (list))
(defun *error* (msg)
  (setvar "osmode" osmode-ant)
  (setvar "aperture" aperture-ant)
  (setvar "pickbox" pickbox-ant)
  (princ "error: ")
  (princ msg)
  (princ)
 )
    (setq osmode-ant (getvar "osmode"))
    (setq aperture-ant (getvar "aperture"))
    (setq pickbox-ant (getvar "pickbox"))
 (setvar "osmode" 0)
 (command "_ucs" "_w")
  (alert "Tienes que tener una presentacion creada con el nombre 00 
Un BLOQUE con el mismo tamaño que el hueco de la ventana
y su origen debe de ser la esquina inferior izquierda.
Recomendacion:
Poner numero de hoja con CAMPO <variable de sistema CTAB> para numeracion automatica
Dudas a javilapina@gmail.com")
 
 
 (setq ent (car (entsel "\nSeleccionar bloque con el recuadro : ")))
 (setq pt0 (cdr (assoc 10 (entget ent))))
 (setvar "osmode" 32)
 (setq altu (getdist pt0 "\nAltura del recuadro : "))
 (setvar "osmode" 0)
 
 (setq altu (rtos altu))
 (setq titu (getstring "\nNumero de orden con el que comienzan las presentaciones : "))
 (setq titu (atoi titu)) 
 (setq conjunto (ssget "_X" '((0 . "VIEWPORT")))) 
 (vla-put...-DisplayLocked (vlax-ename->vla-object (SSNAME conjunto 0)) 0) 
 (setq vle (vlax-ename->vla-object ent))
 (setq nomb (vlax-get vle "name"))
 (setq  lista (ssget "_x"  (list (cons 2 nomb))))
 
 
(if (/= lista nil)
      (progn
       (setq policon (sslength lista))      
       (setq total (+ policon titu))
       (setq total (- total 1))    
       (setq cont 0)
         (repeat policon
              (setq blo (ssname lista cont))
   
   (setq total (rtos total 2 0))
   
   (command "_layout" "_c" "00" total)
   (command "_layout" "_s" total)
   (command "_mview" "_L" "_off" "_L" "")
   (command "_mspace")
   (command "_ucs" "_OB" blo)
   (command "_plan" "")
   
    (vla-GetBoundingBox
      (vlax-ename->vla-object blo)
      'minimo
      'maximo
    )
    (setq 
     minimo-list
      (cons (vlax-safearray->list minimo) minimo-list)
     maximo-list
      (cons (vlax-safearray->list maximo) maximo-list)
    )
 
   (setq pto (mapcar '/ (mapcar '+ (car minimo-list) (car maximo-list)) (list 2.0 2.0 2.0)))
   
   (command "_ucs" "_w")
   (command "_Zoom" "_c" pto altu)
   (command "_ucs" "_p")
   (command "_pspace")
   (command "_Zoom" "_e")
   (setq total (atof total))
   (setq total (- total 1))
     
                 
    (setq cont (+ cont 1))
    )
  )
)
(setq bloquear -1)
(vl-load-com)
    (setq conjunto (ssget "_X" '((0 . "VIEWPORT"))) i 0) 
(repeat (sslength conjunto) 
  (vla-put...-DisplayLocked 
  (vlax-ename->vla-object (SSNAME conjunto i)) bloquear) 
 
  (vla-put...-color 
  (vlax-ename->vla-object (SSNAME conjunto i)) 
  acByLayer) 
(setq i (1+ i)))
  (setvar "osmode" osmode-ant)
  (setvar "aperture" aperture-ant)
  (setvar "pickbox" pickbox-ant)
) 
