top of page

Tengo que colocar algo de AutoLisp.

"AutoLISP es un lenguaje de programación derivado del lenguaje Lisp. Es utilizado para generar rutinas orientadas al uso específico de AutoCAD y sus derivados. Permite desarrollar programas y funciones para el manejo de entidades del tipo gráfico." Leer mas...

Como me da flojera escribir ( pero no leer), les dejo algunos links.

 

¿Que es Lisp?

http://www.davidam.com/docu/lisp/lisp1.pdf

http://www.ecured.cu/index.php/Lisp

 

Foro oficial en Autodesk Inc.

http://forums.autodesk.com/t5/Visual-LISP-AutoLISP-and-General/bd-p/130

 

Foro en español.

http://www.hispacad.com/foro/viewtopic.php?t=30924

 

¿Cual es la aportacion?

 

     Despues de haber leido las referencias anteriores ya sabemos que Autolisp basa su programacion en listas, que se pueden agrupar en funciones. Funciones que pueden ser nativas o creadas por el usuario.

 

Iniciemos por las funciones nativas, las cuales son las que ya existen en la sintaxis del lenguaje.

 

Seleccionar Objeto(s).
Funcion SSGET
 
Se puede usar sin parametros.
(setq Conjunto (ssget))
 
(setq Conjunto (ssget "X"))
Selecciona todos los objetos en el archivo.
 

(setq Conjunto (ssget "P"))
Selecciona todos los objetos de la seleccion anterior.
 
(setq Conjunto (ssget "L"))
Selecciona el ultimo objeto creado en el dibujo.
 

(setq Conjunto (ssget "W" p1 p2))
Selecciona los objetos que se encuentren dentro de la ventana conformada por los vertices p1 y p2.
 
(setq Conjunto (ssget "C" p1 p2))
Selecciona los objetos que se encuentren dentro o atraviesen la ventana conformada por los vertices p1 y p2.
 

(setq Conjunto (ssget "WP" lista_puntos))
Selecciona los objetos que se encuentren dentro de la ventana conformada por los vertices de la lista de puntos.
 
(setq Conjunto (ssget "CP" lista_puntos))
Selecciona los objetos que se encuentren dentro o atraviesen la ventana conformada por los vertices de la lista de puntos.
 
(setq Conjunto (ssget "F" lista_puntos))
Selecciona todos los objetos que se cruzen con el borde formado por una lista de puntos.

 

Selecciona todos los elementos que cumplan los parametros de filtro.
(ssget "X"(list;;;;;;;;;;;;;;;;;;;;;Creamos una lista
      (cons 0 "CIRCLE");;;;;;;;;Construimos el par punteado nombre del Objeto "CIRCLE"
      (cons 8 "Construido");;Construimos el par punteado nombre del Layer ""Construido"
      (cons 62 1);;;;;;;;;;;;;;;;;;Construimos el par punteado nombre del Color Rojo
      );;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Cerramos la lista
);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Cerramos la seleccion.
Esta se ejecuta de manera automatica debido al argumento "X".
 
Otra forma de expresion del ejemplo anterior.
(ssget "X" '((0 . "CIRCLE")
         (8 . "Construido")
         (62 . 1)
        )
)

 

Operadores relacionales y booleanos.
(ssget "x" (list;;;;;;;;;;;;;Creamos una lista
       (cons 0 "TEXT");;;Construimos el par punteado nombre del Objeto "TEXT"
       (cons –4 "<=");;;;;;;Construimos el par punteado del operador "Menor que o igual"
       (cons 40 2.5);;;;;;;Construimos el par punteado Altura igual a 2.5
       );;;;;;;;;;;;;;;;;;;;;;;;;;Cerramos la lista
);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Cerramos la funcion

El operador relacional, que ha de ser una cadena, se aplica a la condición que le siga en la lista. En este ejemplo, SSGET selecciona entidades de texto de altura (asociativo 40) sea menor o igual ("<=") a 2.5.

 

 
Operador relacional    Descripción
____________________________________________________________
    "*"         Cualquier valor (siempre verdadero)
    "="         Igual que
    "!="        Distinto de
    "+/="        Distinto de
    "<>"        Distinto de
    "<"        Menor que
    "<="        Menor o igual que
    ">"        Mayor que
    ">="        Mayor o igual que
    "&"        AND binario (sólo grupos de números enteros)
    "&="        Igual a enmascarado binario (sólo grupos de números enteros)

 

 

Cuando los objetos ya estan seleccionados y la variable PICKFIRST activa.
(ssget "_I")  


De igual forma se le pueden aplicar filtros, por ejemplo
Código:
(ssget "_I" '((0 . "LINE") (62 . 5)))

 

 

Perfil del Autor

  • b-facebook
  • Twitter Round
  • b-youtube

Project_DivinityEthereal_Void

bottom of page