Esta porción de código usa Visual Lisp para “recorrer” todas las ventanas (viewports) del espacio papel actual y si están bloquedas las desbloquea.

; Desbloquea automáticamente todas las ventanas del espacio papel

; https://www.devcadlisp.com/
; https://www.mariotorres.pe/

; Este es un lisp en formato original, se puede ver el código fuente, la intención, es de que el código fuente
; pueda ser modificado y adaptado a la necesidad de cada usuario, se prohibe la distribución libre del mismo, dado a que le
; pertenece al autor.
;-------------------------------------------------------------------------------------------------------------------------------

; CODIGO FUENTE DE LA RUTINA LISP (SNIPPET).
;______________________________________________________
(vl-load-com)

(defun c:vpunlockall ()
	(vlax-for lay (vla-get-layouts (vla-get-activedocument (vlax-get-acad-object)))
		
		(if (eq :vlax-false (vla-get-modeltype lay))
			(vlax-for ent (vla-get-block lay)
				(if (= (vla-get-objectname ent) "AcDbViewport")
					(progn
						(vla-put-displaylocked ent :vlax-false) ;Desbloquea la ventana
						(vla-put-color ent 3);Como ejemplo cambia también el color
					)
				)
			)
		)
		
	)
)

(setvar "modemacro" "https://www.devcadlisp.com/")
(alert "https://www.devcadlisp.com/\nhttp://www.mariotorres.pe/")
(princ "\nhttps://www.devcadlisp.com/")
(princ)

Este snippet, nos ayuda a aprender cómo acceder a cada ventana para actuar sobre ella, es por ello que se ha incluido también una línea de código de ejemplo de como cambiar el color de cada ventana a verde (color 3).

Como puedes observar, aquí prácticamente todo el código es Visual Lisp, lo puedes identificar por los prefijos “vla-“, si estás aprendiendo a programar aquí en DevCADLisp, próximamente llegaremos a crear temas acerca de programación con Visual Lisp.

Para que las funciones Visual Lisp estén disponibles y antes de hacer referencia a cualquiera de ellas se debe de cargar las bibliotecas de código en memoria mediante la función: vl-load-com.

Aquí la línea de código que desbloquea cada ventana es esta:

;Desbloquea la ventana
(vla-put-displaylocked ent :vlax-false) 

Para bloquear cada ventana, la línea de código se tendría que actualizar a esta:

;Bloquea la ventana
(vla-put-displaylocked ent :vlax-true)

Puedes copiar el código fuente y pegarlo en un archivo .lsp para que pruebes por ti mismo en que te puede ayudar éste fragmento de código.