jueves, 28 de febrero de 2008

ESTE SOY YO

Mi infancia son recuerdos de un vetusto Colegio Diocesano: San Andrés. Anclado en la leonesa comarca berciana de Vega de Espinareda, allí estudié y me hice mayor. Pero donde yo nací es en Friera. Hermosa aldea a orillas del río Sil y atravesada por el río Selmo. Pueblo berciano, desde donde ya se huele a Galicia, aquí aprendí a jugar al escondite, a a la billarda, a pastorear un rebaño de ovejas, a reconocer el canto del cuco, a sembrar para recoger, a trabajar para comer....Mi tío Celestino decía: en esta tierra puta, el que no trabaja no manduca. Y es algo en lo que hasta la fecha no he podido llevarle la contraria. De nombre me pusieron Roberto. González por mi padre y Gómez por mi madre. Si alguien se pregunta cuánto hace de esto, pues....allá por el 1968. Me enamoré de un robot maravilloso llamado Mazinger Z. Lloré desde el primer episodio de Marco hasta el último. Intenté verle las bragas a Heidi poniéndome debajo de la tele. Y me harté de ver pelis del oeste en un cine de colegio, donde los abusones siempre cogían los mejores sitios en la sala. En fin. Muchas cosas en muchos años. Eso es lo que tiene de bueno el hacerse mayor. Supongo.
Información de tu interés: www.selmotopografia.es

AUTOLISP

Este apartado nace para presentar a los interesados, un manual sencillo para el aprendizaje de AutoLisp. El AutoLisp es un lenguaje de programación para AutoCad, que facilita el manejo de Autocad y optimiza el rendimiento. Espero que os sea de utilidad.

Información de tu interés: www.selmotopografia.es



TEMA 1 DE 10
INTRODUCCIÓN

Este tutorial se puede decir que es la 2ª edición personalizada del tutorial realizado por ROBIERZO. La 1º edición ha sido publicada en:
http://foro.3dgazpacho.com/viewtopic.php?t=7882
Se han intentado corregir algunas cosas, añadir otras y eliminar aquellas que carecían de importancia o estaban mal. Se admiten sugerencias y/o correcciones. Como muchos de vosotros ya sabéis, este tutorial no es para los ya iniciados, sino más bien para aquellos que parten de cero. Con esto intento facilitar el acceso al mundo de AutoLisp a todos los interesados. Como novedad principal en esta 2ª edición diremos que se incorporará un nuevo tema, TEMA 10, en el que veremos algunas órdenes de VisualLisp, muy útiles y que no suponen cambiar el chip de AutoLisp ni cosas raras.
Para aquellos que no tienen ni idea, parece obligado decir que:

1º-. AutoLisp es un lenguaje de programación para AutoCad. Es decir, si no trabajas con AutoCad es bastante ilógico aprender una herramienta que sólo funciona bajo AutoCad. A partir de AutoCad 14 nace el VisualLisp, que no es otra cosa que AutoLisp, pero con una cantidad enorme de nuevas funciones que facilitan mucho las cosas.

2º-. Cuantos más conocimientos se tienen de AutoCad más fácil es de elaborar las rutinas en AutoLisp. Al fin y al cabo, se trata de realizar un programita que haga lo que AutoCad no hace, o que hace a medias, o que hace de modo lento y tedioso.

3º-. Las rutinas son ficheros de texto, de extensión "lsp", que normalmente se guardan en las carpetas de acceso directo de AutoCad, normalmente en la carpeta SUPPORT. Yo lo que hago es crearme una carpeta especial para mis rutinas. Simplemente lo que debo hacer antes de abrir una rutina que se aloje en esta carpeta es decirle a AutoCad el nombre de esta carpeta. Para ello vamos a La barra de menús de AutoCad y en Herramientas/Opciones, en la pestaña de Archivos, vamos a la Ruta de búsqueda de archivos de soporte y le añadimos nuestra carpeta de nuestras rutinas. Si echáis un vistazo en la carpeta SUPPORT, que es donde se deben guardar las rutinas por defecto, encontraréis muchos de estos ficheritos con extensión *.lsp. Normalmente ocupan muy poco, pues son ficheros de texto, editables con cualquier editor de texto. Si editáis uno de estos ficheritos, veréis el código original de una rutina normal y corriente de AutoLisp. Muchas veces el autor de una rutina de éstas opta por compilarla. La compilación lo que hace es crear un fichero en lenguaje máquina, mas accesible para nuestro ordenador, que acelera las operaciones de la rutina, y además oculta el contenido real de la rutina. Estos ficheros compilados tienen extensión *.fas o *.vlx. Son exactamente igual que los *.lsp, pero como digo, en lenguaje máquina. De esta manera podemos proteger nuestras rutinas de cambios o intrusismo por parte de otros “piratillas” que quieran hacerlas de su propiedad.

4º-. AutoCad, a partir de su versión 14, incorpora una herramienta a modo de editor, que podéis encontrar en la barra de menús: "Herramientas/AutoLisp/editor de VsualLisp"
Desde aquí se abre el editor de VisualLisp/AutoLisp. Una vez abierto el editor vamos a “Archivo/nuevo archivo” y ya estamos en disposición de empezar a elaborar nuestra nueva rutina. En la ayuda de este editor, en adelante VLIDE, podemos encontrar respuesta a muchos de nuestros problemas, aunque tiene un pequeño problemilla, y es que muchos de los temas que se desarrollan en esta ayuda están en inglés. Pero bueno, para eso están los foros.
El VLIDE, Editor de VisualLisp, es tremendamente útil, aunque también existen otras herramientas para programar en AutoLisp. Dado que el VLIDE está incorporado con AutoCad, yo no lo dudaría y utilizaría esta herramienta. El VLIDE utiliza un sistema de colores de forma automática que aplica de tal forma que diferencia las funciones, las variables, las cadenas de texto y los números. Os resultará fácil comprenderlo. Podéis abrir cualquier fichero *.lsp para echarle un vistazo, eso sí. Sin cambiar nada, de momento.

5º-. Existen 2 máximas en programación:
1ª máxima: Ningún programa funciona a la primera. Es más. Yo diría que ningún programa funciona a la segunda. (Si tú eres de los que lo consigues, enhorabuena). Así que no desesperéis si las cosas no salen a las primeras de cambio.
2ª máxima: Cualquier programa es mejorable. Si creéis que sois unos monstruos de la creación por hacer un excelente programa, sabed que vendrá alguien que lo mejore, simplemente añadiendo una coma a vuestra magnífica rutina. ¿Por qué creéis que AutoCad va por la enésima versión?

6º-. Las maneras de cargar una rutina en AutoCad son dos: 1ª: Desde la barra de menús de AutoCad “Herramientas/AutoLisp/cargar” o 2ª: desde la línea de comandos, escribiendo: (load”nombre rutina”)
Ej.: si tenemos una rutina que se llama prueba.lsp, escribiríamos: (load”prueba”)

Y para terminar esta tediosa introducción, un par de cositas más. Deciros que este temario que voy a desarrollar ha sido elaborado basándose en los siguientes libros, que os recomiendo encarecidamente que compréis:
Autor: José Antonio Tajadura y Javier López Tit: AutoLisp 12,13,14 Edit: Mc Graw Hill Autor:Reinaldo Togores y César Otero Tit: Programación en AutoCad con VisualLisp Ed.: Mc Graw Hill.

Yo lo que sé lo aprendí a base de consultar estos dos manuales y de visitar y asediar con preguntas a los foreros de:
http://www.3dgazpacho.com/ , http://www.hispacad.com/ , http://www.soportecad.org/
Mi más sincero agradecimiento a todas aquellas personas que colaboran incansablemente en estos foros para ayudar y esclarecer dudas a todos los que sabemos menos pero tenemos gran ilusión por aprender.
También puedes hallar información en sitios como:
http://personales.unican.es/togoresr/
http://perso.wanadoo.es/lm2ark
http://www.prexem.blogspot.com/

Vamos a hablar de algunos caracteres especiales que existen en AutoLisp. Hay que destacar dos elementos que son imprescindibles. El paréntesis “( )”y el punto y coma “ ; ” . Todas las funciones o expresiones deben ir precedidas de un punto y coma o metidas entre paréntesis.
1º Punto y coma: ; Sirve para añadir comentarios o aclaraciones que nos ayuden a entender mejor nuestra rutina. Todo lo que vaya detrás del punto y coma lo consideraremos como texto aclaratorio que en realidad lo único que aporta a la rutina es un comentario que ayuda al autor a estructurar adecuadamente la rutina. En realidad podríamos borrarlo y el programa no sufriría alteraciones. Cuando el comentario es muy grande podemos acompañarlo de la barra vertical “” de tal forma que al inicio del comentario aparezca “;” y al final del comentario aparezca “;”. Así evitaremos poner un punto y como al inicio de cada línea.


Ej.: ;Este es un comentario que introduciremos en 3 líneas en nuestra rutina.
Todo lo que queda dentro del punto y coma y la barra vertical es prescindible
para el uso correcto de nuestra rutina.;

2º Paréntesis: ( ) Debe haber el mismo número de paréntesis de apertura que de cierre. De lo contrario se producirá un error. Los utilizaremos para preceder cualquier comando de AutoLisp y para dar fin a dicho comando.
Ej: (GETPOINT pt "\nSeñala un punto")

3º Comillas: " " Se utilizan para encerrar expresiones de texto que queremos que aparezcan en la pantalla, ya sea en la línea de comando o en una ventana. Todo lo que esté entre comillas será considerado como una cadena de texto, incluso los paréntesis, comas, punto y comas.... Como los paréntesis, debe haber un número par de comillas.
También se utilizarán para dar entrada a las expresiones propias de AutoCad, a través de la orden COMMAND.
Ej: (COMMAND "_line" pt '(150 120) "")
Como podemos observar, en este caso, la orden “LINE” la hemos puesto entre comillas, así como el INTRO final, que lo indicamos mediante 2 comillas “”.
4º Punto: . Se usa como punto decimal. No confundir con la coma , que utilizan algunos programas. En AutoLisp siempre se utiliza el punto como indicador de decimal.
5º Apóstrofo: ‘ Equivale al comando (QUOTE). Devuelve el literal de la expresión.
6º Contrabarra: \ Dentro de una cadena de texto podemos incluir una contrabarra seguida de uno de los siguientes caracteres:
\n: Retorno de carro, nueva línea
\r: Return
\t: Tabulador
Es decir. Si escribimos: (GETPOINT pt "\nSeñala un punto") , cuando AutoLisp evalúe esta expresión, antes de escribir "Señala un punto" en la línea de comando, hará un salto de carro para que no aparezcan dos o más expresiones distintas, unas a continuación de otras. Esta combinación \n suele utilizarse mucho en todos los comandos que solicitan al usuario una entrada, a través de la línea de comandos.
7º Cierre admiración: ! Sirve para extraer desde la línea de comandos, el valor de una variable. Ej.: (SETQ radio 5.639)
Si tecleamos !radio en la línea de comandos nos aparecerá 5.639
ACLARACIONES *AutoLisp no distingue entre mayúsculas y minúsculas.
*Es conveniente usar el nombre de las órdenes de AutoCad en inglés. Si trabajamos con AutoCad español y queremos saber el nombre en inglés tecleamos en la línea de comando: (GETCNAME "orden en castellano")
Ej.: (GETCNAME “texto”) y aparece "_text"
El guión bajo que aparece delante de una orden en inglés sirve para que dicha orden la reconozca cualquier versión de AutoCad, sea en castellano o en inglés. Y es con este guión bajo como debemos expresar todas nuestras órdenes desde AutoLisp, para evitar problemas con cambios en nuestra versión de AutoCad.
*AutoLisp siempre trabaja en radianes.
*PI es el número 3.1415926....., por lo que ninguna variable podrá llamarse PI. *T es el símbolo de TRUE, cierto, por lo que ninguna variable podrá llamarse T.
*nil es el símbolo de falso, por lo que ninguna variable podrá llamarse nil. Siempre aparecerá en minúsculas, nunca NIL.

Información de tu interés: www.selmotopografia.es

LA BOLSA O LA VIDA

Corren malos tiempos para los que hemos metido nuestros ahorros en bolsa. Y sin querer ser pesimista, este año lo vamos a tener complicado. Últimamente me dedico al intradía puro y duro. Comprar en fuertes bajadas y vender con un 4% o un 5% de beneficio y listo. aunque no siempre sale bien. Me he quedado atrapado en CODERE a 13,50. Espero salir pronto.

Información de tu interés: www.selmotopografia.es