Autolisp gestión de capas

Dudas y consultas sobre CAD. AutoCAD, Microstation y resto de aplicaciones CAD

Moderador: Moderadores

Responder
oscoag
En prácticas
Mensajes: 8
Registrado: Lun Mar 10, 2008 12:29 pm

Autolisp gestión de capas

Mensaje por oscoag »

Hace tiempo cayeron en mis manos una serie de rutinas autolisp para gestión de capas.
Lamentablemente las he perdido. Recuerdo que había una, que bloqueaba todas las capas menos la que se seleccionaba.
¿Alguien las conoce, para autocad 2008?

Gracias.

Plannerly ™ La plataforma de gestión BIM ™ SmartLeanBIM® © 2021
Plantillas para crear el Plan de Ejecución BIM (BEP). Cumplimiento de la norma ISO-19650
Plan gratuito en el que puedes acceder a todas las plantillas y si al comprarlo introduces el código DELINEACION obtendrás un 10% de descuento
Afga
Jefe
Mensajes: 886
Registrado: Lun Sep 04, 2006 4:10 pm
Contactar:

Mensaje por Afga »

No serian las express de autocad esas herramientas que mencionas?

En el caso de que no fuesen estas, recuerdas como se llamaba para a ver si podemos localizarla.

Un saludo
oscoag
En prácticas
Mensajes: 8
Registrado: Lun Mar 10, 2008 12:29 pm

Mensaje por oscoag »

Gracias Afga, pero no se trata de las express tools.

Creo que la he localizado, pero no funciona en autocad 2008.

Te trannscribo a continuación la secuencia que me aparece en visualisp:

(defun c:blcap()
(command "undo" "begin")
(setq osna (getvar "OSMODE"))
(setvar "OSMODE" 512)
(setq p1 (getpoint "Seleccionar capa a no bloquear"))
(setq sel (ssget p1))
(setq nsel (ssname sel 0))
(setq lent (entget nsel))
(setq cap (cdr (assoc '8 lent)))
(command "-layer" "lo" "*" "u" cap "")
(setvar "OSMODE" osna)
(command "undo" "end")
)

La aplicación en cuestión, funcionaba de tal manera que al seleccionar un objeto de una capa cualquirera, automáticamente bloqueaba el resto de capas, lo que optimizaba mucho el rendimiento de trabajo.
Además recuerdo que había otra que realizaba el proceso inverso, esto es, desbloqueaba todas las capas bloqueadas con una sola órden.


Un saludo y gracias
Afga
Jefe
Mensajes: 886
Registrado: Lun Sep 04, 2006 4:10 pm
Contactar:

Mensaje por Afga »

Prueba con estos pequeños cambios.

Código: Seleccionar todo

;; Desbloquea todas las capas excepto la seleccionada

(defun c:blcap (/ osna sset cap)

(vl-load-com)
(vl-cmdf "_undo" "_begin") 
(setq osna (getvar "OSMODE")) 
(setvar "OSMODE" 512)

(setq sset (entget (car (entsel "\nSeleccione la capa a no bloquear"))))
(setq cap (cdr (assoc 8 sset)))
  
(vl-cmdf "_-layer" "_lock" "*" "_unlock" cap "")
  
(setvar "OSMODE" osna) 
(vl-cmdf "_undo" "_end")
  
) ;_end defun blcap

;; ////////////////////////////////////////////////////////

;; Desbloquea todas las capas

(defun c:ublcap (/ osna)

(vl-load-com)
(vl-cmdf "_undo" "_begin") 
(setq osna (getvar "OSMODE")) 
(setvar "OSMODE" 512)
  
(vl-cmdf "_-layer" "_unlock" "*" "")
  
(setvar "OSMODE" osna) 
(vl-cmdf "_undo" "_end")
  
) ;_end defun blcap
oscoag
En prácticas
Mensajes: 8
Registrado: Lun Mar 10, 2008 12:29 pm

Mensaje por oscoag »

Afga, definitivamente, eres un genio.

Funciona perfectamente.

La única "pega" en que tarda un poco en ejecutarla.

Saludos y muchas gracias.
Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 37 invitados