Del Newsgroup comp.cad.autocad:
Benoit Bissonnette escribió:
>
> Hola, He estado considerando si es posible crear/modificar una
> capa, unestilo de cotas o un estilo de texto con una llamada a
> entmake. He intentadolo 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óntblobjname
:
(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.