3.4. ENTMAKE-ando Objetos NO-GRÁFICOS

Del Newsgroup comp.cad.autocad:

Benoit Bissonnette escribió:
>
> Hola, He estado considerando si es posible crear/modificar una
> capa, un
estilo de cotas o un estilo de texto con una llamada a
> entmake. He intentado
lo siguiente, y por supuesto, no funciona:
>
> (entmake '((100 . "AcDbSymbolTableRecord")
> (0 . "LAYER")
> (2 . "TEST_1")
> (70 . 64)
> (62 . 5)
> (6 . "CONTINUOUS")
> )
> ) ;entmake
>
> Cualquier ayuda sería apreciada. Gracias!
>
> Benoit Bissonnette

La cuestión es interesante. Por mi parte nunca lo había intentado. Así que estuve revisando la cosa un poco. Aquí está la respuesta que hube de enviarle:

He estado repasando mis entmakes. ¡Pues sí, se pueden crear capas con entmake! Antes debes obtener la lista patrón con entget, utilizando el nombre de objeto de la tabla como argumento. Este nombre de objeto que corresponde a la tabla puede leerse empleando la función tblobjname:

(entget (tblobjname "LAYER" "cualquier_nombre_de_capa"))

Esta función AutoLISP se introdujo con la versión 13.

La siguiente rutina creará una capa con el nombre que introduzca el usuario:

(defun c:mlay ()
(setq laynam (getstring "\nNombre de la capa: "))
(entmake
(list
'(0 . "LAYER")
'(5 . "28")
'(100 . "AcDbSymbolTableRecord")
'(100 . "AcDbLayerTableRecord")
(cons 2 laynam)
'(70 . 64)
'(62 . 7)
'(6 . "CONTINUOUS")
)
)
)

A tu código parece faltarle solamente la lista: '(100 . "AcDbLayerTableRecord")

> (entmake '((100 . "AcDbSymbolTableRecord")
> (0 . "LAYER")
> (2 . "TEST_1")
> (70 . 64)
> (62 . 5)
> (6 . "CONTINUOUS")
> )
> )

Espero que esto te sea de utilidad

© Reinaldo Togores, 1997.