@Sea-Haven wrote:
Try this version it uses the global program Muti getvals for the dcl input, can be used in any code so make sure you save it in a support directory or add full path to the Load.

;https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/how-to-split-multiple-sheets-in-one-layout-to-individual-layout/td-p/13032412
; copy layouts
; BY AlanH SEP 2024
(defun c:copylays ( / oldsnap ss ss2 clay obj xsc ysc pt1 pt2 bname ins k x pt1 pt2 newname lay )
(setq oldsnap (getvar 'osmode))
(setvar 'osmode 0)
(setq ss (ssget "X" (list (cons 0 "Insert")(cons 2 "TITLE BLOCK*")(cons 410 (getvar 'ctab)))))
(if (= lay nil)(setq lay 1))
(if (not AH:getvalsm)(load "Multi Getvals.lsp"))
(setq ans (AH:getvalsm (list "Enter values " "Layout number " 5 4 (rtos lay 2 0) "layout name " 20 19 "-" )))
(setq lay (atoi (car ans)))
(setq layname (cadr ans))
(setq clay (getvar 'ctab))
(repeat (setq K (sslength ss))
(setq obj (vlax-ename->vla-object (ssname ss (setq k (- K 1)))))
(setq ins (vlax-get obj 'insertionpoint))
(setq bname (vlax-get obj 'name))
(cond
((= bname "TITLE BLOCK_A2_R")(setq x 594. y 420.))
; add more sizes here
)
(setq pt1 ins)
(setq pt2 (mapcar '+ ins (list x y 0)))
(command "copyclip" "W" pt2 pt1 (ssname ss k) "")
(setq newname (strcat layname "-" (rtos lay 2 0)))
(command "layout" "n" newname)
(setvar 'ctab newname)
(command "erase" (ssget "X" (list (cons 0 "viewport")(cons 410 (getvar 'ctab)))) "")
(command "pasteclip" "0,0")
(command "zoom" "e")
(setq ss2 (ssget "X" (list (cons 0 "Insert")(cons 2 "TITLE BLOCK*")(cons 410 (getvar 'ctab)))))
(setq obj (vlax-ename->vla-object (ssname ss2 0)))
(setq ins (vlax-get obj 'insertionpoint))
(setq pt1 (getvar 'extmin))
(setq pt2 (getvar 'extmax))
(command "move" "w" pt2 pt1 "" ins "0,0")
(setq lay (1+ lay))
(setvar 'ctab clay)
)
(setvar 'osmode oldsnap)
(alert "To run again type copylays ")
(princ)
)
(c:copylays)
The layout number should auto increase when asked again or you can change, but can change description. Its not super fast as need to switch between layouts but at least you watch the flashing screen.
After running I would saveas, I have plot lisps etc that can be modified to suit your title block.
As I ended up with like 30 + layouts here is goto layouts allows you to do just that go to a layout by number.
thank you for update lisp sir.
multi getvals.lsp

that one only can add layout name on preffix sir? usually for my drawing i use number + name drawing.
goto layout.lsp
i don't know what purpose off this lisp for split multiple sheets sir? or this one optional separate lisp for move to layout faster.

last one for viewport with some viewport freeze that one really can't do with this lisp sir? now i do manually block viewport one by one per sheet --> run the lisp --> explode manual on the new layout.