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íaintentado. Así que estuve revisando la cosa un poco. Aquíestá la respuesta que hube de enviarle:

He estado repasando mis entmakes. ¡Pues sí, sepueden crear capas con entmake! Antes debes obtener la listapatrón con entget, utilizando el nombre de objeto de la tablacomo argumento. Este nombre de objeto que corresponde a la tabla puede leerseempleando 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 elusuario:

(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.