Bien, a partir de ahora vamos a dar un paso más y vamos a ingresar a la esencia de todo programa, manejar datos variables, pero primero vamos a comenzar entendiendo ¿por qué lo es?.
AutoCAD quizá es uno de los programas en los que los datos con más variables que cualquier otro, es por ello por lo que usaremos nuevas funciones que nos permitirán solicitar datos al usuario, estos datos los almacenaremos en variables para realizar cálculos o para pasarlos a las llamadas de las funciones de comandos.
Vamos a empezar con la siguiente línea de código:
(command "_circle" "0,0" "10")
Carga un nuevo archivo de dibujo en blanco y escribe eso en la línea de comandos de AutoCAD y mira que pasa.
Si no puedes ver nada entonces realiza un zoom extents y podrás observar que es lo que haz creado.
Se trata de un círculo de 1 unidad de dibujo de diámetro y ¿cómo fue dibujado?: Se dibujó automáticamente porqué en la línea de código anterior, usaste la función command (de color azul) para indicar a AutoCAD que ejecutara un comando.
Analicemos juntos la línea de código:
La función command de AutoLisp, te ayuda a ejecutar comandos de AutoCAD, en este caso estamos «ordenando» a AutoCAD que dibuje un círculo y se lo estas indicando directamente escribiendo «_circle» después de la función pero AutoCAD, para dibujar el círculo necesita más datos, como por ejemplo, ¿dónde estará ubicado?, ¿el radio?, es por ello por lo que se ha indicado «0,0» «10», para indicar que el centro del círculo será en la coordenada 0,0 y el radio será de 10 unidades de dibujo.
Como puedes ver, has creado tu segundo comando. Pero esta vez lo has hecho con una línea sencilla de código usando una función llamada «command», la cual necesita de datos, estos datos los llamamos en programación «Argumentos» y todos argumentos son datos de tipo texto (constantes) por eso van entre comillas (“”).
¿Qué te pareció?, has creado un círculo con pura programación, lo único malo es que este círculo siempre será de 1 unidad de diámetro y estará ubicado en la misma ubicación.
DATOS VARIABLES
Ahora sazonaremos un poco esta rutina y le agregaremos otras funciones para permitir que este círculo sea dibujado por el usuario donde lo desee y con un diámetro variable.
Escribe estas líneas de código a continuación:
(command "_circle"
(getpoint "\nIndica el punto centro del nuevo círculo: ")
(getreal "\nIngresa el radio del nuevo círculo: ")
)
¿Observas que estamos reemplazando los datos constantes por funciones?.
Como habrás podido observar, ahora la rutina que has escrito te solicita datos para poder dibujar el circulo, con estos datos dibujará un círculo en cualquier ubicación y con cualquier diámetro.
¿Y como pudo hacer eso?, si observas el código, en él encontrás que has utilizado dos funciones adicionales (getpoint y getreal), estas son llamadas funciones de “solicitud de datos al usuario”, funciones que veremos mas a detalle más adelante.
PRÁCTICA:
Practica ahora escribiendo las siguientes 2 líneas de código en la línea de comandos de tu programa de CAD (si deseas puedes copiar y pegar el código, pero si lo que deseas es aprender a programar, te recomiendo que escribas el código, no copies ni pegues, deja eso para los piratas):
1. Primera línea:
(command "_line" "0,0" "10")
2. Segunda línea *:
(command "_line"
(getpoint "\nIndica el primer punto de la línea: ")
(getpoint "\nIndica el segundo punto de la línea: ")
)
* Puedes escribir todo esto de forma seguida en una sola línea de código o en varias líneas (presionando Enter para una nueva línea) como el ejemplo.
Funciones que se han visto en este tema:
ALCANCE DEL SIGUIENTE TEMA:
¿Qué te parece si comenzamos a usar variables que almacenen los datos que hemos solicitados al usuario?, estos datos almacenados los usaremos para realizar algunos cálculos, a su vez estos cálculos los usaremos como datos para la ejecución de los comandos.
En el siguiente post, vitaminarizaremos ( ¿? creo que no existe esta palabra) la rutina anterior convirtiéndola en un nuevo comando de AutoCAD, para ello usaremos una nueva función denominada “defun”.
gracias por la lección he aplicado lo aprendido y al tratar de realizar algo simple lo combine con alert y me salió un comando rtos el cual transforma en cadena de texto el valor ingresado
(alert (rtos(getreal «\nIngresa un numero»)))