1 mar 2008

Rutina LISP para suprimir grupos de textos de igual parte final:

Supongamos que tenemos en cualquier capa textos o multitextos con una misma
parte final, y los queremos suprimir dando ese final, ejemplo:
Tengo textos y multitextos de esta manera:

puerta21
ventana21
puertas21
entrada1

Y los quiero suprimir dando solo la parte final, entonces llamo al comando
"deltf" y cuando pide parte final pongo: 1
Entonces me suprime todos los _text o _mtext que finalicen en "1"........
Código LISP:

;;;Rutina "deltf" borra textos o multitextos
;;; dando el final de los mismos.
;;;.........................................
;;;by PREXEM - prexem@gmail.com - 2008.
;;; .........................................
(defun c:deltf ( /
fin
sel
cant
cont
)
(setq fin
(strcat "\52"
(getstring "\ndar final de texto a seleccionar: "
)
)
)
(setq sel
(ssget "X"
(list
(cons 0 "TEXT,MTEXT")
(cons 1 fin)
)
)
cant (sslength sel)
cont 0
)
(repeat cant
(entdel (ssname sel cont)
)
(setq cont (1+ cont)
)
)
(prompt
(strcat
"\n*Se han suprimido " (itoa cant) " textos*"
)
)
(princ)
) ;fin defun deltf

26 feb 2008

En Autolisp Comando "fillet" aplicado a sólidos 3d para redondear aristas:

;;;---- rutina para hacer fillet en aristas en
;;;----un 3dsolid...."fill_sol3d"
;;;----*************************************
;;;----*(c)by Prexem -
;;;----Víctor Adolfo Bracamonte - 2008*
;;;----*************************************
(defun c:fill_sol3d ( /
sol3d
radio
filltrant
)
(setq sol3d
(car
(entsel
"\nseñale el solido a redondear aristas: "
)
)
radio
(getreal
"\ndar radio del redondeo de arista: "
)
) ;setq
(setq
filltrant
(getvar 'filletrad)
)
(setvar "filletrad" radio)
(command "_.fillet" "t" "t" sol3d)
(prompt
"\n....
\n****Seleccionar aristas a redondear y terminar con ENTER****:"
)
(command pause "")
(setvar "filletrad" filltrant)
(princ)
) ;fin fill_sol3d

25 feb 2008

*Las Capas entre Software y Hardware (Sistema de la PC II)........

*Otro tema ilustrativo para comenzar a tocar temas de Programación,
es "Capas de Software que unen al Usuario con la PC o Hardware":

Anteriormente hablamos de que la Máquina solo es capaz de interpretar
la existencia de "pulsos" o "no-pulsos", lo que lee como "1" o "0",
de allí surge un lenguaje "binario" basado solo en ceros y unos, esto puede
interpretarse directamente como un código de máquina, pero de allí surgen
otros lenguajes simbólicos de lectura directa desde el hardware, y en esa
capa se ubican los lenguajes de "Bajo nivel" donde están los "Drivers",
que dialogan directamente con los circuitos electrónicos en base a lo
que haga el operador desde los periféricos (Mouse, teclado, etc.), los
drivers deben ser programados acordes a cada parte electrónica y
en código muy simbólico.........La siguiente capa superior es todo código
"Ensamblador o Nexo" hacia el sistema operativo........La siguiente capa
superior es el "Kernel" o "Núcleo de raíces controladoras del tráfico de
procesos del sistema operativo", se une directamente a los drivers con
imágenes abstractas de ellos y del hardware, y se programa con lenguajes
muy cercanos al nivel simbólico que tienen los anteriores, aquí se crea
la "interfaz" para programación desde el sistema o desde otros programas
hacia la máquina.........La siguiente capa hacia arriba es lo que llamamos
"Interfaz de Sistema" es todo lo visible del Windows o DOS u otro sistema
operativo, y es lo que genera el entorno de uso común de la PC........
En la siguiente capa de software hacia arriba ya tenemos los programas
como AutoCAD, y como átomos del mismo encontramos las API (Application
Programming Interface - Interfaces de Programación de Aplicaciones), son
programas intérpretes y bibliotecas de interpretación dentro de editores
de creación y cargado de ciertos lenguajes como el Autolisp, es allí donde
se suelen hacer las rutinas en vlisp y cargarlas, aunque también se pueden
hacer en cualquier editor de textos y guardarlas con extensión *.lsp para
que esa API las pueda leer.

*Resumiendo, la cadena entre hardware y programas es así:

*HARDWARE (LA MÁQUINA)>>>>
*DRIVERS (PROGRAMAS EN CÓDIGO DE BAJO NIVEL)>>>>
*ENSAMBLADORES (LENGUAJES INTERMEDIOS)>>>>
*NÚCLEO DE SISTEMA (LENGUAJES INTERMEDIOS)>>>>
*SISTEMA Y PROGRAMAS (LENGUAJES DE ALTO NIVEL)*

24 feb 2008

*Sobre el Sistema de un Computador:

*¿Qué es un Ordenador?:
(Una introducción al concepto de "Sistema")........

Es una máquina electrónica "ordenadora" de "datos-argumentos-pulsos", en base a pasos o conducciones eléctricas, capaces de registrar cambios ante situaciones de"pulsión" y "no-pulsión" de corrientes transformadas de ciertas maneras, esos registros derivan en interpretaciones binarias "si" o "no" que luego son traducibles a lenguajes intérpretes y a su vez a lenguajes cognoscibles por seres humanos, siendo ese proceso factible de concretar entre humano y máquina....

Esto es lo que posibilita la creación de ciertos"softwares" según los cuales el ordenador filtra datos o argumentos ingresantes o egresantes en un sentido esperado por el programador....

Datos o argumentos que ingresan son "inputs" y los que egresan son "outputs" en términos de "pulsos"....

Actualmente los datos o argumentos de entrada o salida pueden ser de texto, visuales, de sonido o multimediales....


*Software----es el conjunto de programas escritos en cualquier lenguaje y cargados o instalados en el ordenador.

*Hardware----es el conjunto de lo electrónico-físico de la PC.

*Programa----es un conjunto serial o de lista, de datos o argumentos que basamentan el comportamiento del ordenador en sus procesos.


*ESQUEMA DE UN SISTEMA DE HARDWARE:






*Básicamente existen dispositivos de entrada o de inputs, de proceso y guardado y de salida o de outputs, aunque también existen dispositivos mixtos o múltiples....Sin embargo el sistema es una permanente interacción entre Operador y Maquina:

>>>>INPUTS>>>>PROCESOS>>>>OUTPUTS>>>>

*Los mecanismos de guardado-memoria se ubican entre los procesos unificados en el Gabinete de la CPU o muy unidos a la misma por puertos específicos o USB....

*Ejemplos de Dispositivos de entrada:
• Teclados.• Lápices ópticos.• Scanner.• Micrófonos.• Mouse.• Cámaras.

*Ejemplos de Dispositivos de salida:
• Monitores.• Impresoras y plotters.• Parlantes.

*La Unidad Central de Proceso (CPU):

Es la máquina de procesos central, se compone esencialmente por:

• Unidad de control:
Controla los procesos de la computadora y determina que operaciones se deben realizar y en que orden.
• Unidad aritmética Lógica:
Realiza operaciones aritméticas, lógicas y de comparaciones.
• Dispositivos de memoria:
Todos los medios de almacenamiento que se unen a la CPU.

*Las distintas memorias de la computadora:

En sus procesos de datos o argumentos, la máquina central y los distintos componentes mas o menos periféricos, utilizan 3 tipos de memorias que pueden estar centralizadas en un solo lugar o dispuestas dentro de cada sub-componente:


*----Memoria temporal o RAM que sirve solo para retener lo necesario para el tránsito del procesamiento....
*----Memoria de guardado de datos y programas que sirve para almacenar u modificar datos usables si o no en procesos....
*----Memoria ROM que guarda datos y software o firmware que debe contener información no modificable, configuraciones y programas de inicio del hardware....


*Memoria de guardado modificable:
Es de almacenamiento permanente, tanto para programas como para datos , y es accesible o modificable por el operador en general (Disco Duro)....Además se utilizan otros medios de almacenamiento modificable como unidades de CD/DVD, Pendrives, disco duro removible, etc....

*Sobre los lenguajes de programación:
Los programas componentes de un sistema se expresan en lenguajes, que pueden ser:


*Lenguaje de máquina---->código binario dependiente directo del hardware.
*Lenguaje ensamblador---->código traductor de lenguaje a binario. (Bajo nivel)
*Lenguaje traducible---->lenguaje de programador traducible a binario. (Alto nivel)


*Lenguajes de alto nivel:
Es posible programar en todos los niveles de lenguaje, pero los de alto nivel son más usados debido a que son muy manejables por usuarios medios, esto crea gran dicotomía, o sea lenguajes mejor interpretables por máquinas son mas veloces en su operación pero difíciles de inteligir por humanos, a su vez lenguajes textuales y visuales mas inteligibles por cualquier operador, pero deben tener programas traductores (API) muy pesados que ralentizan las operaciones de la PC....Pero con los elementos que poseen de interpretabilidad, facilitan enormemente el poder crear software adecuado a lo que cada programador desea....Estos lenguajes son muy adecuados al tipo de hardware que toman como base, ya que todos los lenguajes de traducción vienen adecuados a las posibles diferencias entre PC's compatibles con IBM y para los sistemas operativos actuales....


*Tipos de lenguajes de alto nivel:
C,VisualBasic,JavaProlog,LISP,Autolisp, HTML,XML,JavaScript, etc.


*Los más usados en sistemas de diseño asistido por ordenador: Autolisp-VBA.
*Los más usados para customización de operaciones de oficina: VB, C.
*Para desarrollo de software----JAVA.----orientado a objetos, y otros........


*CONCLUSIONES:


“El operador es parte del sistema de cómputo”........Lo más importante en todo esto es la interacción Usuario/Computadora, ya que las máquinas carecen actualmente de poder auto-evolutivo y de auto-control en sus procesos, el programador es el "Cerebro" real de la PC, quién introduce los programas-guías, aquí surgen las necesarias herramientas para desarrollo de software que deben ser adecuadas tanto a las posibilidades de la máquina como a las del desarrollador.


*Respecto a la Visión Global de "Sistema", podemos decir que dentro del Software de una PC,
en el entorno Windows se ubica el Software AutoCAD, el cual a su vez está conformado
por programas de operación y de desarrollo, dentro de los de desarrollo de software o de
personalización del AutoCAD, vienen las API, que son las interfaces de
ciertos lenguajes soportados o admitidos como el Autolisp, el Visual Basic App u otros, y
dentro de la API ALisp es donde creamos las "rutinas vlisp" que son interpretadas hacia un
"Lenguaje de máquina" para que puedan operar debidamente.