Sie sind auf Seite 1von 37

Publicado el 17 may.

2015
Este tutorial nos enseara los componentes de la programacion en Autolisp, util para continuar
con los demas temas.
Realiza un Me gusta, continuare subiendo videos
Mejores comentarios

Rojo RojoHace 3 meses


pasame tu wattsapp,
Responder

Jonathan VenegasHace 4 das


Hola Rojo rojo, te envio mi whatsapps 051951523564, soy de Peru
Responder

Rojo RojoHace 4 das


Gracias Jonathan Venegas, soy de Mxico, 52 322 128 0920
Responder

Dictamos cursos de: -AUTOLISP -AUTOCAD -INVENTOR -CADWORX -LANTEK -TEKLA


-DIBUJO TEC. CALDERERIA
Consultas a: proyectatustalentos@gmail.com facebook.com/proyectatustalentos
es comentarios

Angel DominguezHace 2 meses


Saludos Abel. Mi nombre es Angel Dominguez buenos video tutoriales gracias por ese gran
apoyo.
Responder

Abel MoranHace 2 meses


Muchas gracias tambin.
Responder
Paula SeguraHace 3 meses
JIJIJIJIJI YO PUES TENGO UN YATE ..PERO DE JUGUETE..PROFE TODAVIA ESTUDIO ,
PERO DIGAME APROXIMADAMENTE CUANTO COSTARIA ESE VIDEO...
Responder

Abel MoranHace 2 meses


Es voluntario. Escrbame a amoranc2@gmail para ms info.
Responder

Anderson Quispe VilcaHace 7 meses


Muchas Felicidades:
Responder

Abel MoranHace 2 meses


Gracias!
Responder

DanielTV TODAVHace 1 ao
que mal, era justo lo que andaba buscando hace mucho y cuando lo encuentro, tiene precio.
Responder

Abel MoranHace 2 meses


Es voluntario. Escrbame a amoranc2@gmail para ms info.

comentarios
JAIDENHace 10 meses
Profesor buen dia, soy estudiante de ing civil, y este ejercicio ayuda bastante para el diseo de
planos, me gustara saber como puedo reemplazar el circulo por una letra , es decir en vez del
numero dentro del circulo, poner una letra antes de la enumeracin ejem: A1.. A2.... A3 .. .. le
agradezco su pronta colaboracin, un saludo desde COLOMBIA...
Responder 1

Abel MoranHace 8 meses


Para eso hay que usar la funcin ASCII. Saludos a la querida gente de Colombia.
Responder

Frankb932Hace 1 ao
Muy bien explicado! Quisiera poder agregarle una linea al circulo para poder indicar a que
objeto hace referencia ese numero. Como seria el cdigo en este caso? Muchas gracias.
Responder 1

Abel MoranHace 11 meses


+Frankb932 No es complicado, pero s requiere varios pasos para explicar el uso de
herramientas geomtricas.
Responder

Alfonso ViveroHace 1 ao
gracias, por este video, tengo un block con attributes pero es un ellipse y quisiera una funsion
de lisp para que cad que lo insert se incremente como en este video, si pudieras aser un video
con esta situasion. Gracias.
Responder 1

Francisco MartinezHace 2 aos


que tal prof., estoy en mxico, tengo la intensin de aprender a programar en lisp, podemos
trabajar a distancia y cuanto me costara?
Responder 1

Abel MoranHace 1 ao
Escrbame a amoranc2@gmail.com
Responder

Alejandro Espiritu TolentinoHace 21 horas


COMO CREAR LO ARCHIVOS .FAS, GRACIAS
Responder
TOPOGRAFIA INDUSHHace 1 da
profesor una consulta se puede editar un lisp creado
Responder

Pablo SepulvedaHace 3 semanas


Muy bien explicado... muchas gracias!
Responder

Abel MoranHace 3 semanas


Gracias por ver!
Responder

Gucho 3441Hace 1 mes (editado)


Buena tarde profesor Abel desde Colombia, estoy intentando incursionar en Autolisp, todo
perfecto hasta cuando intento ubicar el circulo, pues en su lugar me sale un pequeo triangulo
el mensaje NIL y el circulo no se dibuja. Gracias por la generosa labor. He intentado encontrar
algo de informacion al respecto por la red pero no he tenido exito. Mil gracias de nuevo por
compartir su saber.
Responder

jose Alonso soto elizondoHace 1 mes


MUCHAS GRACIAS PROFE.. SALUDOS DESDE MONTERREY N.L. MEXICO
Responder

wily llasaHace 1 mes


ING. ENVIARLO POR FAVOR TU AUTO LISP. MUCHAS GRACIAS
Responder

Martin GutierrezHace 1 mes


Hola, una pregunta. Sucede que no me sirve la configuracin, tengo autocad 16 en espaol. lo
que pasa es que me pone a escribir el texto mas no me lo da automtico. le agrade seria su
respuesta gracias.
Responder

Abel MoranHace 1 mes


Use "-CIRCLE" en vez de "CIRCLE", con el signo -menos. Igual para los dems comandos. El
idioma es un problema.
Responder
Martin GutierrezHace 1 mes
OK Muchas gracias- saludos desde Colombia
Responder

willam floresHace 2 meses


Hola, sabes cual es el comando para darle el color o como lo haces?
Responder

Abel MoranHace 2 meses


Lo hice con ACAD_COLORDLG
Responder

joetron82Hace 2 meses
Buen Video Tutorial.
Responder

Abel MoranHace 2 meses


Muchas gracias!
Responder

Kevin Polo MantillaHace 4 meses


y en el mtext que nos pide primero o como lo indico porque me pide coordenadas?
Responder

Abel MoranHace 2 meses


Es que no es MTEXT. Es -TEXT
Responder

Alvaro Contreras GuerraHace 5 meses


tengo Autocad 2013 y para utilizar un DEMO debo crearlo primero se puede igual con LISP?
Responder

Abel MoranHace 2 meses


No comprendo bien, un DEMO? Pero por siaca, todo se puede en AutoCAD 2013.
Responder
Alvaro Contreras GuerraHace 5 meses
Excelente clase, pregunto: como hacer para agregar un bloque de bolla para ejes y como
agregar letras en lugar de nmeros?
Responder

Abel MoranHace 4 meses


Vea el video No. 2, sin bloques pero queda igual. Tiene precio.
Responder 1

Jhon CaonHace 5 meses


buenas tardes, muy buen vdeo, pero sale muy grande, como podra cambiar el valor del texto y
del circulo por un decimal puede ser .05 ya que 1 es aun grande, gracias nuevamente...
Responder

Abel MoranHace 2 meses


Luego de revisar la lgica, puede cambiarle todo lo que desee. Eso s, es mejor 0.5 que .5
Responder

Oscar AmayaHace 6 meses


gracias por la informacio profe como ago para que me pida desde que numero iniciar
Responder
Ver las 5 respuestas

Abel MoranHace 3 meses


Tiene razn. Bien ah. Gracias.
Responder

Abel MoranHace 2 meses


Jaja!!! tiene razn, bien ah.
Responder

NOEL GARCIAHace 6 meses


Muy buen video. Pero como puedo hacer lo mismo y que sea un bloque con atributos?
Responder

Abel MoranHace 6 meses


Sera ms fcil, ya que basta con insertar el bloque usando "-INSERT". Y es ms trabajoso
hacer que el mismo programa sea el que cree el bloque con el atributo. All hay que usar "-
ATTRIB" y construir el bloque.
Responder

luis leivaHace 7 meses


Muy buena enseanza. Gracias desde Chile.
Responder

Abel MoranHace 6 meses


Muchas gracias.
Responder

Publicado el 26 mar. 2014

Para facilitar la medicin de cualquier linea o polilinea en el espacio de trabajo 2D de Autocad,


les dejo un lisp que facilita la realizacin de este trabajo, el cual pueden descargar en el
siguiente enlace:
#######################################################

Tutorial en mi Blog:

http://goo.gl/O7h5f4

#######################################################
El procedimiento de uso:
1. Cargar el lisp.
2. Digitar el comando de iniciacin del lisp: "MLIN"
3. Seleccionar las lineas o polilineas a medir.
4. Enter.
5. Las lneas son medidas individualmente y el resultado aparece en pantalla, y la longitud total
aparece en la linea de comando.

HECHO PARA SER USADO EN AUTOCAD EN INGLES!


Categora
o Formacin
Licencia
o Licencia de YouTube estndar
PARTE TERCERA
MDULO ONCE

[1/12]

Programacin en AutoLISP

ONCE.1. INTRODUCCIN
A parte de todo lo visto en cuestin de personalizacin, AutoCAD 14 ofrece
al usuario la posibilidad de crear programas y aplicaciones verticales
totalmente funcionales. Estos programas podrn ser distribuidos por el
creador, eso s, siempre corrern bajo AutoCAD.
La capacidad para hacer un programa nos lleva mucho ms all de la simple
personalizacin de mens o patrones de sombreado, nos lleva a un mundo
totalmente integrado en AutoCAD desde donde podremos disear nuestros
propios comandos, manipular dibujos o incluso acceder a la Base de Datos
interna del programa.
AutoCAD 14 proporciona diversas interfaces de programacin de
aplicaciones que vamos a comentar ahora de forma somera.

ONCE.1.1. AutoLISP, ADS, ARX, VBA y


Visual Lisp
ONCE.1.1.1. Entorno AutoLISP
Dentro de lo que es la programacin existen diversas interfaces para crear
programas paraAutoCAD. El ms antiguo y, quiz el ms utilizado hasta
ahora, es AutoLISP. AutoLISP es una adaptacin del lenguaje de
programacin LISP que forma parte ntima e integrada con AutoCAD, esto
es, AutoCAD posee internamente un propio intrprete de LISP.
El lenguaje LISP est basado en lo que se denominan listas de smbolos. Es
un lenguaje de alto nivel (como BASIC) y que, en principio, fue diseado
para la investigacin en el campo de la inteligencia artificial. AutoLISP es un
lenguaje evaluado, es decir, est a un paso entre los lenguajes
interpretados, por un lado, y los lenguajes compilados, por otro.
Como hemos dicho, AutoCAD provee al usuario de un propio intrprete de
AutoLISP interno. Este intrprete, al que habra que llamarle evaluador, se
encarga precisamente de evaluar las expresiones incluidas en el cdigo
fuente de un programa. Estos programas pueden introducirse directamente
desde la lnea de comandos de AutoCAD, o bien cargarse en memoria a
partir de un programa completo escrito es un archivo de texto ASCII. Dichos
archivos tendrn habitualmente la extensin .LSP.
De la programacin en AutoLISP hablaremos largo y tendido en
este MDULO.

ONCE.1.1.2. Entorno ADS


ADS (AutoCAD Development System) es un entorno de programacin el
lenguaje C paraAutoCAD. Las aplicaciones programadas de esta manera
han de ser llamadas desde un propio programa AutoLISP, ya
que AutoCAD las considera como funciones externas.
El cdigo fuente de estas aplicaciones ha de escribirse y compilarse en un
compilador externo de C, es decir, AutoCAD no provee de un entorno de
programacin para estas aplicaciones, como ocurre con AutoLISP o VBA. El
programa objeto ejecutable .EXE (normalmente), producto de la compilacin
del fuente, podr ser cargado desde AutoCAD.
NOTA: Este entorno est ya obsoleto en la versin 14 y los programas
desarrollados en l debern adaptarse a ARX mediante el entorno ADSRX.

ONCE.1.1.3. Entorno ARX


ARX (AutoCAD Runtime Extension) es desde la versin 13 de AutoCAD otro
entorno de programacin C que posibilita, al contrario que ADS, una
comunicacin directa de las aplicaciones con AutoCAD. De esta forma, no
es necesaria la intervencin de AutoLISP como intermediario. La aplicacin
Render, en RENDER.ARX, es un ejemplo de programa en este formato.
La no integracin de un entorno de programacin en C dentro del software
de AutoCAD ha hecho que su utilizacin para desarrollar aplicaciones para
el programa no est muy extendida. Es necesario, pues, adquirir un
compilador de C complementario para poder desarrollar en este lenguaje
aplicaciones ADS o ARX, lo que no ocurre con AutoLISP o VBA. Por este
motivo, tampoco se tratar en este curso.
NOTA: En la versin 14 de AutoCAD existe el comando ARX para cargar,
descargar y obtener informacin sobre aplicaciones ARX sin necesidad de
utilizar AutoLISP.

ONCE.1.1.4. Entorno VBA


VBA (Visual BASIC for Applications) es un novedoso entorno, incluido en la
versin 14, que parece hacer furor entre los programadores ltimamente. La
programacin en Visual BASIC para Windows viene siendo, desde hace unos
aos, una de las herramientas ms verstiles y, a la vez, ms sencillas y
utilizadas en el mundo de la programacin informtica. El usuario puede
desarrollar sus programas en un compilador Visual BASIC externo o utilizar
el propio mdulo VBA que incluye AutoCAD 14. Este mdulo contiene la
sintaxis del lenguaje, un depurador y un entorno de desarrollo. As, el
programador, puede programar rutinas VBA e ir probndolas en una sesin
de AutoCAD mientras se van depurando.
VBA ser ampliamente tratado en el MDULO DOCE.

ONCE.1.1.5. Entorno Visual Lisp


A partir de la Versin 14 existe un nuevo entorno de desarrollo denominado
Visual Lisp que permite realizar aplicaciones en AutoLISP de una manera
ms rpida y efectiva. Este entorno proporciona herramientas para
desarrollar y depurar las rutinas y compilarlas como aplicaciones ARX.
Tambin dispone de su propio evaluador, que emula al de AutoLISP, adems
de un completo control de codificacin y seguridad de las rutinas creadas.
El entorno de Visual Lisp es un mdulo que se carga bajo demanda. No est
incluido en el propio ncleo de AutoCAD, como ocurre con el evaluador de
AutoLISP. El nuevo conjunto de funciones incorporadas en Visual Lisp
permite trabajar en diferentes reas y niveles que incluyen funciones
aadidas de AutoLISP, funciones de acceso al sistema operativo y E/S de
archivos, funciones de carga y vinculacin de objetos y bases de datos,
almacenamiento directo de listas en un archivo de dibujo, acceso al conjunto
de objetos ActiveX de AutoCAD y tecnologa basada en ObjectARX que no
necesita la presencia de AutoCAD para su ejecucin.
De esta manera, el entorno de Visual Lisp permite a los desarrolladores la
programacin en ARX y ActiveX.

ONCE.2. CARACTERSTICAS DE
AutoLISP
Como ya hemos dicho, LISP (LISt Processing) es un lenguaje de
programacin que se remonta a los aos cincuenta y que fue desarrollado
para la investigacin de inteligencia artificial. La base de su funcionamiento
es el manejo de listas, en lugar de datos numricos como otros lenguajes.
AutoLISP es una implantacin LISP en AutoCAD.
Una lista es un conjunto de smbolos. El smbolo es la unidad mnima bsica
de una lista, y puede ser una variable, una funcin inherente a AutoLISP,
una funcin de usuario, un dato constante... Las listas elaboradas mediante
smbolos son evaluadas y procesadas para obtener un resultado.
Para programar en AutoCAD, este lenguaje proporciona una serie de
posibilidades como la facilidad para manejar objetos heterogneos
(nmeros, caracteres, funciones, entidades u objetos de dibujo, etctera), la
facilidad para la interaccin en un proceso de dibujo, la sencillez del lenguaje
y su sintaxis, y otras que hacen de l una herramienta muy til y sencilla de
manejar y aprender.
Como tambin hemos dicho ya, el lenguaje AutoLISP (y LISP) es un lenguaje
evaluado, y no interpretado o compilado. Los lenguajes interpretados son
ledos palabra a palabra por el ordenador, al ser introducidas, y cada una de
ellas convertida a lenguaje mquina. Esto hace que sea sencilla su edicin y
deteccin de errores de sintaxis u otros; por el contrario, hace que sean muy
lentos (ejemplo: Microsoft QBASIC). Los cdigos de los lenguajes
compilados son escritos por completo y, antes de su ejecucin final, es
necesario compilarlos, convirtindolos as en cdigo fuente ejecutable y
comprensible por la mquina. Este tipo de lenguajes hace que su ejecucin
sea ms rpida y pura pero, en contra, resulta ms difcil su depuracin
(ejemplos: Microsoft QuickBASIC o Borland C++).
Los lenguajes evaluados AutoLISP estn a caballo entre unos y otros. No
son tan rpidos como los compilados pero son ms flexibles e interactivos
que estos. Es posible, por ejemplo, construir un programa con AutoLISP que
sea capaz de modificarse a s mismo bajo determinadas circunstancia; sta
es la base de los llamados Sistema Expertos.
El mecanismo evaluador de AutoLISP es la propia lista: conjunto de smbolos
separados entre s por, al menos, un espacio blanco y encerrados entre
parntesis. Esto es, desde el momento que existe una expresin encerrada
entre parntesis, AutoLISP la evala e intenta ofrecer un resultado.
AutoLISP es un subconjunto del lenguaje Common LISP. Como ha sido
diseado para trabajar desde AutoCAD, se han seleccionado las
caractersticas de LISP ms adecuadas para este fin y, adems, se han
aadido otras nuevas, sobre todo en la manipulacin de objetos de dibujo,
acceso a la Base de Datos de AutoCAD e interaccin grfica general.
Los programas en AutoLISP son simples archivos de texto ASCII, con la
extensin habitual .LSP. Una vez hecho el programa, habremos de cargarlo
desde el propio editor de dibujo de AutoCAD. Tambin es posible escribir
lneas de cdigo AutoLISP desde la lnea de comandos del programa, como
veremos en breve.
Es posible la creacin de rdenes nuevas que llamen a programas en
AutoLISP, as como la redefinicin de comandos propios de AutoCAD, como
por ejemplo LINEA o DESPLAZA. Pero una de las ms importantes
potencialidades de AutoLISP es el acceso directo a la Base de Datos interna
de AutoCAD. Toda la informacin de un dibujo, como deberamos saber, no
se guarda como objetos de dibujo en s, o sea, cuando salvamos un .DWG, en
disco no se guardan los crculos, lneas, etctera, sino una relacin o base de
datos donde se dice dnde aparece un crculo o una lnea, con qu
coordenadas de origen y final, con qu radio o dimetro, tipo de lnea,
color... Podremos pues desde AutoLISP acceder a dicha base de datos para
modificarla, editarla o para exportar datos, por ejemplo, a una base de datos
externa.

ONCE.2.1. Tipos de objetos y datos en


AutoLISP
Atendiendo a sus caractersticas podemos definir varios tipos de objetos y
datos en AutoLISP, que son los de la tabla siguiente:
Objeto o dato ------------------------ Descripcin
------------------------------------------------------------------------------------------------------------
Lista ---------------------------------- Objeto compuesto de un parntesis de
aper-
--------------------------------------- tura, uno o ms elementos separados
por, al
--------------------------------------- menos, un espacio en blanco y un
parntesis
--------------------------------------- de cierre. Los elementos de una lista
pueden
--------------------------------------- ser smbolos, valores concretos
(constantes
--------------------------------------- numricas o cadenas) o listas incluidas.
Por
--------------------------------------- ejemplo: (DEFUN seno (x) (SETQ xr
(* PI (/x 180.0))) (SETQ
--------------------------------------- s (SIN xr))), se trata de una lista que
contiene cinco elemen-
--------------------------------------- tos: una funcin inherente de AutoLISP
--------------------------------------- DEFUN, un nombre de funcin de usuario
--------------------------------------- seno, una lista con un nico
elemento (x) y
--------------------------------------- dos listas SETQ con tres elementos cada
una.
Elemento ----------------------------- Cualquiera de los componentes de una
lista.
Smbolo ------------------------------- Cualquier elemento de una lista que no
sea
--------------------------------------- una constante. Puede ser el nombre de
una
--------------------------------------- variable, un nombre de funcin definida
por
--------------------------------------- el usuario o un nombre de funcin de
AutoLISP.
Enteros ------------------------------- Valores numricos enteros, sin punto
deci-
--------------------------------------- mal. Internamente son nmeros de 32
bits
--------------------------------------- con signo, sin embargo, en la
transferencia
--------------------------------------- de datos con AutoCAD son valores de
16 bits
--------------------------------------- con signo, comprendidos por lo tanto
entre
--------------------------------------- -32768 y 32767.
Reales -------------------------------- Valores numricos con coma flotante de
do-
--------------------------------------- precisin. Esto representa un mnimo de
14
--------------------------------------- dgitos representativos. Se pueden
expresar
--------------------------------------- en notacin cientfica exponencial
mediante e o E.
Cadenas ----------------------------------- Valores textuales que contienen
cadenas de
--------------------------------------- caracteres en cdigo ASCII. Deben ir
entre
--------------------------------------- comillas y se permite una longitud
mxima
--------------------------------------- de 132 caracteres. Se pueden construir
cadenas
--------------------------------------- mayores como veremos.
Descriptores de archivo --------------- Valores que representan un archivo
abierto
--------------------------------------- para lectura o escritura.
Nombres de objetos de dibujo ---------- Valores que representan el
"nombre" hexade-
--------------------------------------- cimal de un objeto de la Base de Datos.
Conjuntos designados de AutoCAD ----- Valores que representan un
conjunto de se-
--------------------------------------- leccin de objetos de dibujo.
Funciones de usuario --------------------- Smbolo que representa el nombre
de una
--------------------------------------- funcin definida por el usuario.
Funcin inherente o subrutina ----------- Smbolo con el nombre de una
funcin prede-
--------------------------------------- finida de AutoLISP. Se suelen denominar
con
--------------------------------------- la abreviatura inglesa subrs. Pueden ser
in-
--------------------------------------- ternas o externas.

ONCE.2.2. Procedimientos de
evaluacin
La base de todo intrprete de LISP es su algoritmo evaluador. ste analiza
cada lnea de programa y devuelve un valor como resultado. La evaluacin
slo se realizar cuando se haya escrito una lista completa y sta podr ser
cargada desde un archivo de texto o tecleada directamente en la lnea de
comandos de AutoCAD 14.
El primer elemento de la lista es comparado con todos los nombres de
funciones inherentes base o subrs internas de AutoLISP, con todos los
nombres de subrs externas cargadas desde aplicaciones ADS o ARX y en su
caso con todos los nombres de funciones de usuario cargadas en memoria.
Si el nombre es reconocido, se realiza la evaluacin de la expresin de
AutoLISP. Esta puede consistir en asignar un valor a una variable, cargar en
memoria una funcin de usuario, escribir un resultado en pantalla o en un
archivo, dibujar un objeto grfico, etc.
El primer elemento de la lista debe ser por tanto un nombre de funcin. El
resto de elementos se consideran argumentos de dicha funcin. La
evaluacin en AutoLISP se realiza de acuerdo a las siguientes reglas.
Primera:
Las listas se evalan quedando determinadas por el primer elemento. Si ste
es un nombre de funcin inherente o subrutina, los elementos restantes de
la lista son considerados como los argumentos de esa funcin. En caso
contrario se considera como un nombre de funcin definida por el usuario,
tambin con el resto de elementos como argumentos. Cuando los elementos
de una lista son a su vez otras listas, stas se van evaluando desde el nivel
de anidacin inferior (las listas ms "interiores"). El valor resultante en cada
evaluacin de las listas "interiores", es utilizado por las listas "exteriores".
Por ejemplo:
(SETQ sx (SIN (* PI (/ x 180.0))))
La lista ms "interior" contiene como primer elemento el nombre de la
funcin de AutoLISP /que realiza el cociente o divisin del siguiente
elemento entre los restantes. La evaluacin de dicha lista devuelve el
resultado del cociente, en este caso el valor contenido en la
variable xdividido entre el nmero real 180.0. Dicho valor es utilizado como
elemento en la lista circundante que empieza por la funcin de
AutoLISP * que realiza una multiplicacin o producto. Esta lista se evala
ofreciendo como resultado el producto de PI (3,14159) por el valor anterior.
A su vez el resultado interviene como argumento en la lista que empieza por
la funcin de AutoLISP SIN, que es evaluada obtenindose el seno. Este
interviene por ltimo como argumento de la lista ms exterior que empieza
por la funcin de AutoLISP SETQ , cuyo resultado es asignar o almacenar en
la variable sx el valor del seno. Este valor es devuelto por la lista
de SETQ como resultado final.
Segunda:
Puesto que cada lista contiene un parntesis de apertura y otro de cierre,
cuando existen listas incluidas en otras, todos los parntesis que se vayan
abriendo deben tener sus correspondientes de cierre. Si se introduce desde
el teclado una expresin en AutoLISP a la que falta por cerrar algn
parntesis, se visualiza un mensaje del tipo n> donde n es un nmero que
indica cuntos parntesis faltan por cerrar. Se pueden introducir por teclado
esos parntesis y subsanar el error. Por ejemplo:
Comando: (SETQ sx (SIN (* PI (/ x 180.0))
2> ))
0.523599

Tercera:
Tambin es posible evaluar directamente un smbolo (extraer por ejemplo el
valor actual contenido en una variable), introduciendo por teclado el signo
de cerrar admiracin seguido del nombre del smbolo. Esta evaluacin se
puede producir incluso en mitad de un comando. Por ejemplo, para
suministrar como ngulo para un arco el valor contenido en la variable x, se
responde a la solicitud de AutoCAD con !x. Por ejemplo:
Comando: !sx
0.523599

Cuarta:

Los valores enteros, reales, cadenas de texto y descriptores de archivos,


devuelven su propio valor como resultado. Los nombres de funciones
inherentes o subrutinas de AutoLISP devuelven un nmero interno
hexadecimal (suele cambiar de una sesin de dibujo a otra). Por ejemplo:
!72.5 devuelve 72.5
!"Inicio" devuelve "Inicio"
!SETQ devuelve <Subr: #1a93e24>

Quinta:
Los smbolos de variables participan con el valor que contienen (que les est
asociado) en el momento de la evaluacin. Por ejemplo:
!x devuelve 30
!sx devuelve 0.523599

Sexta:
Determinadas funciones de AutoLISP pueden devolver un valor nulo, que se
representa mediante la expresin nil. Por ejemplo:
Comando: (PROMPT "Bienvenido a AutoLISP\n")
Bienvenido a AutoLISP
nil
La funcin PROMPT escribe en la lnea de comando el mensaje especificado y
devuelve nil. El cdigo \n equivale a INTRO.

ONCE.2.3. Archivos fuente de


programas
Las expresiones contenidas en un programa de AutoLISP pueden
introducirse directamente desde el teclado durante la edicin de un dibujo
de AutoCAD, escribirlas en un fichero de texto ASCII o ser suministradas
por una variable del tipo cadena, como ya se ha dicho varias veces.
Para una correcta evaluacin, las expresiones deben cumplir unos requisitos
de sintaxis, que se pueden resumir en los siguientes puntos:
Una expresin puede ser tan larga como se quiera. Puede ocupar varias
lneas del archivo de texto.
Los nombres de smbolos pueden utilizar todos los caracteres imprimibles
(letras, nmeros, signos de puntuacin, etc.) salvo los prohibidos que son: (
) . ' " ;

Los nombres de smbolos no son sensibles a las maysculas.


As, seno y SENO representan el mismo nombre. Los nombres pueden
contener nmeros, pero no estar formados exclusivamente por nmeros.
As, 1pt, pt-1, p12 son vlidos como nombres de variables, pero no 21, que
ser interpretado como un valor numrico constante.
Los caracteres que terminan un nombre de smbolo o un valor explcito
(una constante numrica o de texto) son: parntesis de apertura y cierre,
apstrofo, comillas, punto y coma, espacio en blanco o final de lnea en el
archivo. Estos caracteres sirven de separacin entre elementos de una lista.
Los espacios en blanco de separacin entre smbolos son interpretados
como un solo espacio entre cada par de smbolos. Se recuerda que es
necesario un espacio en blanco para separar un smbolo del siguiente,
siempre que no haya parntesis, apstrofo, comillas o punto y coma. Debido
a la longitud de las expresiones de AutoLISP y a la profusin de parntesis
que dificultan su lectura, suele ser norma habitual realizar sangrados en las
lneas del archivo de texto, para resaltar los parntesis interiores de los
exteriores. Todos los espacios aadidos son interpretados como uno solo.
Los valores explcitos (constantes) de nmeros pueden empezar con el
carcter + o - que es interpretado como el signo del nmero.
Los valores de constantes de nmeros reales deben empezar con una
cifra significativa. El carcter punto (.) se interpreta como el punto decimal.
Tambin se admite + o - para el signo ye o E para notacin exponencial o
cientfica. No es vlida la coma decimal, ni tampoco abreviar como
en .6 (hay que escribir 0.6).
Los valores de constantes con cadenas de texto son caracteres que
empiezan y terminan por comillas. Dentro de las cadenas se pueden incluir
caracteres de control mediante la contrabarra (\). Los cdigos permitidos
son:
\\ ------ Carcter contrabarra (\).
\" ------ Carcter comillas (").
\e ------ Carcter de escape.
\n ------ Nueva lnea o retorno de carro.
\r ------ INTRO
\t ------ Carcter de tabulador TAB
\nnn ------ Carcter cuyo cdigo octal (no ASCII, que es decimal) es nnn.
\U+xxxx ------ Secuencia de caracteres de cdigo Unicode.
\M+nxxxx ------ Secuencia de caracteres multibyte.
Los cdigos deben ir en minsculas. Para incluir en una cadena un cdigo
ASCII hay que calcular su valor octal. Por ejemplo, el carcter dlar $ es
ASCII 36; su valor octal ser 44 y en la cadena habr que indicar el cdigo
de control \44.
El apstrofo () se puede utilizar como abreviatura del comando QUOTE. El
comando QUOTEdevuelve el literal del smbolo. Es decir, cuando en una
expresin un smbolo aparece precedido por apstrofo o se le aplica la
funcin de AutoLISP QUOTE, no se evala con el valor que contiene en ese
momento sino que devuelve el propio nombre literal del smbolo.
Se pueden incluir comentarios en un archivo de texto con programas y
expresiones en AutoLISP, comenzando la lnea del archivo con un punto y
coma (;). A partir de donde se encuentre un punto y coma hasta el final de
la lnea, AutoLISP considera que son comentarios y no los tiene en cuenta.
Tambin se pueden incluir comentarios en mitad de una lnea u ocupando
varias de ellas, si se sitan entre los caracteres ;| y |;. Por ejemplo:
;Funcin de estado actual del dibujo.
(DEFUN funcion_1 (x / pt1 pt2)
(SETQ refnt0 ;| modos de referencia actualmente
activados |; (GETVAR "osmode"))
...
Los comentarios son tiles tanto para el autor del programa como para
futuros usuarios que accedan al archivo con el fin de modificarlo. Suele ser
habitual situar al principio del archivo el ttulo, autor y fecha de creacin.
Posteriormente, una explicacin general del programa, explicaciones
particulares de cada funcin intermedia, usos de variables, etc. Como
muchas de las configuraciones de pantalla de texto disponen de un ancho de
80 columnas, conviene que las lneas del archivo de texto no sobrepasen los
80 caracteres.

ONCE.2.4. Variables predefinidas


Existen unos valores de smbolos de AutoLISP predefinidos. Son los
siguientes:
PI. Es el valor del nmero real PI, es decir: 3,141592653589793.
PAUSE. Es una cadena de texto que consta de un nico carcter
contrabarra. Se utiliza para interrumpir un comando de AutoCAD despus
de haberlo llamado mediante la funcin de AutoLISP COMMAND. Esto permite
al usuario introducir algn dato.
T. Es el smbolo de True, es decir, cierto o verdadero (valor 1 lgico). Se
utiliza para establecer que determinadas condiciones se cumplen.
Por ltimo el valor de nada, vaco o falso (0 lgico) se representa en
AutoLISP por nil. Este valor aparece siempre en minsculas y no es
propiamente un smbolo, ya que no est permitido acceder a l.

ONCE.3. PROGRAMANDO EN AutoLISP


A partir de ahora vamos a comenzar a ver poco a poco la manera de ir
haciendo nuestros programas en AutoLISP. Vamos a seguir un orden lgico
de menor a mayor dificultad, por lo que la estructura puede llegar a parecer
un poco catica para alguien que conozca el lenguaje. Tampoco es objetivo
de este curso profundizar en un mtodo complejo de programacin, sino
proponer unas bases para comenzar a programar que, con imaginacin y
horas de trabajo, podr convertirnos en programadores expertos de
AutoLISP.
Todo lo visto hasta ahora resulta la parte rida de la programacin; parece
que no sirven de mucho esos conocimientos tericos mientras no pasemos a
la prctica. De aqu en adelante podremos ir entendiendo las 2 primeras
secciones de este MDULO y, si algo se qued en el tintero o algo hay que
repetir de todo lo expuesto hasta aqu, se completar y se explicar o
repetir.
Comencemos, pues, con la programacin en AutoLISP para AutoCAD 14.

ONCE.3.1. Convenciones de sintaxis


Las convenciones utilizadas para las sintaxis en este MDULO van a ser las
siguientes:

Nombre del comando o funcin AutoLISP en maysculas.


Argumentos en minscula itlica, representados por un nombre
mnemotcnico.
Argumentos opcionales encerrados entre corchetes itlicos (que no han de
escribirse).
Puntos suspensivos en itlica indican la posibilidad de indicar ms
argumentos.

ONCE.4. OPERACIONES NUMRICAS Y


LGICAS
Explicaremos aqu la manera en que se realizan en AutoLISP las operaciones
matemticas, de comparacin y lgicas. El buen aprendizaje de ests
tcnicas nos ser tremendamente til a la hora de lanzarnos a la
programacin pura.

ONCE.4.1. Aritmtica bsica


Para realizar las cuatro operaciones aritmticas bsicas existen cuatro
funciones AutoLISP que son +, -, * y /, estas se corresponden con la suma,
resta, multiplicacin y divisin.
La funcin de suma tiene la siguiente sintaxis:
(+ [valor1 valor2 valor3...])
Esto es, primero se indica el nombre de la funcin, como siempre en
AutoLISP, que en este caso es + y luego los argumentos de la misma, es
decir, aqu los valores de los distintos sumandos.
Esta funcin devuelve el resultado aditivo de todos los valores numricos
especificados como argumentos de la funcin. Por ejemplo:
(+ 14 10 20)
devolvera el valor 44. Para hacer la prueba nicamente debemos escribir
dicho rengln en la lnea de comandos de AutoCAD, pulsar INTRO y
comprobar el resultado.
NOTA: Al introducir el primer carcter de apertura de
parntesis, AutoCAD reconoce que se est escribiendo una expresin en
AutoLISP, por lo que nos permitir utilizar los espacios necesarios de la
sintaxis sin que se produzca un INTRO cada vez, como es habitual.
Recordemos que todos los elementos de una lista de AutoLISP han de ir
separados por lo menos con un espacio blanco. Probemos diferentes sintaxis
utilizando ms espacios, o tabuladores, y comprobemos que el resultado es
el mismo; se interpretan los espacios o tabuladores como un nico carcter
de espacio en blanco.
NOTA: Hagamos la prueba de no introducir el parntesis final de la lista
indicada. Comprobaremos lo explicado en la segunda regla de la
seccin ONCE.2.2.
Con la funcin + podemos indicar valores enteros o reales. Si todos los
valores son enteros el resultado ser entero, pero si uno o varios de ellos
son reales o todos ellos, el resultado ser real. Esto significa que
nicamente es necesario introducir un valor real para recibir una respuesta
real. Por ejemplo, si introducimos la siguiente lnea en la lnea de comandos
enAutoCAD:
(+ 14 10 20.0)
el resultado ser:
44.0
o sea, un nmero real.
Esto aqu parece irrelevante, pero comprenderemos su utilidad al hablar, por
ejemplo, de la divisin.
Si indicamos un solo sumando con esta funcin, el resultado es el valor del
propio sumando. Por ejemplo:
(+ 23)
devuelve:
23

Y si se escribe la funcin sin argumentos, el resultado es 0 (funcin sin


argumentos: (+)).
Los valores indicados en la funcin de suma pueden ser directamente
valores numricos o nombres de variables numricas declaradas
anteriormente, por ejemplo:
(+ 10.0 x total)
En esta funcin, 10.0 es un valor constante real y x y total son dos
nombres de variables que han debido ser anteriormente declaradas; ya
aprenderemos a declarar variables. Si la variable no existiera se producira
un error bad argument type de AutoLISP.
Otros ejemplos con nmeros negativos:
(+ 10 23) devuelve 13
(+ -10 10) devuelve -20
NOTA: Si se produce algn error de sintaxis u otro, podemos acudir al final
de este MDULOpara ver una relacin de los mensajes de error de
AutoLISP.
La funcin de resta, por su lado, tiene la siguiente sintaxis:
(- [valor1 valor2 valor3...])
Esta funcin devuelve la diferencia del primer valor con todos los dems
indicados. As por ejemplo:
(- 10 5)
da como resultado 5 y la siguiente expresin:
(- 10 5 2)

da como resultado 3. Esto es producto de restar 10 5 = 5 y, luego, 5 2 =


3; o lo que es lo mismo 10 (5 + 2) = 3.
Al igual que en la suma, si se indican valores enteros el resultado ser
entero, si se indica uno real (con uno es suficiente) el resultado es real, si se
indica un solo valor se devuelve el mismo valor y si se escribe la funcin sin
argumentos se devuelve 0. As pues, si queremos un resultado real
efectuado con nmeros enteros para posteriores operaciones, deberemos
indicar uno de los valores entero; de la siguiente manera, por ejemplo:
(- 10 5.0 2)
o cualquier otra combinacin posible de uno o ms nmeros enteros.
Como se ha explicado para la suma, los valores de los argumentos para la
resta pueden ser constantes, eso s, siempre numricas, o variables:
(- tot num1 num2)
Llegados a este punto, podemos suponer ya las diferentes combinaciones
que podremos realizar con las distintas funciones aritmticas. Por ejemplo,
es factible la evaluacin de la siguiente expresin:
(+ 12 (- 2 -3))
cuyo resultado es 11. O sea, y como hemos explicado, se realizarn las
operaciones de dentro a fuera. En este ejemplo, se suma la cantidad de 12 a
la diferencia 2 3, esto es, 12 + (2 3) = 11. Como vemos, existen dos
listas, una interior anidada a la otra que es, a la vez, argumento de la lista
exterior. Ocurre lo mismo con nombres de variables:
(- fer1 (+ -sum1 sum2) 23.44)
Con respecto al producto su sintaxis es la siguiente:
(* [valor1 valor2 valor3...])
Se evala el producto de todos los valores numricos indicados como
argumentos. Como anteriormente, si un valor es real el resultado es real. Un
solo valor como argumento devuelve el mismo valor. Ningn valor
devuelve 0. Veamos un ejemplo:
(* 12 3 4 -1)
El resultado es -144. Veamos otros ejemplos:
(* 2 3)
(* val (- vax vad))
(- (* 12 2) 24)
(+ (- -10 -5) (* 3 total 23))

NOTA: Si escribimos ms parntesis de los necesarios por la derecha se nos


mostrar un mensaje de error. Recordar que si no los escribimos nos da la
opcin de escribirlos despus, as como el nmero de ellos que faltan. De
todas forma, consltese el final del MDULO para la explicacin de los
mensajes de error.
La sintaxis de la divisin es la que sigue:
(/ [valor1 valor2 valor3...])
La funcin / realiza el cociente del primer valor numrico por todos los
dems, es decir, divide el primer nmero por el producto de los dems. Por
ejemplo:
(/ 10 2)
da como resultado 5. Y el ejemplo siguiente:
(/ 100 5 5)
da como resultado 4, es decir, 100 / 5 = 20 y, luego, 20 / 5 = 4; o lo que es
lo mismo, 100 / (5 * 5) = 4.
Otros dos ejemplos:
(/ 24 (* (+ 10.0 2) 12))
(/ 12 2 1)
Con respecto al cociente debemos realizar las mismas observaciones
anteriores, esto es, si se indica un solo valor se devuelve el mismo valor, si
se indica la funcin sin argumentos se devuelve 0 y si se indican valores
enteros slo se devuelven valores enteros. Esto ltimo cobra especial
sentido en el caso de las divisiones, ya que el cociente entre dos nmeros
enteros puede ser un nmero real. Veamos el siguiente ejemplo:
(/ 15 7)
Si introducimos esta lnea el resultado ser 2. El motivo es que, como hemos
especificado valores enteros, el resultado se muestra en forma de nmero
entero, con la parte decimal o mantisa truncada. Para asegurarnos de recibir
una respuesta correcta (con decimales significativos), deberemos introducir
uno de los valores o todos ellos, pero con uno es suficiente como valor
real, de la siguiente forma:
(/ 15 7.0)
Ahora el resultado ser 2.14286. El nmero entero podra haber sido el otro:
(/ 15.0 7)
Esto debemos tenerlo muy en cuenta a la hora de realizar operaciones cuyo
resultado vaya a ser parte integrante de otra operacin o no que puede
devolver decimales. Vemos otros ejemplos de divisiones:

(/ -12.0 7.8 210)


(/ (+ (- 23.3 32) 12.03) (/ (* (+ 1.01 2.01) 100)))
(+ datos (/ grupo (* 100 2)))
NOTA: Evidentemente, la divisin por 0 produce un error de
AutoLISP: divide by zero.

1 fase intermedia de ejercicios


Realizar mediante AutoLISP las siguientes operaciones aritmticas (estn
expresadas en notacin informtica sencilla de una lnea):
(50 + 5) / 2
(200 * 5 3) / (4 / 2)
(10.23 (12.03 / 3)) * (12 + (2 * -2) ((12.5 / 2) * 2.65))
(19 + 23) / (10 + (23 / (23 / 19)))
((-20 / 5) 1) / (15.5 * ((15.5 1) / 12))

ONCE.4.2. Matemtica avanzada


Fuera aparte de las funciones aritmticas de nivel bsico, programando en
AutoLISP podemos realizar operaciones matemticas complejas como races
cuadradas o senos. Vamos a explicar aqu las funciones que controlan estas
operaciones.

Las dos primeras que veremos son sencillas de entender y utilizar. Ambas se
refieren al incremento, positivo o negativo, de una unidad a un valor
numrico.
(1+ valor)
Esta sintaxis corresponde a la funcin de incremento positivo de una unidad
al valor indicado. As, si queremos incrementar en 1 el valor 576, haremos:
(1+ 576)
Esto equivale a (+ 576 1) pero es de una forma ms cmoda; el resultado
es 577.
NOTA: La funcin se denomina 1+ en s, por lo que no existe espacio
entre 1 y +.
Podemos realizar estos incrementos con nombres de variable:
(1+ n)
lo que incrementar en una unidad el valor de n. Esto puede ser
especialmente necesario para controlar los llamados contadores-suma en
programacin, del tipo:
(SETQ sum (1+ sum))
Esto ya lo veremos a la hora de declarar variables.
La siguiente funcin resta (incremento negativo) una unidad al valor
numrico indicado. Equivale a (- valor 1), pero de una forma ms
cmoda.
(1- valor)
Por ejemplo:
(1- 32)
suyo resultado es 31.
Otros ejemplos de estas dos funciones:
(1- n)
(1- 67.90)
(1- -23)
(1+ -34.0)
(1+ (+ tuttot 1)
(1- (* 2 2))
(1- (* (/ 32 2) (+ 10 1.0)))
(ABS valor)
Esta funcin ABS devuelve el valor absoluto del nmero indicado o expresin
indicada. De esta forma, la siguiente expresin:
(ABS 23)
devuelve 23.
Las siguientes expresiones tienen el siguiente efecto indicado:
(ABS 25.78) devuelve 25.78
(ABS 45) devuelve 45
(ABS 0) devuelve 0
(ABS 13) devuelve 13
(ABS (/ 2 3.0)) devuelve 0.666667
(ABS (/ 2 -3.0)) devuelve 0.666667
(FIX valor)
FIX trunca un valor a su parte entera (positiva o negativa), es decir, de un
nmero real con decimales devuelve nicamente su parte entera. Pero,
cuidado, no se produce redondeo, slo un truncamiento.
Ejemplos:
(FIX 32.79) devuelve 32
(FIX 12.45) devuelve 12
(FIX (/ 10 3.0)) devuelve 3
(FIX (/ 10 3.0)) devuelve 3

(REM valor1 valor2 [valor3...])


Esta funcin AutoLISP devuelve el resto del cociente (mdulo) de los dos
valores introducidos en principio. Por ejemplo, la siguiente expresin
devuelve 6 como resultado:
(REM 20 7)
Dicho 6 es el resto que resulta de dividir 20 / 7. Si aplicamos la regla de la
divisin (dividendo es igual a divisor por cociente ms resto): 20 = 7 * 2 +
6, vemos que se cumple correctamente.
Si se especifican ms de dos valores, el resto anterior es dividido entre el
actual, devolviendo el nuevo resto de la nueva divisin. Por ejemplo:
(REM 20 7 4)
da como resultado 2. El primer resto 6 se calcula de la forma explicada en el
ejemplo anterior y, el resultado final 2, se produce al dividir dicho primer
resto entre el tercer valor 4. Al dividir 6 / 4, nos da un resultado (que es
igual a 1) y un resto 2 (valor final obtenido). Y as sucesivamente.
Otros ejemplos:
(REM 1 2)
(REM 0 23)
(REM (* 23 2) (- (+ 1 1) 45.5))
(REM 54 (* 3 -4))
Pasemos ahora a ver las funciones trigonomtricas, esto es, cmo calcularlas
mediante AutoLISP. La primera sintaxis se refiere al seno de un ngulo y es
la siguiente:
(SIN ngulo)
La funcin SIN devuelve el seno de un ngulo expresado en radianes.
Ejemplos:
(SIN 1) devuelve 0.841471
(SIN (/ PI 2)) devuelve 1.0
NOTA: Como sabemos PI es un constante de AutoLISP, por lo que no hace
falta declararla como variable; ya tiene valor propio y es 3.14159. An as,
se puede calcular su valor exacto mediante la expresin: PI = 4 * arctag 1.
(COS ngulo)
COS devuelve el coseno de un ngulo expresado en radianes. Ejemplos:
(COS PI) devuelve 1.0
(COS (* 3 4)) devuelve 0.843854
NOTA: Ntese que PI es un valor real, por lo que el resultado ser real.
(ATAN valor1 [valor2])
Esta funcin ATAN devuelve el arco cuya tangente es valor1 expresada en
radianes, es decir, realiza el arco-tangente de dicho valor. Por ejemplo:
(ATAN 1.5) devuelve 0.98
Si se indica un segundo valor (valor2), ATAN devuelve el arco-tangente
de valor1 dividido porvalor2. Esto permite indicar la razn entre los lados
de un tringulo recto, es decir, escribir la tangente directamente como
cociente del seno entre el coseno. Si valor2 es 0, el valor devuelto ser
igual a PI / 2 o a PI / 2 radianes, dependiendo del signo de valor1.
Ejemplos:
(ATAN 1 1)
(ATAN 1 (* 2 -4.5))
Estas son las tres funciones trigonomtricas de AutoLISP. En este punto se
nos plantean un par de problemas: cmo calculo las restantes funciones
trigonomtricas? y cmo convierto grados sexagesimales en radianes y
viceversa?
La segunda cuestin es sencilla, ya que basta aplicar al frmula rad =
grados * PI / 180 para convertir grados en radianes. La operacin inversa en
fcilmente deducible.
La primera pregunta tiene una respuesta no menos sencilla, y es que en la
mayora por no decir todos de los lenguajes de programacin
nicamente nos proporcionan estas funciones trigonomtricas bsicas y, a
partir de ellas, podemos calcular las funciones trigonomtricas derivadas
inherentes. La manera se explica a continuacin mediante notacin sencilla
de una lnea:
Funcin derivada --------- Notacin
-------------------------------------------------------------------------------------
Secante (sec x) ------------ 1 / cos (x)
Cosecante (cosec x) ------- 1 / sen (x)
Arco-seno (arcsen x) ------- arctag (x / (1 x ^ 2))
Arco-coseno (arccos x) ----- 1.5707633 arctag (x / (1 x ^ 2))
Arco-secante (arcsec x) ---- arctag ( (x ^ 2 1)) + signo (x) 1) *
1.5707633
Arco-cosecante (arccos x) -- arctag (1/ (x ^ 2 1)) + signo (x) 1) *
1.570763
Arco-cotang. (arccotag x) --- 1.5707633 arctag (x)
NOTA: El smbolo ^ significa exponenciacin. es raz cuadrada. signo (x)
se refiere al signo del valor; si ste es positivo signo (x) valdr 1, si es
negativo valdr 1 y si es cero valdr 0. No debemos preocuparnos ahora
por esto, ya que aprenderemos en breve o ms adelante con mayor
soltura a realizar exponenciaciones, races cuadradas y operaciones con
signos.
Sigamos, pues, ahora con otras diferentes funciones que nos ofrece
AutoLISP a la hora de realizar operaciones matemticas. La siguiente dice
referencia a las races cuadradas; su sintaxis es:
(SQRT valor)
Esta funcin devuelve el resultado de la raz cuadrada del valor indicado, ya
sea un guarismo simple o una expresin matemtica, como siempre. As por
ejemplo, veamos unas expresiones con sus correspondientes evaluaciones:
(SQRT 4) devuelve 2.00
(SQRT 2) devuelve 1.4142
(SQRT (* 2 6)) devuelve 3.4641
La intencin de extraer una raz cuadrada de un nmero negativo produce el
error function undefined for argument de AutoLISP.
Por otro lado, la sintaxis para la funcin exponencial es la siguiente:
(EXPT base exponente)
EXPT devuelve el valor de base elevado a exponente. De esta forma, para
elevar 5 al cubo (igual a 125), por ejemplo, escribiremos:
(EXPT 5 3)
Otro ejemplo:
(EXPT 2.3 7.23)
De esta forma, como sabemos, podemos resolver el resto de races (cbicas,
cuartas, quintas...) existentes. Ya que raz cbica de 32 es lo mismo que 32
elevado a 1 / 3, podemos escribir la siguiente expresin:
(EXPT 32 (/ 1 3))
As tambin:
(EXPT 20 (/ 1 5))
(EXPT 10 (/ (+ 2 4) (- v23 rt sw2))
(EXPT 3 (/ 1 2))
NOTA: El intento de extraer races negativas de cualquier ndice producir el
mismo error explicado en SQRT.

(EXP exponente)
Esta funcin devuelve la constante (nmero) e elevada al exponente
indicado. Se corresponde con el antilogaritmo natural. Por ejemplo:
(EXP 1) devuelve 2.71828
(LOG valor)
LOG devuelve el logaritmo neperiano o natural (en base e) del valor indicado.
Por ejemplo:
(LOG 4.5) devuelve 125.0000
(GCD valor_entero1 valor_entero2)
Esta sintaxis se corresponde con la funcin de AutoLISP GCD, que devuelve el
mximo comn denominador de los dos valores indicados. Estos valores han
de ser obligatoriamente enteros, de no ser as, AutoLISP devuelve bad
argument type como mensaje de error. Veamos unos ejemplos:
(GCD 45 80) devuelve 5
(GCD 80 70) devuelve 10
(GCD (* 10 10) (/ 70 2)) devuelve 5
Si se indica un entero negativo el mensaje de error de AutoLISP
es improper argument.
Las dos ltimas funciones matemticas que veremos pueden sernos de gran
ayuda a la hora de programar. Una de ellas (MAX) devuelve el mayor de
todos los nmeros indicados en la lista. Su sintaxis es:

(MAX valor1 valor2...)


Los valores pueden ser nmeros enteros o reales, y tambin expresiones
matemtico-aritmticas. As por ejemplo:
(MAX 78.34 12 789 7)
devolver 789.0, ya que es el nmero mayor. Lo devuelve como real por la
aparicin de decimales en el elemento 78.34. Como sabemos, con la sola
aparicin de un valor real en una lista, el resultado es real.
Si el elemento mayor de la lista es un expresin matemtica, se devolver
su resultado, no la expresin en s, por ejemplo:
(MAX (* 10 10) 5)
devolver 100 como resultado (10 * 10).
Otro ejemplo:
(MAX 5 7 9)
devolver 5.
(MIN valor1 valor2...)
La funcin MIN, por su lado, devuelve el menor de todos los valores
indicados en lista. Las dems consideraciones son anlogas a la funcin
anterior. Ejemplos:
(MIN 1 2 3 4 7) devuelve 1
(MIN 23.3 7 0) devuelve 0.0
(MIN (/ 7 3) 0.56) devuelve 0.56

Ejemplos de MAX y MIN con variables:


(MIN x y z)
(MIN (+ x1 x2) (+ y1 y2) (+ w1 w2) (+ z1 z2))
Y hasta aqu todas las funciones que tienen que ver con operaciones
matemticas. Pasaremos, tras unos ejercicios propuestos, a ver las
operaciones de comparacin, muy interesantes y sencillas de comprender.

2 fase intermedia de ejercicios


Realizar mediante AutoLISP las siguientes operaciones matemticas (estn
expresadas en notacin sencilla de una lnea):

((20 3) * (8 2))
1 + 78.8 + ((78.8 ^ 2) / 2) + ((78.8 ^ 3) / 3)
(sen ( (80 * 28.002) cos (PI / 2))) / (PI (1 / 2))
arccos (100 / 2)
(124.6589 * (e ^ 2.3)) / (7 * 2)
ln (45 * (7 / 2))
(23.009 / 78.743) ^ (56.00123 1)
Realcense ejercicios de clculo de valores mayores y menores de listas, as
como de mximos comunes denominadores.
Realizar un par de ejercicios de incremento y decremento de una unidad a
valores.
NOTA: Las operaciones en general siguen en AutoLISP la jerarqua de las
operaciones matemticas: parntesis internos, parntesis externos,
operadores unitarios (signos), potenciacin, multiplicacin y divisin, suma y
resta, operadores relacionales (mayor que, menor que...) y operadores
lgicos (lgebra de Boole). Y cuando existen varios operadores en el mismo
nivel, se ejecutan de izquierda a derecha. Ahora mismo veremos operadores
relacionales o de comparacin y, luego, el lgebra de Boole en AutoLISP.

ONCE.4.3. Operaciones relacionales


Las funciones que veremos a continuacin se denominan relacionales o de
comparacin, y es que comparan valores, ya sean numricos o textuales
(cadenas) emitiendo un resultado verdadero o falso, segn la comparacin.
Estas funciones son conocidas por todos (igual, mayor que, menor o igual
que...), slo queda determinar cmo se utilizan y cul es su sintaxis en
AutoLISP.
Como hemos dicho el resultado de la evaluacin solo puede ser uno de
dos: T (True) que representa el verdadero o cierto, o nil que representa el
falso o nulo.
NOTA: Con la devolucin nil por parte de AutoLISP nos empezamos a
familiarizar ahora y la veremos muchas veces.
Comencemos por el igual o igual que, cuya sintaxis es la siguiente:
(= valor1 [valor2...])
La funcin = compara todos los valores especificados uno como mnimo,
devolviendo T si son todos iguales o nil si encuentra alguno diferente. Los
valores pueden ser nmeros, cadenas o variables (numricas o
alfanumricas). As por ejemplo:
(= 5 5) devuelve T
(= 65 65.0) devuelve T
(= 7 54) devuelve nil
(= 87.6 87.6 87.6) devuelve T
(= 34 34 34 34) devuelve nil

Veamos ahora algn ejemplo con cadenas:


(= "hola" "hola") devuelve T
(= "casa" "cAsa") devuelve nil
(= "H" "H" "H" "H") devuelve T
(= "hola ahora" "hola ahora") devuelve nil

NOTA: Ntese, como adelanto, que las cadenas literales han de ir


encerradas entre comillas, como en casi todos los lenguajes de
programacin.

Con variables declaradas, que ya veremos, sera de la misma forma. Si slo


se indica un valor en la lista, AutoLISP devuelve T.
NOTA: Hay que tener en cuenta que esta funcin slo compara valores y no
listas o expresiones. Si, por ejemplo, se tienen dos variables pt1 y pt2 con
dos puntos que son listas de tres elementos (una coordenada X, una
coordenada Y y una coordenada Z), para comparar la igualdad de ambos
habra que recurrir a una funcin lgica como EQUAL, que veremos un poco
ms adelante.
(/= valor1 [valor2...])

Esta funcin /= (distinto o desigual que) devuelve T si alguno o algunos de
los valores comparados de la lista son diferentes o distintos de los dems,
por ejemplo en los siguientes casos:
(/= 2 3)
(/= "texto" "textos")
(/= (* 2 2) (* 2 4) (* 2 3)
Devuelve nil si todos los valores son iguales, por ejemplo:
(/= "casa" "casa" "casa")
(/= "1 2 3" "1 2 3" "1 2 3" "1 2 3" "1 2 3")
(/= 32 32 32 32)
(/= (* 10 10) (* 25 4))
Si nicamente se indica un valor, AutoLISP devuelve T.
(< valor1 [valor2...])
Esta sintaxis se corresponde con la comparacin menor que. Es una funcin
AutoLISP que devuelve T si efectivamente el primer valor comparado es
menor que el segundo. Si existen diversos valores, cada uno ha de ser
menor que el siguiente para que AutoLISP devuelva T. Si no se
devuelve nil. Veamos algunos ejemplos:
(< 2 3) devuelve T
(< 3 4 5 89 100) devuelve T
(< 3 4 5 6) devuelve nil
(< (* 2 2) (/ 5 3)) devuelve nil
En el caso de cadenas o variables alfanumricas (las que contienen
cadenas), la comparacin se efecta segn el valor de los cdigos ASCII. Por
lo tanto, ser el orden alfabtico ascendente (de la A a la Z) la manera de
considerar de menor a mayor los caracteres, teniendo en cuenta que el
espacio blanco es el carcter de menor valor y que las letras maysculas son
de menor valor que las minsculas. Ejemplos:
(< "a" "b") devuelve T
(< "z" "h") devuelve nil
(< "A" "a" "b") devuelve T
(< "f" "S") devuelve nil
Si las cadenas tienen ms caracteres se comparan de la misma forma:
(< "abc" "abd") devuelve T
(< "abc" "ab") devuelve nil
No es posible comparar cadenas literales con nmeros; AutoLISP devuelve
un mensaje de error que dice bad argument type. Con variables que
contienen valores numricos o literales se realizara de la misma manera:
(< valor1 valor2 total)
(< -12 7 km hrs)
(< autor1 autor2 autor3 auto4 autor5)

(<= valor1 [valor2...])


Esta es la funcin menor o igual que. Funciona de la misma forma que la
anterior pero teniendo en cuenta que devolver T si cada valor es menor o
igual que el anterior. Si no devolver nil. He aqu unos ejemplos:
(<= 10 30 30 40 50 50) devuelve T
(<= 12.23 12.23 14) devuelve T
(<= 56 57 57 55) devuelve nil
Las dems consideraciones son idnticas a las de la funcin precedente.
(> valor1 [valor2...])
Al igual que en la comparacin de menor que, pero de manera inversa, esta
funcin devuelve Tsi cada valor especificado, sea numrico sea cadena, es
mayor que el siguiente, esto es, si se encuentran ordenados de mayor a
menor. Si no devuelve nil. Por ejemplo:
(> 10 5 4.5 2) devuelve T
(> "z" "gh" "ab") devuelve T
(> 23 45) devuelve nil
Otros ejemplos:
(> saldo divid)
(> pplanta ppiso pcubierta)

(>= valor1 [valor2...])


Similar a los anteriores, establece la comparacin mayor o igual que. Se
devolver T si y slo si cada valor es mayor o igual que el que le sucede, si
no, nil. Las dems consideraciones son idnticas a las otras funciones
similares explicadas. Ejemplos:
(>= 33 23 23 12 12 54) devuelve nil
(>= 24 24 24 23 23 0.01 3) devuelve T

3 fase intermedia de ejercicios


Indicar el resultado de AutoLISP (T o nil) ante las siguientes
proposiciones:
(= 23 23.0)
(= 48.0 (* 6 8))
(= "AutoLISP" "autolisp" "aUtOlIsP")
(/= (/ 7 2) (/ 2 7))
(/= "libro" "libro ")
(< 3 5 6 (+ 5 67))
(<= "A" "A" "bc" "zk" "zk")
(> "coche" "mesa")
(>= "coche" "cochecito")
(>= "cochu" "coche" "coche" "cocha")
(>= "" "" "a")

ONCE.4.4. Operaciones lgicas


Adems de lo estudiado hasta ahora, existen cuatro operaciones lgicas
referidas al lgebra de Boole. Estas operaciones son el Y lgico, el O lgico,
la identidad y el NO lgico. Adems, existe una quinta funcin que veremos
al final denominada de identidad de expresiones y que es un poco especial.
Las cuatro funciones que vamos a ver actan como operadores lgicos y
devuelven, al igual que las anteriores, nicamente los resultados T (cierto)
o nil (falso).
(AND expresin1 [expresin2...])

Esta funcin realiza el Y lgico de una serie de expresiones indicadas que


representan otras tantas condiciones. Esto significa que evala todas las
expresiones y devuelve T si ninguna de ellas es nil. En el momento en que
alguna es nil, abandona la evaluacin de las dems y devuelve nil. Es
decir, se deben cumplir todas y cada una de las condiciones. Veamos un
ejemplo:
(AND (<= 10 10) (>= 10 10)) devuelve T
Esto significa que, si se cumple la condicin de la primera lista (<= 10
10) y, adems, se cumple la de la segunda lista (>= 10 10) devolver T.
Como esto es as, devuelve T.
De otra forma, si una de las condiciones no se cumple, devuelve nil, por
ejemplo en el siguiente caso:
(AND (= 10 10) (> 10 10))
La primera condicin en verdadera (10 es igual a 10), pero la segunda es
falsa (10 no es mayor que 10). Como una ya no se cumple se devuelve nil.
Han de cumplirse todas las condiciones para que sea el resultado verdadero.
Veamos otros dos ejemplos:
(AND (= 10 10) (> 23 22.9) (/= "camin" "camioneta")) devuelve T
(AND (<= "A" "a") (= 5 7)) devuelve nil
No tiene mucho sentido indicar una sola expresin con esta funcin. Las dos
siguientes son idnticas y producen el mismo resultado:
(AND (= 20 -20))
(= 20 -20)
Ambas devuelven nil.
(OR expresin1 [expresin2...])

Realiza un O lgico de una serie de expresiones que representan otras


tantas condiciones. Evala las expresiones y devuelve nil si todas ellas
son nil. En el momento en que encuentre una respuesta distinta de nil,
abandona la evaluacin y devuelve T. sta es precisamente la mecnica
del O lgico, es decir, basta que se cumpla una de las condiciones para que
la respuesta sea verdadera o cierta.
El siguiente ejemplo compara nmeros y devuelve nil:
(OR (< 20 2) (> 20 2))
O sea, si es menor 20 que 2 que no lo es o si es mayor 20 que dos
que s lo es, devuelveT. El cumplirse una de las dos condiciones es
condicin suficiente para que devuelva T. Veamos otro ejemplo:
(OR (= 20 2) (> 2 20)) devuelve nil
En este caso ninguna de las dos condiciones se cumplen (ambas son nil),
as que el resultado final ser nil.
Como en el caso de la funcin AND, no tiene sentido utilizar una sola
expresin, ya que el resultado sera el mismo que al escribirla sola. Veamos
otros ejemplos:
(OR (>= 30 30 20 5) (<= -5 5 4 0)) devuelve T
(OR (< (* 2 8) (* 2 3)) (= (/ 8 2) (* 4 1))) devuelve T
(OR (= "carro" "carreta") (= "casa" "caseta") (= 2 3)
devuelve nil
Recapitulando, y para afianzar estos dos ltimos conocimientos, decir
que AND obliga a que se cumplan todas las condiciones para devolver T. Sin
embargo, a OR le basta con que una de ellas se cumpla para devolver T.
Digamos, en lenguaje coloquial, que AND es "si se cumple
esto, yesto, y esto, y... es vlido", y OR es "si se cumple
esto, o esto, o esto, o... es vlido".
Veamos ahora otra funcin lgica para comparar expresiones. Se
llama EQUAL y su sintaxis es la siguiente:
(EQUAL expresin1 expresin2 [aproximacin])
Esta funcin compara las dos expresiones indicadas, si son idnticas
devuelve T, si difieren en algo devuelve nil.
A primera vista puede parecer igual a la funcin = (igual que) estudiada, sin
embargo, sta nicamente comparaba valores; EQUAL tiene la capacidad de
poder comparar cualquier expresin o lista de expresiones. De esta forma,
podemos utilizar EQUAL de la misma forma que =, as:
(EQUAL 2 2) devuelve T
(EQUAL 3 5) devuelve nil
Pero no tiene mucho sentido, ya que tenemos la funcin =.
Reservaremos EQUAL para lo expuesto, es decir, para la comparacin de
listas de expresiones.
As pues, y adelantndonos a algo que veremos un poco ms tarde, diremos
que la expresin de las coordenadas de un punto 3D se escribira de la
siguiente forma:
(20 20 10)
El apstrofo es la abreviatura de la funcin QUOTE de AutoLISP, que toma
como literales, y sin evaluar, las expresiones que le siguen. De esta forma,
para comparar la identidad de dos puntos haramos, por ejemplo:
(EQUAL (20 20 10) (20 20 10)) devuelve T
(EQUAL (20 5 10) (20 20 10)) devuelve nil
NOTA: La funcin QUOTE se ve ampliada en la seccin ONCE.5.1.
El argumento optativo aproximacin se utiliza cuando se comparan
expresiones cuyos resultados son nmeros reales y puede haber una
pequea diferencia decimal que no queramos considerar desigual. Con este
argumento suministramos a la funcin un valor de aproximacin decimal
respecto al cual se creern iguales los resultados. Por ejemplo:
(EQUAL 23.5147 23.5148) devuelve nil
(EQUAL 23.5147 23.5148 0.0001) devuelve T
(NOT expresin)
La funcin NOT devuelve el NO lgico, es decir, si algo es verdadero devuelve
falso y viceversa. As, cuando el resultado sea distinto de nil (T),
devolver nil; cuando el resultado sea nil, devolver T. Por ejemplo:
(NOT (= 2 2)) devuelve nil
(NOT (/= 2 2)) devuelve T
(EQ expresin1 expresin2)
Esta funcin no es propiamente lgica, sino que se denomina de identidad
de expresiones. An as, la introducimos en este apartado por su similitud
con las anteriores.
EQ compara las dos expresiones (slo dos y ambas obligatorias) indicadas y
devuelve T si ambas son idnticas o nil en caso contrario. Se utiliza sobre
todo para comparar listas y ver si hay igualdad estructural.
La diferencia de EQ con EQUAL es que sta ltima compara los resultados de
evaluar las expresiones, mientras que EQ compara la identidad estructural de
las expresiones sin evaluar. Por ejemplo, y adelantando la funcin SETQ que
enseguida veremos, podemos hacer lo siguiente:
(SETQ list1 (x y z))
(SETQ list2 (x y z))
(SETQ list3 list2)
(EQ list1 list2) devuelve T
(EQ list2 list3) devuelve nil
Se observa que list1 y list2 son exactamente la misma lista por
definicin, estn declaradas con SETQ y por separado, siendo sus elementos
iguales. Pero list3 es, por definicin, igual alist2 y no a list3, aunque
sus elementos sean iguales. Es por ello que, en la segunda
evaluacin, EQ devuelve nil.
NOTA: Comprenderemos enseguida el funcionamiento y base de la
funcin SETQ, no hay preocuparse.

4 fase intermedia de ejercicios


Indicar el resultado de AutoLISP (T o nil) ante las siguientes
proposiciones:

(AND (= (* 20 20) (/ 800 2)) (> 300 200 500))


(AND (>= "a" "a") (>="z" "a") (>= " " " ") (>= "" ""))
(AND (OR (= 2 2) (> 3 6)) (OR (= 7 5) (= 0 0)))
(EQUAL (AND (= 1 10) (= 1 1)) (OR (>= 3 2 1 0) (<= 0 2)))
(OR (AND (= 1 1) (= 2.0 2)) (OR (NOT (= 1 1)) (= 2.0 2)))
NOTA: Aprciese la capacidad de poder anidar y combinar expresiones.
Y hasta aqu llega esta parte de funciones matemticas, lgicas y de
comparacin. Probablemente el lector estar pensando que de poco sirve lo
expuesto hasta ahora: qu ms dar que una expresin matemtica me d
un resultado si luego no puedo operar con l; que importar que una
proposicin lgica me devuelva T o nil si no me sirve para otra cosa.
Paciencia... En el mundo de la programacin hay que empezar desde abajo
y, aseguramos que un buen dominio abstracto de lo visto hasta ahora
proporcionar un gran nivel de soltura a la hora de programar de verdad.
Seguramente, adems, aquella persona que sepa programar en algn
lenguaje existente, habr comprendido algo ms ya que todos son muy
parecidos. El nefito comenzar a ver las cosas claras inmediatamente.
A partir de la siguiente seccin comenzaremos a ver para qu sirve todo esto
y cmo utilizarlo prcticamente en programas propios.
Autor: Jonathan Prstamo Rodrguez.
Para: La Web del Programador.

El lenguaje de programacin ms
potente?
Publicado en 'Foro Libre' por unknow, 14 Nov 2013.

1.
unknowMiembro maestro

Hola,
En estos das he estado buscando mucha informacin y opiniones acerca de los
mejores lenguajes de programacin. Los cursos de los institutos que he averiguado
empiezan entre noviembre y enero, as que debo decidirme por un lenguaje rpido, en
mi lista estn lenguajes como PHYTON, JAVA, C++ y RUBY. Debo resaltar que deseo
un lenguaje muy poderoso que me permita desarrollar aplicaciones y orientarme a
objetos.

POSDATA:
Tengo conocimientos de HTML, CSS y PHP.
unknow, 14 Nov 2013

#1

2.
JSkoneMiembro maestro
Java pero es muy jodido.
JSkone, 14 Nov 2013

#2

3.
fireblossomSuspendido
C, el papa...

o 2

fireblossom, 14 Nov 2013

#3

4.
crockMiembro diamante
Desde hace muchos aos es el lenguaje C, incluso en el viejo entorno DOS los
programas a medida hechos en C eran una bala.
crock, 14 Nov 2013

#4
5.
algun_usuarioMiembro de honor
No basta un lenguaje, tienes que aprender muchos lenguajes, el lenguaje ms
poderoso sera el assembler pero es muy complicado, slo lo usan los genios en
casos muy especiales, en su lugar se prefiere el C que le sigue en potencia pero es
ms fcil que el ensamblador, luego siguen los menos potentes pero ms fciles los
derivados del C como C++, C#, Java, etc.

o 1

algun_usuario, 14 Nov 2013

#5

6.
TylosaurioMiembro de plata
C

peanutbutterjellytime
Tylosaurio, 14 Nov 2013

#6

7.
unknowMiembro maestro
crock escribi:

Desde hace muchos aos es el lenguaje C, incluso en el viejo entorno DOS los programas a medida
hechos en C eran una bala.

Ests hablando de C o C++


Porque he ledo (muchas opiniones) que C pide mucho cdigo para rdenes que se
pueden simplificar con lenguajes como PHYTON o RUBY.
unknow, 14 Nov 2013

#7
8.
SteelMiembro de bronce
Python me parece que se enfoca ms a problemas cientficos, en todo caso un clsico
como C++ es un lenguaje muy potente, sigue siendo usado y ya pasaron casi 30 aos.
Java tambin es muy bueno por lo que me han dicho, pero es un descendiente de
lenguaje C++.
Bueno yo solamente he aprendido Pascal en su ltima versin ya a fines de los 90s y
un poco de COBOL y Basic, pero por mi cuenta, eso cuando me entro el bicho de
programar de all lo deje para dedicarme a mi actual carrera.
Steel, 14 Nov 2013

#8

9.
Mike7Suspendido
unknow escribi:

Hola,
En estos das he estado buscando mucha informacin y opiniones acerca de los mejores lenguajes de
programacin. Los cursos de los institutos que he averiguado empiezan entre noviembre y enero, as que
debo decidirme por un lenguaje rpido, en mi lista estn lenguajes como PHYTON, JAVA, C++ y RUBY.
Debo resaltar que deseo un lenguaje muy poderoso que me permita desarrollar aplicaciones y orientarme
a objetos.

POSDATA:
Tengo conocimientos de HTML, CSS y PHP.

Jskone tiene razn Java es un lenguage potente pero tambien algo jodido, de todos
modos es el que mas ensean en los institutos sobre todo porque ahora la mayoria de
las cosas se proyectaran hacia moviles
y como tambien dijo algun_usuario no bastara con un solo lenguaje tendras que saber
muchos mas
Mike7, 14 Nov 2013

#9

10.
El pelukaSuspendido
Aprende python ya que tienes conocimientos en php, y java si lo que quieres es
programacin orientado a objetos.

Te recomiendo que no te metas en las familias de C, seria mejor invertir en tiempo en


lisp.
El peluka, 14 Nov 2013

#10

11.
unknowMiembro maestro
algun_usuario escribi:

No basta un lenguaje, tienes que aprender muchos lenguajes, el lenguaje ms poderoso sera el
assembler pero es muy complicado, slo lo usan los genios en casos muy especiales, en su lugar se
prefiere el C que le sigue en potencia pero es ms fcil que el ensamblador, luego siguen los menos
potentes pero ms fciles los derivados del C como C++, C#, Java, etc.

Si, la mayora de gente describe a ensamblador como un monstruo, tiene una


abominable reputacin XD.

Mike7 escribi:
Jskone tiene razn Java es un lenguage potente pero tambien algo jodido, de todos modos es el que mas
ensean en los institutos sobre todo porque ahora la mayoria de las cosas se proyectaran hacia moviles
y como tambien dijo algun_usuario no bastara con un solo lenguaje tendras que saber muchos mas

Ya s, yo quiero aprender cuantos pueda, pero paso a paso...

El peluka escribi:
Aprende python ya que tienes conocimientos en php, y java si lo que quieres es programacin orientado a
objetos.

Te recomiendo que no te metas en las familias de C, seria mejor invertir en tiempo en lisp.

Por qu dices lo de C?
unknow, 14 Nov 2013

#11

12.
Cesar44Miembro maestro
Steel escribi:

Python me parece que se enfoca ms a problemas cientficos,


La razn es porque ese lenguaje es popular en el area de Biologa

o 1

Cesar44, 14 Nov 2013

#12

13.
sexy93Miembro de plata
depende ps , de que quieres trabajar?
sexy93, 14 Nov 2013

#13

14.
MetalfoteroMiembro maestro
De los que conosco, el visual basic.
Metalfotero, 14 Nov 2013

#14

15.
metalgearxdMiembro de oro
No creo que hay un lenguaje mas poderoso que otros , todos tienen sus pro y contras ,
ademas Lenguaje C++ es un lenguaje un poco viejo , ahora lo que se maneja es
LENGUAJES DE PROGRAMACION en la web como php , java , javascript , eso es
dependiendo de lo que se quiera trabajar

o 1

metalgearxd, 14 Nov 2013

#15
16.
Slayer_XMiembro de plata
No puedes usar un lenguaje para todo, hay lenguajes adecuados para determinadas
situaciones, al final lo que importa es que aprendas a programar, en 1 ao aparecer
un nuevo lenguaje especfico para hacer eso que buscas y tendrs que aprenderlo, asi
que enfocate en aprender a programar en general, algorimos, estructuras de datos,
eso es lo importante, los lenguajes van y vienen, solo es aprender sintaxis.

Clases de Programacin
AutoLISP/AutoCAD
Agregar a favoritos

Publicado hace 3 mesesSan Isidro, Lima, Lima

Me gustara invitarlo a participar en las Clases de Programacin en AutoLISP/AutoCAD.


Los detalles se muestran a continuacin: Lugar: El lugar puede ser de dos alternativas: 1.
En su domicilio. 2. La Victoria - Santa Catalina. Requisitos: - Para las clases de AutoLISP,
deber por lo menos conocer AutoCAD. Para ms informacin: qualitysof arroba gmail
punto com Johnny Tarmeo RPC: 991395220
Mejores comentarios

MARTINNOT1Hace 5 meses (editado)


"Una sociedad pone a prueba su vocacin democrtica en los espacios pblicos", me parece
genial. Un arquitecto con una visin sociogica inclusiva de la ciudad. Felicitaciones.
Responder

Das könnte Ihnen auch gefallen