Software didáctio para la enseñanza de programación de fresadora con control numerico (cnc).
Juan David González Gutierrez
FECHA: 11 DE JULIO
ESCUELA DE INGENIERIA DE ANTIOQUA ENVIGADO
2005
SOFTWARE DIDÁCTIO PARA LA ENSEÑANZA DE
PROGRAMACIÓN DE FRESADORA CON CONTROL NUMERICO (CNC).
JUAN DAVID GONZÁLEZ GUTIERREZ
Trabajo de grado para optar por el titulo de Ingeniero Informático
Director del trabajo Alejandro Peña
Asesor temático Alejandro Peña
ESCUELA DE INGENIERIA DE ANTIOQUA ENVIGADO
2005
Hoja de aceptación
Primer jurado __________________________
Segundo jurado __________________________
TABLA DE CONTENIDO
TABLA DE CONTENIDO ... 5
RESUMEN ... 8
ABSTRACT ... 9
INTRODUCCION ... 10
1 GENERALIDADES ... 12
1.1 PLANTEAMIENTODELPROBLEMA ... 12
1.2 OBJETIVOS ... 13
1.2.1 General ... 13
1.2.2 Específicos. ... 13
1.3 JUSTIFICACION ... 13
1.4 CONTEXTO ... 14
1.5 DELIMITACIONYALCANCE ... 15
2 MARCO TEORICO ... 16
2.1 EVOLUCIÓN DE LA MECANIZACIÓN ... 16
2.2 CONTROLNUMERICO ... 19
2.2.1 Historia ... 19
2.2.2 El control numérico en la actualidad ... 20
2.2.3 Programación en control numérico ... 20
• Estructura del programa ... 21
• Identificación de funciones ... 21
2.2.4 Funciones en control numérico ... 22
2.3 SOFTWARE DIDÁCTICO ... 22
3 DISEÑO METODOLOGICO ... 24
3.1 ANÁLISIS ... 25
3.2 DISEÑO... 25
3.3 DESARROLLO ... 26
3.4 DOCUMENTACIÓN ... 26
3.5 PRUEBAS ... 26
3.6 PRODUCCIÓN ... 27
4 ANALISIS ... 28
4.1 IDENTIFICACIÓN DE NECESIDADES. ... 28
4.2 ANÁLISIS TÉCNICO. ... 28
4.3 MODELADO DE LA ARQUITECTURA DEL SISTEMA. ... 29
5 DISEÑO ... 31
5.1 DISEÑO DE DATOS. ... 31
5.2 DISEÑO ARQUITECTÓNICO ... 32
5.3 DISEÑO DE LAS INTERFACES ... 35
5.3.1 Modulo de inicio ... 35
5.3.2 Modulo de Datos ... 35
5.3.3 Modulo de Grafica... 39
5.3.4 Modulo de Ayuda ... 40
6 DESARROLLO Y DOCUMENTACION ... 42
6.1 CÓDIGO FUENTE ... 42
7 PRUEBAS ... 59
7.1 APARIENCIA ... 60
7.2 FUNCIONALIDAD ... 60
7.3 AYUDAS ... 60
8 RECOMENDACIONES ... 62
9 CONCLUSIONES ... 63
10 BIBLIOGRAFIA ... 64
11 ANEXOS ... 66
1 MANUAL DE USUARIO ... 66
1.1 REQUISITOSTECNICOSDELSISTEMA ... 66
1.1.1 Software ... 66
1.1.2 Hardware ... 66
1.2 INSTALACIONYDESINSTALACION ... 66
1.2.1 Instalación del Simulador Fresadora con Control Numérico (CN) ... 67
1.2.2 Desinstalación del simulador Fresadora con Control Numérico (CN) ... 68
1.3 GUIADELMANEJODELSIMULADORDEFRESADORACONCN ... 69
1.3.1 Observaciones importantes para el ingreso de datos ... 69
1.3.2 Espacios que conforman la aplicación ... 70
1.3.3 Ejecución y manejo de la aplicación ... 70
1.3.4 Manejo y edición de datos ... 74
1.3.5 Acceso a las ayudas ... 77
2 ASPECTOS IMPORTANTES PARA EL INGRESO DE DATOS ... 78
3 CONTROL NUMERICO ... 81
3.1 HISTORIA ... 81
3.2 EL CONTROL NUMÉRICO EN LA ACTUALIDAD ... 82
3.3 PROGRAMACIÓN EN CONTROL NUMÉRICO ... 82
3.3.1 Estructura del programa ... 83
3.3.2 Identificación de funciones ... 83
3.3.3 Funciones en control numérico ... 84
4 TABLA DE VELOCIDAD DE CORTE SEGÚN EL MATERIAL ... 85
RESUMEN
La Escuela de Ingeniería De Antioquia con el fin de presentar a la sociedad Colombiana unos estudiantes íntegros y actualizados en su área y a través de la voz del Director de Ingeniería Mecatronica, Alejandro Peña, se dio a conocer la necesidad de desarrollar un software didáctico para el aprendizaje de la utilización de maquinas- herramientas con control numérico.
La finalidad de este informe es presentar a la propia universidad una aplicación que supla dicha necesidad, haciéndola de una manera sencilla y de fácil actualización, basada en la Fresadora con control numérico.
La aplicación se centra en la enseñanza de funciones del control numérico utilizadas en las Fresadoras que son útiles para la formación de los estudiantes de Ingeniería Mecatronica.
ABSTRACT
The School of Engineering of Antioquia with the purpose of presenting to the Colombian society a very good prepared and modernized students in their area and through the Director's of Mecatronics Engineering voice, Alejandro Peña, was given to know the necessity to develop a didactic software for the learning of the use of scheme-tools with numeric control.
The purpose of this report is to present an application that replaces this necessity, making it in a simple way and of easy bring up to date, based on the Milling machine with numeric control.
The application is centered in the teaching of some functions of the numeric control used in the Milling machines that are useful for the students of Mecatronics Engineering.
INTRODUCCION
En Colombia se han estado importando una serie de maquinas Herramientas que tienen como finalidad el mejoramiento de los procesos de desarrollo de elementos físicos. El resultado final de este proceso de mejoramiento es la fabricación de piezas de mejor calidad y a un menor costo para que las empresas de la región y el país logren estándares de calidad que les permitan competir en mercados internacionales y obtener mejores utilidades finales.
En el caso de la adquisición de nueva tecnología, esta requiere de largas capacitaciones por parte de los usuarios en el uso de la misma, tal es el caso de las maquinas herramientas de control numérico las cuales requieren de personal capacitado para su manipulación, lo que redunda en costos demasiados altos para las empresas en cuestión de tiempo y recursos, y que a la larga se convierte en ganancia para dichas empresas.
Respondiendo a muchas necesidades de capacitación en esta área del control numérico y la manufactura asistida por computador, se desarrolló un software didáctico que permitiera a los estudiantes y a personas que trabajan en esta área del conocimiento capacitarse de manera mucho más rápida a un menor costo. Específicamente esta aplicación esta enfocada hacia los principios básicos del maquinado en Fresadora de Control Numérico.
En Este informe se hace una explicación de manera clara y con un nivel adecuado de profundidad la forma en la cual se elaboró la aplicación de Simulación en Fresadora con Control Numérico. De acuerdo con lo anterior para el desarrollo de la aplicación se implemento una metodología de Ingeniería de Software basada en etapas, las cuales posibilitan el desarrollo completo y ordenado de la misma.
La metodología implementada consta de 7 etapas las cuales van desde el análisis de la necesidad del cliente, pasando por el diseño, sin olvidar el desarrollo en si en un lenguaje específico de programación que en nuestro caso es Visual Basic, y por ultimo
dejando una etapa de pruebas para garantizar la calidad del software, y otra de producción para ver los resultados del mismo.
El informe se elaboro en diferentes capítulos que muestran los objetivos propuestos, el planteamiento del problema, la justificación, y un marco teórico que contiene la forma en la cual se implementara la aplicación. También se presenta la metodología a usar durante el desarrollo y el manual de usuario de la aplicación.
Para concluir, la aplicación será de gran ayuda para los estudiantes del programa de Ingeniería Mecatrónica y de ingeniería Industrial para la comprensión del maquinado asistido por computador y el Control Numérico como tal al interior de la Escuela de Ingeniería de Antioquia, teniendo como base maquinado en Fresadora.
Finalmente se da un agradecimiento muy especial a las personas que de una u otra manera hicieron posible la culminación exitosa de este trabajo de grado.
1 GENERALIDADES
Hoy en día la enseñanza no se puede basar solo en tiza y borrador, es de suma importancia la parte práctica de la educación y el aminoramiento de los costos de la misma. Para este fin, se presentara en el siguiente capitulo las generalidades del proyecto, el problema que lo genero, los objetivos que se buscan, su justificación y por ultimo el alcance y delimitación del mismo.
1.1 PLANTEAMIENTO DEL PROBLEMA
En nuestro medio actualmente se esta implementando en las grandes industrias la utilización de maquinas herramientas de control numérico, las cuales son de un costo sumamente elevado y a su ves de una tecnología muy avanzada, lo que hace que su utilización sea restringida exclusivamente a los operarios que conocen la forma de operar de las mismas.
Teniendo en cuenta lo anterior surge la idea de crear un software capaz de generar un ambiente lo mas parecido posible a la realidad, enfocándose a la utilización de las fresadoras con control numérico. El concepto principal en la creación de dicho software es la capacitación de estudiantes de ingeniería Mecatronica en la programación de máquinas herramientas utilizando lenguaje G propio de la utilización de las maquinas de control numérico, esto redundaría de manera directa en las industrias en el poco tiempo y con la gran ventaja de no hacer daños en las propias maquinas ya que pueden resultar extremadamente costosos.
También es posible que no se limite solo a los estudiantes de Ingeniería Mecatronica, sino a los empleados de las empresas que necesiten ser adiestrados en las maquinas o que simplemente necesiten ser sometidos a evaluación de competencias en esta área del conocimiento o pruebas de habilidad en el manejo de las mismas.
1.2 OBJETIVOS
1.2.1 General
Desarrollar un software didáctico para la enseñanza y simulación de la programación en procesos de maquinado en fresadora que utiliza control numérico.
1.2.2 Específicos.
• Identificar los elementos técnicos, tanto de lenguaje de programación como de comandos de control numérico.
• Diseñar la interfaz para la programación de funciones de control numérico que guíe el proceso de maquinado de una fresadora con control numérico.
• Calcular los diferentes parámetros que intervienen en el proceso de mecanizado dependiendo del tipo de material utilizado.
• Implementar un modulo de simulación grafica que muestre el movimiento de la trayectoria de la herramienta en un proceso de maquinado específico.
• Elaborar un manual de usuario que muestre tanto las funciones como la descripción que se colocaran a disposición para ser utilizadas en la herramienta. Todo esto en una interfaz que se encuentre dentro del mismo software
• Brindar capacitación a los usuarios iniciales del sistema, en este caso, a profesores del área en la EIA.
1.3 JUSTIFICACION
En el mundo existen diferentes tipos de software incorporados en las fresadoras con control numérico para el manejo de las mismas, los cuales están diseñados de manera que el operario de la maquina simplemente presione botones o diseñe gráficamente la pieza, y esta genere automáticamente el programa o código que dirige la trayectoria de la herramienta para generar el contorno de la pieza que se desea.
También existe otro tipo de fresadoras de control numérico en las cuales el operario es quien genera el código manualmente en la maquina. Estas maquinas requieren de personal capacitado el cual es de difícil consecución, además por otro lado capacitar a las personas para el proceso de programación de las trayectorias es muy costoso desde el punto de vista del proceso industrial como tal debido a su exclusividad.
Si la opción que toman es la de capacitar el personal existente, se encuentran con un nuevo problema que seria la utilización de la maquina en este proceso, ya que son muy costosas tanto las maquinas como sus repuestos, además de necesitarlas produciendo todo el tiempo.
Para ello, se necesita un ambiente que permita la simulación y aprendizaje de las principales funciones del control numérico, así como la forma de programación independiente del proceso industrial.
Por esto, el software permitirá solucionar los problemas anteriores proporcionando ambientes simulados para la programación de las trayectorias necesarias para la creación de una pieza especifica, sin la necesidad de recurrir a la maquina como tal y hacer un desgaste de ella sin necesidad.
Con el desarrollo de estos ambientes simulados se busca mejorar y optimizar la enseñanza de la programación en maquinas de control numérico y de esta manera presentar a la sociedad una mayor cantidad de mano de obra calificada para la nueva generación de maquinas que se están utilizando en el sector industrial del país.
Para terminar una de las principales razones que ayudo al desarrollo de estos ambientes, fue la de presentarles a los estudiantes de ingeniería mecatronica una visión mas amplia del mundo al cual se van a enfrentar en un futuro. El hecho de conocer e interactuar con este tipo de maquinas genera una ventaja competitiva en su área que es mas grande aun si su conocimiento va mas allá de un sencillo contacto con la herramienta y profundiza mas en su funcionalidad.
1.4 CONTEXTO
El desarrollo de este software fue realizado en la Escuela de Ingeniería de Antioquia ubicada en la Calle 25 sur Nº 42-73, Envigado, Antioquia.
1.5 DELIMITACION Y ALCANCE
El resultado final de este proyecto será la entrega a los estudiantes de la EIA un software que simule el funcionamiento de una fresadora con control numérico de manera grafica en 2 dimensiones.
El software debe ser capaz de ilustrar las diferentes funciones posibles para la utilización de la fresadora.
Se entregara adicionalmente toda la documentación necesaria para la utilización del mismo a manera de manual de usuario.
Dentro del software se desarrollara y entregara un modulo especifico en donde este contenido un resumen de las funciones a utilizar y sus respectivos ejemplos para un mayor entendimiento del mismo.
Para el desarrollo de la aplicación se utilizo una licencia educativa de Microsoft Visual Basic 6 la cual permite la creación y edición del software sin necesidad de nuevas adquisiciones de licencias.
2 MARCO TEORICO
2.1 Evolución de la mecanización
1En un principio cuando el hombre sintió la necesidad de crear nuevas herramientas para poder mejorar su modo de vida el mismo fue adquiriendo métodos de fabricación los cuales le ayudaban a elaborar diferentes elementos o piezas según la necesidad de la época, por ejemplo, lo primero que el hombre hizo fue idearse herramientas para construir herramientas, es decir, para construir puntas de flechas o cuchillos para una guerra, los cuales se debían hacer de manera rápida y para ello el hombre construyo hornos y moldes y de esta manera siempre quedarían iguales y de buena calidad.
En este punto la intervención del hombre en el proceso era casi única, solo estaba el hombre y el horno con los moldes.
Viendo esto el hombre quiso automatizar los procesos y para ello evoluciono creando diferentes grados de automatización los cuales son:
• Manual: En donde solo se utilizan las manos principalmente con la ayuda de otras partes del cuerpo.
• Herramienta manual: Se pasa de usar solo partes del cuerpo a utilizar herramientas que son manipuladas por las manos en su totalidad.
• Herramienta manual mecanizada: Se utilizan herramientas mecanizadas, pero el manejo es propio del operario (posición y sujeción).
1 [pem-99]
• Maquina herramienta universal: La sujeción y accionar corren por cuenta de la maquina y la posición por cuenta del operario.
• Maquina de ciclo fijo: Todo corre por cuenta de la maquina tanto movimiento, sujeción y accionar, solo interviene el operario para hacer cambios en el ciclo.
• Maquina de ciclo programable: La maquina se encarga de hacer sus cambios en el ciclo.
• Maquina inteligente: Su principal característica son los sensores que captan los cambios en el proceso y estos hacen que la maquina actúe de manera independiente sin intervención del hombre.
A través de la historia se fueron dando diferentes modelos productivos que dependían de su espacio en el tiempo. Estos modelos son los siguientes:
• Modelo artesanal
Se dio antes de la Revolución industrial y se basaba en la construcción de elementos para el uso de la población. Se hacían principalmente en talleres domésticos. Se tenía en menor proporción el uso de energía eólica o hidráulica, la gran mayoría era producida por esfuerzo humano. El artesano era le encargado de hacer todo, desde la consecución del modelo, la atención al cliente, y la calidad del producto.
• Primer modelo industrial
Este modelo se dio alrededor de la revolución industrial. Su principal fuente de energía era el vapor seguido de la hidráulica, por lo cual las fábricas que tuvieron su inicio en esta época debían estar cerca de arroyos y en lugares donde los vientos fueran fuertes. Otro aspecto importante es como ya lo mencione, la creación de fabricas que eran lugares en donde se tenían procesos establecidos para la fabricación de las piezas, se tenían mas operario y surgió la necesidad de tener ingenieros hábiles y capaces de diseñar piezas intercambiables e independientes que formen una gran estructura.
• Segundo modelo industrial
La esencia de este modelo es la división del trabajo y de las responsabilidades. Se dio alrededor de 1911 con la publicación del libro “the principles of scientific” que planteaba dicho modelo. En consecuencia se crearon nuevos roles de trabajo y nuevos departamentos tales como el del capataz o la oficina técnica.
También la energía eléctrica le fue quitando el puesto al vapor y el hierro fue el material predilecto de los fabricantes.
• Modelo actual
Tiene sus inicios en la época de los 80 y 90’s y comprende los siguientes niveles:
1. Nivel de mercado: globalización calidad y seguridad son sus puntos mas fuertes.
2. Nivel de recursos: con los altos costos de los materiales y trabajadores se crea la necesidad de subcontratar y economizar en procesos.
3. Nivel de producto: ampliación y variedad de productos como efecto de la competencia.
4. Nivel tecnología: la demanda exige cambios rápidos en la producción de diseños y más rapidez en so consecución y ahí es donde interviene la tecnología.
Con la introducción de los ordenadores como principal elemento en la producción combinado con las maquinas herramienta y el control numérico se llego a la cima en la utilización de elementos que apoyen el desarrollo de productos.
Con este apoyo de las maquinas herramientas de control numérico se pasa a utilizar materiales distintos al metal en fines similares a los del mismo metal.
2.2 CONTROL NUMERICO
22.2.1 Historia
El inicio de la utilización de control numérico en el mecanizado de piezas se dio como la gran mayoría de los avances tecnológicos de nuestros tiempos, en la segunda guerra mundial y en las siguientes que ocurrieron.
La necesidad se creo cuando los ingenieros de la armada americana necesitaron desarrollar una leva para un motor de avión que fuera tan precisa en su fabricación que lograra generar un ahorro de combustible tan grande en los motores de los aviones que este aumentara su autonomía y por lo tanto su rango de eficiencia.
Pero bueno el problema en si no era la leva sino mas bien la forma en como se debería fabricar ya que poseía curvas tan precisas que se necesitaba un modelo que calculara la trayectoria de la herramienta, en este caso una fresa, con gran precisión. Además era muy complicado para el operario de la maquina seguir dicha trayectoria con los dos ejes comprometidos en la actividad.
La primera empresa en utilizar el control numérico fue “Parsons Corporation” quienes se idearon una fresa que trabajaba con tarjetas que interpretaba la maquina como movimientos de la herramienta.
Esto le sirvió a la empresa para aumentar su volumen de producción y a su ves la capacidad de elaborar diseños más complejos en un menor tiempo.
La Fuerza Aérea de Estados Unidos se entero de la utilización de dicha maquina y emprendió esfuerzos con el MIT y la compañía Parsons. De este evento salio como resultado la primera maquina herramienta de control numérico que era una fresadora con tres ejes y con la capacidad de utilizar dos de ellos a la vez. Funcionaba con tarjetas o cintas perforadas y carecía de lenguaje propio por lo cual su programación era demasiado engorrosa y se llevaba a cabo por personal muy cualificado.
A medida que avanzo el tiempo el desarrollo del control numérico fue paralelo al de los ordenadores. En 1961 se genero el primer lenguaje de programación para maquinas herramientas de control numérico que se denomino Automatically Programmed Tooling (APT).
2 [alj-81]
2.2.2 El control numérico en la actualidad
Para nuestros tiempos la utilización de maquinas herramientas de control numérico es mucho mayor y a unos costos menores que en un principio. Las grandes industrias utilizan estas maquinas para la fabricación de piezas de precisión utilizadas mas que todo en aeronáutica como también para la eliminación del actuar del ser humano en labores que representen peligro para la integridad física.
Se ha vuelto tan común el uso de las maquinas herramientas de control numérico que para una labor aparentemente simple como la fabricación de un Rin para un vehículo se hace utilizando este tipo de maquinas.
Estos avances se han llevado a cabo también por las exigencias del consumidor que siempre espera productos de muy buena calidad y confiables para su uso.
Otra aplicación muy importante es en la fabricación de piezas para el uso medico, ya sea herramientas utilizables en las salas de operación, como en las personas que son operadas con prótesis metálicas o plásticas en su cuerpo, las cuales deben ser extremadamente confiables y de muy buena calidad
2.2.3 Programación en control numérico3
Como en muchos lenguajes de programación este también cuenta con saltos y subrutinas las cuales se deben hacer de cierta manera ordenada para que sean entendibles por la maquina que las interpreta. Esta programación se debe hacer en 3 fases distintas que ayudan al orden del desarrollo final. Estas fases son:
Preparación del trabajo: A partir de las características de la maquina herramienta, en nuestro caso la fresadora, se generan una secuencia de operaciones en donde se definirán dichas características y además se definirán las herramientas a utilizar.
Elaboración del programa pieza: Reelabora el código fuente con los tiempos de mecanizado, posición y coordenadas de la pieza a mecanizar.
3 [faa-96]
Depuración o simulación: Esta es la fase en donde nuestro proyecto entra en acción ya que es donde se simula el mecanizado de la pieza para evitar daños en la maquina herramienta.
• Estructura del programa
Este paso en la programación se compone de la utilización de un código legible para la maquina herramienta que en este caso es el código ISO 841 el cual esta compuesto por:
• Funciones preparatorias (G): determinan geometría y condiciones de trabajo.
• Funciones de control de avance de los ejes y velocidad del cabezal (F,S).
• Funciones de control de herramienta (T).
• Funciones auxiliares (M).
• Identificación de funciones
A continuación se presentara la asignación a cada una de las letras utilizadas en CN según la norma ISO 841:
A Coordenada angular alrededor del eje x B Coordenada angular alrededor del eje y C Coordenada angular alrededor del eje z
D Coordenada angular alrededor de un eje espacial o tercera velocidad de avance.
E Coordenada angular alrededor de un eje espacial o segunda velocidad de avance.
F Función de velocidad de avance.
G Función preparatoria.
H Disponible
I Disponible para utilizar en CNC continuos.
J Disponible para utilizar en CNC continuos.
K Disponible para utilizar en CNC continuos.
M Función auxiliar N Numero de bloque O No utilizar
P Movimiento terciario paralelo al eje x Q Movimiento terciario paralelo al eje y
R Movimiento terciario paralelo al eje z o desplazamiento rápido según el eje z.
S Función de velocidad de rotación
T Función herramienta
U Movimiento secundario paralelo al eje x V Movimiento secundario paralelo al eje y W Movimiento secundario paralelo al eje z
X Movimiento principal eje x Y Movimiento principal eje y Z Movimiento principal eje z
2.2.4 Funciones en control numérico
En control numérico así como en todos los programas de simulación se deben escribir los pasos a seguir basándose en comandos los cuales interpreta el simulador y los convierte en el resultado que se espera.
Las principales funciones utilizadas en una fresadora con control numérico son las siguientes:
1. Posicionamiento rápido (G00) 2. Interpolación lineal (G01)
3. Interpolación circular (G02, G03) 4. Programación de la Herramienta (T)
Realmente hay mas funciones que se pueden utilizar en control numérico para fresadoras, pero en la aplicación solo se utilizan las mencionadas.
2.3 Software didáctico
Es esencial para la comprensión completa de la aplicación explicar de qué se trata un software didáctico.
Un software didáctico es una aplicación que se usa exclusivamente para la enseñanza de algún tema en especial ayudado por la intervención de un programa de computador destinado o hecho para el tema en cuestión. Por ejemplo existe software dedicado a la enseñanza del manejo del teclado, de métodos financieros, de utilización de maquinas, etc.
Este tipo de software se divide en varias categorías, las cuales son:
• Simulación: Maquinas, herramientas, procesos, eventos en el tiempo, ecuaciones financieras, etc.
• Tutórales: Manejo de aplicaciones en computadores.
• Pedagogía: Enseñanza de idiomas, ciencia, metodologías etc.
Se puede decir que el Simulador de Fresadora con Control numérico cabe dentro del software didáctico de simulación, ya que esta diseñado para la enseñanza de la programación de Maquinas- herramientas con control numérico y su fin es el de mostrar a los estudiantes en un ambiente simulado lo que se puede hacer con los comandos aprendidos en control numérico.
3 DISEÑO METODOLOGICO
En la Figura 1 se muestra el proceso de desarrollo basado en las metodologías definidas en Ingeniería de Software:
En el proceso del desarrollo del software se definió que la metodología de ingeniería de software mas adecuada para su elaboración es la que se muestra en el siguiente diagrama:
Figura 1 Metodología de Ingeniería de Software para el Desarrollo de un software.
Dicha metodología proporciona un amplio rango de posibilidades tanto para el desarrollo del software como para la explicación del funcionamiento y las características del mismo.
ANALISIS
DESARROLLO DOCUMETACION
PRODUCCION DISEÑO
PRUEBAS
Esta metodología tiene como objetivo construir un software de manera ordenada, basándose en procesos que se desarrollan de manera secuencial en el tiempo, es decir, uno después del otro y en el caso del desarrollo y la documentación se hace una excepción ya que es importante documentar mientras se hace la aplicación y no al final, donde se puede pasar por alto información importante en el manual de usuario.
3.1 Análisis
El análisis es el primer paso en el proyecto, en el cual se estudian diferentes aspectos tales como: la plataforma en la cual se va a trabajar, las mejores opciones posibles para el diseño del software o aplicación que estén de acuerdo con los objetivos propuestos, así como el alcance de los mismos.
De acuerdo con la información encontrada en diferentes medios tales como: el libro de “Programación de Maquinas con Control Numérico”
[pem-99] y diferentes paginas en Internet, se concluyo que la plataforma mas adecuada para desarrollar el proyecto es Visual Basic, ya que esta permite la utilización herramientas de programación gráfica, además de la facilidad en la conexión con otro software que pueda ser utilizado en interacción con la aplicación.
Para el diseño del software se busco que fuera legible, que presentara muchas posibilidades de ayuda y que su manejo fuera sencillo. De acuerdo con lo anterior se opto por que el software contara los siguientes módulos:
- Modulo de inicio.
- Modulo de datos.
- Modulo de gráfico.
- Modulo de ayuda.
3.2 Diseño
De acuerdo con la metodología de trabajo propuesta en la Figura 1, el paso a seguir es el del diseño de la aplicación, la cual se centrara en la elaboración de la lista de requerimientos específicos para la misma, y a su vez se presenta una solución viable para estos.
En este paso también se elaboran las pautas para la siguiente etapa en el desarrollo de la aplicación.
3.3 Desarrollo
El desarrollo es la etapa central del proyecto, ya que en este punto se concentran los aspectos tenidos en cuenta en la etapa de diseño y análisis, que se verán reflejados en la aplicación final.
En esta etapa se hace un desarrollo paso a paso, desarrollo propuesto en la etapa de diseño, el cual implementa mejoras en los elementos ya expuestos.
La programación de la aplicación se hará por módulos, cada uno de los cuales comprende los elementos descritos en la etapa de diseño y cada uno de ellos se someterá a pruebas independientes.
De esta manera se asegura que al unir los módulos se tiene una armonía completa, eliminando la posibilidad de que existan problemas en el momento en la actualización de cada uno de ellos.
3.4 Documentación
Esta etapa es de importancia principalmente por el aporte que se realiza en el manual del usuario.
Su finalidad, es la construcción de un manual, el cual sirva de apoyo a los usuarios potenciales de la aplicación, además de proporcionar una ampliación en los conceptos básicos del control numérico y su funcionalidad en la aplicación.
Es de anotar que la documentación se elabore de manera simultánea con la programación de la aplicación, ya que de no hacerlo, al final se pueden presentar perdidas de datos tanto en el manual como información importante para el usuario.
3.5 Pruebas
En esta etapa se harán una serie de pruebas que buscan el logro total de los objetivos. Para ello se elaborara un formato de evaluación que comprenda los siguientes aspectos sobre la aplicación
Las pruebas se harán sobre 3 aspectos específicos que son:
• Apariencia: Busca que la aplicación sea amable con el usuario y que no este cargada en exceso, ya sea de botones como de graficas o dado el caso de abultamiento en la pantalla.
• Funcionalidad: Busca que cada una de las funciones definidas en la aplicación se ejecuten correctamente.
• Ayuda: Busca que el modulo de ayuda, si cumpla efectivamente su función y que lo haga de una manera clara para el usuario.
3.6 Producción
Es la última fase del proyecto, y es el espacio donde se hace la entrega final de la aplicación al usuario, así como su puesta en funcionamiento.
Esta etapa incluye la entrega del manual de usuario y el software.
En el mismo momento en que se entrega, la producción permite un tiempo adicional de pruebas, que corren por cuenta del usuario final.
Después de este tiempo, aproximadamente 3 meses, se hace una visita al usuario, se recogen las inquietudes sobre el producto, y se comienza un proceso de retroalimentación que permiten las mejoras en la aplicación.
El desarrollo de la aplicación se da por terminada en el momento en que se termina la capacitación de los usuarios finales de la misma.
4 ANALISIS
Debido a que esta es la etapa inicial del proyecto, es de suma importancia hacerla con la mayor claridad posible, y para ello se estructuraro en los siguientes pasos.
4.1 Identificación de necesidades.
Es el primer paso a seguir en la elaboración del proyecto. Es donde se recopila la información necesaria para comenzar a diseñar y desarrollar el software. Esta información se presenta a modo de lista de requerimientos que se obtienen en una entrevista con el asesor del proyecto. También se establecen los tiempos de entrega y evaluación.
Los requerimientos dados por el asesor para la aplicación son los siguientes:
La aplicación debe:
• Tener un espacio en donde el estudiante escriba las líneas o bloques de comandos.
• Calcular la velocidad de giro del cabezal.
• Generar graficas con líneas y curvas.
• Tener un espacio en donde se muestre la grafica resultante de la interpretación de los bloques de comandos.
• Poseer información de ayuda tanto para el manejo de la aplicación como para los comandos y funciones del control numérico.
• Dar la posibilidad de cambiar el grosor de la herramienta.
• Almacenar los bloques de programación en archivos para su posterior ejecución.
4.2 Análisis técnico.
Para este paso se realiza un análisis de los principios técnicos del proyecto y su viabilidad, además de las necesidades de rendimiento fiabilidad y características de mantenimiento.
La evaluación de dichas necesidades se realizara basada en los siguientes aspectos:
• Hardware: El software al ser dirigido a la EIA, debe ser soportado por los equipos que se encuentran actualmente en las salas de cómputo del mismo establecimiento. La EIA cuenta con equipos IBM y DELL que poseen procesadores de ultima tecnología (PIV), discos duros de gran capacidad (40GB) y memoria RAM igualmente de buena capacidad (256Mb).
• Software: El software se hará en una herramienta que posea la EIA ya que aminora los costos del proyecto. La aplicación debe ser de fácil mantenimiento debido a que se le entrega a la universidad y solo unos pocos estarán capacitados plenamente en ella.
Basados en la información relacionada en diferentes fuentes de datos tales como las pautas dadas por el asesor, el libro de “Programación de Maquinas con Control Numérico” de Miguel Ángel Sebastián Pérez, diferentes paginas en Internet y las características de los equipos y software de desarrollo que posee la EIA, se concluyo que la plataforma mas adecuada para desarrollar el proyecto es Visual Basic 6.
4.3 Modelado de la arquitectura del sistema.
La aplicación propuesta se hará en 4 módulos específicos, en los cuales se tendrá toda la información necesaria para que el usuario pueda interactuar con el programa de manera rápida. Los módulos propuestos son los siguientes:
• Modulo de inicio: Da un vistazo general de lo que posee la aplicación grafica, con su nombre y la herramienta que se va a utilizar.
• Modulo de datos: En este modulo se encuentra una tabla en la cual se muestran los datos, o la secuencia de comandos para el mecanizado de la pieza. También se tiene la posibilidad de edición, almacenamiento y carga de datos guardados con anterioridad y la posibilidad de calcular la velocidad de la herramienta.
• Modulo de grafica: Su principal función, es la de mostrar la grafica de la pieza a mecanizar, con la opción de borrar la grafica que se tiene en pantalla.
• Modulo de ayuda: En este modulo se encontrara toda la información necesaria para comprender la aplicación, así como el manual de usuario.
5 DISEÑO
Después del análisis, se procede a la etapa de diseño de la aplicación, en la cual se establecen las especificaciones, que indicarán la forma en la que se hará la programación y la secuencia de pasos para lograr el producto final.
5.1 Diseño de datos.
En la aplicación que se desarrollara los datos que se manejan serán los ingresados por el usuario en las líneas de comandos que posteriormente se graficaran en otro modulo distinto.
Estos datos pueden ser cargados de uno creado con anterioridad, ingresados desde cero, editados o almacenados para su uso posterior.
En la Figura 2 se presentan los casos de uso de la aplicación que ayudan a un mejor entendimiento de la misma.
Figura 2. Diagrama de casos de uso.
Ingresar datos
Graficar líneas de comandos
Editar datos
Simulador de fresadora con CN
usuario
Calcular velocidad de giro
5.2 Diseño arquitectónico
El software estará diseñado de tal manera que en una sola pantalla inicial se pueda observar la totalidad de las características del mismo.
Para ello se colocaran una serie de pestañas en la pantalla inicial que se observaran en todo momento, y que darán la posibilidad de navegar por cada una de ellas en cualquier momento, esto permitirá además la representación de cada uno de los módulos descritos anteriormente, un modulo de inicio, uno de datos, uno gráficos y por ultimo uno de ayuda.
Después de tener el diseño de los datos se procederá a elaborar un diagrama de secuencias que ilustre la manera como debe fluir el programa y los pasos que puede realizar el usuario en el mismo, así como los resultados que se obtendrán al final. Lo anterior de muestra en la Figura 3.
Ingresar datos Carga datos existentes
Calcula velocidad de corte
Grafica
Edita los datos Guarda los datos Continua ingresando datos
Cambia datos Elimina datos
Termina Figura 3. Diagrama de secuencias
Con el diagrama anterior se saca como conclusión que la unica relación directa que existe en la aplicación se da entre los bloques de comandos, los cálculos de velocidad de corte y la grafica.
También es importante presentar de una manera especifica las secuencias de pasos que debe seguir el usuario para cada caso de uso, y para ello se utilizaran nuevamente los diagramas de secuencias.
El primer diagrama de secuencias que se presentara para los casos de uso es el de ingreso de datos y se muestra en la Figura 4.
Figura 4. Diagrama de secuencias para el ingreso de datos
Segudamente se presentara el diagrama de secuencias para la edicion de los datos y este de muestra en la Figura 5
Ingresar datos Carga datos existentes
Calcula velocidad de giro
Continua ingresando datos Guarda los datos
Terminar
Figura 5. Diagrama de secuencias para la edición de datos
Los pasos que se siguen para calcular la velocidad de corte son los que se muestran en la Figura 6
Figura 6. Diagrama de secuencias para calcular la velocidad de giro del cabezal
5.3 Diseño de las interfaces
Después de tener claro que es lo que se busca con la aplicación, se procede a diseñar y explicar que contiene cada uno de los módulos que se mencionaran en la etapa de análisis.
5.3.1 Modulo de inicio
El modulo de inicio permitirá la visualización de todas las pestañas que componen el programa, así como un botón que permite la salida directa de la aplicación, dicho modulo se muestra en la Figura 7.
Figura 7 Modulo de Inicio.
Es un modulo simple que se encarga solamente de mostrar al usuario de que se trata la aplicación, en otras palabras, es la presentación de la aplicación.
5.3.2 Modulo de Datos
El siguiente modulo esta concebido solo para el ingreso de datos, comandos y variables utilizadas por el control numérico. En este modulo los comandos son ingresados en una tabla que es interpretada por el modulo de grafica, en donde cada uno de los reglones tendrá una característica específica. El orden de las columnas irá de acuerdo con los parámetros que son necesarios para cada comando. Estos parámetros son los que se usaran en el simulador, cada bloque de programa poseerá las siguientes funciones:
1. Funciones de Enumeración de Bloque (N):
Representa la línea de comando sobre la cual se esta trabaja.
Su conteo va de acuerdo con un patrón numérico establecido por el usuario, de modo que si se presenta un error, el usuario pueda ingresar líneas de código adicionales.
2. Funciones Preparatorias (G):
Representa la columna de las funciones preparatorias, e indican los parámetros geométricos, ya sean líneas rectas, interpolaciones circulares o la ubicación de un punto en particular, estos comandos son los siguientes:
G00: Posicionamiento rápido.
G01: Interpolación lineal.
G02: interpolación circular.
Estas funciones son las que determinan que los otros parámetros que se ingresan en las columnas de la misma fila sean diferentes de cero.
3. Coordenada (X):
La ubicación de la herramienta que realiza el proceso de mecanizado, es ubicada mediante la utilización de coordenadas cartesianas. Uno de estos valores es el movimiento de la herramienta en el sentido de X, la cual toma como base un plano cartesiano que en nuestro caso tendrá un rango de 0 a 11175 unidades de medida. Las unidades de medida estarán de acuerdo con las necesidades del usuario.
4. Coordinada (Y):
Al igual que con el posicionamiento del eje X, es necesario tener un segundo punto de referencia para poder crear un punto en el plano cartesiano que este conformado por 2 coordenadas X y Y, y en esta columna se colocara el punto para el eje Y que en nuestro caso se tiene un rango de 0 a 5895 unidades de medida.
5. Función Angular en Coordenadas Polares (A):
Esta columna solo sirve para utilizarla en el caso en donde se desee graficar una curva la cual se forma a partir de un arco de
una circunferencia, aquí se marca el punto de inicio del arco y el valor del ángulo en radianes.
6. Función Angular en Coordenadas Polares (B):
La columna B es en la cual se pone el punto final del arco que se comenzó a crear en el punto A. también se da en radianes. Es importante saber que si se pone el valor de cero da por entendido que el arco termina en este punto, y en el caso en que tanto el punto A como el B sean cero, el arco que se genera termina siendo una circunferencia completa que va de 0º a 360º.
Este modulo también posee una herramienta para calcular la velocidad de corte la cual esta determinada por los valores del diámetro de la herramienta, las revoluciones por minuto y el material en a maquinar.
El grosor de la herramienta esta determinado por la letra T en control numérico y debe ser diferente de cero. Este grosor determina el ancho del camino que va a seguir la herramienta sobre el blanco a maquinar.
Finalizada la explicación de las columnas y su representación en el momento de graficar, se procede a la explicación del resto de las características del modulo que se trabajan, entre ellas están como principales las de edición de los comandos que son las siguientes.
Figura 8 Modulo de datos
La aplicación ofrece la posibilidad de guardar los bloques de programación que se escriben en las celdas en archivos de texto
especiales. También ofrece la posibilidad de cargar archivos para que no sea tan complejo el manejo en el momento de querer mostrar una pieza maquinada anteriormente.
A continuación se hará una explicación de lo que debe hacer cada botón en este modulo y posteriormente en la etapa de desarrollo se mostrara como lo ejecutara.
BOTONES 1. Abrir datos
Como se explica en el párrafo anterior, este botón sirve para cargar comandos guardados en un programa en particular. En el momento de la ejecución, la aplicación pregunta cual es el nombre del archivo que se va a cargar, y la carga se hace en las celdas que posteriormente serán graficadas por el modulo.
2. Guardar datos
Este modulo, proporciona la posibilidad de guardar los comandos que se están escribiendo, para que en un futuro se puedan cargar y graficar. Cuando el usuario de la aplicación ejecuta el botón, este pregunta el nombre del archivo en el cual lo desea guardar, este archivo puede ser uno existente o uno nuevo.
3. Crear datos
Si el usuario no desea cargar ningún archivo de comandos, sino que por lo contrario desea crear uno nuevo, este es el botón que se debe ejecutar en un comienzo.
Cuando el usuario ejecuta el botón, la aplicación se encarga de preguntarle por los valores de cada una de las columnas empezando por la columna “N” de la tabla, en el caso de funciones modales el valor de dichas funciones no cambian entre reglones, por lo que se debe escribir en la celda el mismo valor.
4. Editar datos
La función de este comando es cambiar un dato especificado por el usuario, para tal fin se ejecuta este botón y la aplicación solicita la línea a editar, luego la columna a modificar (entre la 1 y la 6) y por ultimo el valor que desea colocar en la celda. Este procedimiento solo es posible hacerlo uno por vez.
5. Continuar secuencia.
Este botón esta concebido para realizar la secuencia de comandos paso a paso, aquí el usuario, tiene la posibilidad de navegar entre los módulos de gráfica y datos, lo que le permitirá observar al usuario la gráfica hasta el paso en el cual se encuentra el programa y luego continuar introduciendo los datos.
6. Borrar fila
Después de tener los botones para la creación del código, también es necesaria la creación de botones para borrar. Su principal característica es la de eliminar una fila seleccionada. Las líneas siguientes suben hacia arriba, para evitar la existencia de bloques sin código luego del borrado.
7. Borrar datos
Este botón a diferencia del anterior lo que hace es borrar todos los datos de la tabla para poder empezar nuevamente a escribir los comandos que el usuario desee.
5.3.3 Modulo de Grafica
El modulo de grafica es la parte de la aplicación en donde el usuario puede visualizar la trayectoria que genera la herramienta al recorrer el programa o las líneas de comando programadas.
Este modulo cuenta con dos botones de comando los cuales realizan la operación de graficado y borrado. Este modulo además posee un cuadro de grafica con una rejilla que sirve para guiar al usuario en el momento de graficar como se puede observar en la Figura 9
Figura 9 Modulo Grafica
5.3.4 Modulo de Ayuda
El modulo de ayuda se encuentra en la parte superior derecha de la aplicación, y contiene el resumen de lo que posee la aplicación.
Este modulo tiene 3 accesos a documentos, que sirven de apoyo al usuario en el manejo de la aplicación. Los accesos dentro del modulo de ayuda son:
• Manual de usuario: Proporciona al usuario las instrucciones para el uso de la aplicación.
• Control numérico: Exhibe al usuario la historia del control numérico y las funciones que posee, así como la definición de las variables que intervienen en ella.
• Ingreso de Datos: Es una pequeña guía para ingresar los datos de la tabla de comandos de manera correcta, y es la parte que se encarga de la generación grafica de la trayectoria programada.
El modulo de ayuda se puede observar en la figura 10
figura 10 Modulo de Ayuda
6 DESARROLLO Y DOCUMENTACION
Siguiendo con la metodología aplicada para la construcción de la aplicación, el paso siguiente es llevar las especificaciones definidas en el diseño a un lenguaje que sea comprensible por la maquina que simula el proceso, y que se selecciona previamente en el modulo de análisis.
6.1 Código Fuente
A continuación se muestra cada uno de los bloques de programación que se usaron durante el desarrollo de la aplicación.
Dim k As Single
Dim i, j, col, fila, cont, temp, numcol, numfila, mem As Integer Dim filename, txt, dato As String
'Se inician variables globales Private Sub Form_Load() numcol = 7
numfila = 199 End Sub
'Permite abrir una secuencia de comandos existente Private Sub abrir_Click()
'Se abre el cuadro de dialogo de Windows que permite escoger un archivo para abrirlo
dialogo.Filter = "Text file (*.txt) |*.txt"
dialogo.ShowOpen
filename = dialogo.filename
Open filename For Input As 101 DoEvents
'Leemos el archivo y colocamos los datos en la tabla For i = 0 To numfila
For j = 0 To numcol Input #101, txt
datos.TextMatrix(i, j) = txt Next j
Input #101, txt Next i
Close #101 End Sub
'Permite guardar una secuencia creada Private Sub guardar_Click()
dialogo.Filter = "Text file (*.txt) |*.txt"
dialogo.ShowSave
filename = dialogo.filename Open filename For Output As #101
'Leemos el archivo y colocamos los datos en la tabla For i = 0 To numfila
For j = 0 To numcol
Write #101, datos.TextMatrix(i, j);
Next j
Write #101, Next i
Close 101 End Sub
'Carga los nombres de las columnas de la secuencia de comandos
Private Sub ingreso_Click() Dim contadorbl As Integer datos.Row = 0
datos.col = 0 datos.Text = "N"
datos.Row = 0
datos.col = 1 datos.Text = "G"
datos.Row = 0 datos.col = 2 datos.Text = "X"
datos.Row = 0 datos.col = 3 datos.Text = "Y"
datos.Row = 0 datos.col = 4 datos.Text = "I"
datos.Row = 0 datos.col = 5 datos.Text = "J"
datos.Row = 0 datos.col = 6 datos.Text = "A"
datos.Row = 0 datos.col = 7 datos.Text = "B"
fila = 1 col = 0
contadorbl = 10
'Hace un llamado a la rutina que permite ingresar los valores Call valores(fila, col, contadorbl)
End Sub
'Permite continuar la secuencia de datos a partir de la ultima fila editada
Private Sub continuar_Click() cont = 0
datos.Row = 0 datos.col = 0
'Se busca el numero de la ultima fila editada While datos.Text <> ""
mem = cont cont = cont + 1 datos.Row = cont Wend
'Se ubica en la suguente fila datos.Row = mem + 1
datos.col = 0
fila = datos.Row col = datos.col
contadorbl = datos.Row * 10
'Hace un llamado a la rutina que permite ingresar los valores Call valores(fila, col, contadorbl)
End Sub
'Permite ingresar los valores en las celdas
Public Sub valores(fila, col, contadorbl) For i = fila To numfila
For j = col To numcol datos.Row = i datos.col = j If j = 0 Then
datos.Text = contadorbl End If
If j = 1 Then
datos.Text = InputBox("Ingrese el valor del bloque 'G'") End If
If j = 2 Then
datos.Text = InputBox("Ingrese el valor del bloque 'X'") End If
If j = 3 Then
datos.Text = InputBox("Ingrese el valor del bloque 'Y'") End If
If j = 4 Then
datos.Text = InputBox("Ingrese el valor del bloque 'I'") End If
If j = 5 Then
datos.Text = InputBox("Ingrese el valor del bloque 'J'") End If
If j = 6 Then
datos.Text = InputBox("Ingrese el valor del bloque 'A'") contadorbl = contadorbl + 10
End If
If j = 7 Then
datos.Text = InputBox("Ingrese el valor del bloque 'B'") End If
If datos.Text = "" Then datos.col = 0
datos.Text = ""
GoTo fin
End If Next j
If datos.Text = "" Then GoTo fin
End If Next i fin:
End Sub
'Permite editar un dato en particular seleccionando la fila y la columna correspondientes
Private Sub editar_Click()
datos.Row = InputBox("Ingrese el numero de la fila que va a editar") datos.col = InputBox("Ingrese el numero de la columna que va a editar")
datos.Text = InputBox("Ingrese el valor") End Sub
'Permite borrar una fila completa de la secuencia de comandos Private Sub borrar_Click()
datos.Row = InputBox("Ingrese el numero de la fila que va a borrar") temp = datos.Row
While datos.Text <> ""
For k = 1 To numcol datos.Row = temp datos.col = k datos.Text = ""
datos.Row = temp + 1 dato = datos.Text datos.Row = temp datos.Text = dato datos.Row = temp + 1 datos.Text = ""
datos.Row = temp Next k
temp = temp + 1 Wend
datos.Row = temp - 1
datos.col = 0 datos.Text = ""
End Sub
Private Sub borrartodo_Click()
For i = 0 To numfila For j = 0 To numcol datos.Row = i datos.col = j datos.Text = ""
Next j Next i End Sub
'Grafica las secuencias de comandos escritas en la tabla Private Sub grafica_Click()
Dim a As Integer
'Se ubica en la primera linea de comandos que es la "10"
datos.Row = 1 datos.col = 0 a = 2
If datos.Text <> "" Then While datos.Text <> ""
datos.Row = a datos.col = 1
Picture2.DrawWidth = Text2.Text
'Verifica si lo que se desea hacer es una linea o un arco If datos.Text = "01" Then
Call linea(a) a = a + 1 End If
If (datos.Text = "02") Then Call arco(a)
End If
a = a + 1 Wend
'Si no se encuentran datos en la tabla, sale una alerta Else
MsgBox ("No hay datos en la tabla") End If
End Sub
'Grafica lineas continuas Public Sub linea(a) Dim X0, Y0 As String Dim X1, Y1 As String While datos.Text <> ""
'Pararmetros para los puntos datos.Row = a - 1
datos.col = 2 X0 = datos.Text datos.Row = a X1 = datos.Text datos.Row = a - 1 datos.col = 3 Y0 = datos.Text datos.Row = a Y1 = datos.Text
'Dibuja la linea con los puntos
Picture2.Line (X0, Y0)-(X1, Y1), QBColor(15) datos.Row = a + 1
datos.col = 1
'Verifica si continua linea o otra funcion
If datos.Text <> "01" Then GoTo final
Else
a = a + 1 datos.Row = a End If
Wend final:
End Sub
Public Sub arco(a)
Dim I0, X1, X2, J0, Y1, Y2, R, ANG1, ANG2 As Double Dim A1, A2 As Double
'Carga los valores inicial y final de cada coordenada y 'el engulo inicial y final del arco
datos.Row = a - 1 datos.col = 2
X1 = Val(datos.Text) datos.Row = a
datos.col = 2
X2 = Val(datos.Text) datos.Row = a
datos.col = 4
I0 = Val(datos.Text) datos.col = 6
ANG1 = Val(datos.Text) datos.Row = a - 1
datos.col = 3
Y1 = Val(datos.Text) datos.Row = a
datos.col = 3
Y2 = Val(datos.Text) datos.Row = a
datos.col = 5
J0 = Val(datos.Text) datos.col = 7
ANG2 = Val(datos.Text)
'Combierte los grados a Radianes A1 = ANG1 * (3.14159265359 / 180) A2 = ANG2 * (3.14159265359 / 180)
'Calcula la longitud del radio
R = Sqr(((X1 - I0) ^ 2) + ((Y1 - J0) ^ 2))
'Grafica el arco o en su defecto la circinferencia Picture2.Circle (I0, J0), R, QBColor(15), A1, A2 End Sub
Private Sub Command1_Click()
Text3.Text =3.14159265359 xText2.Textx(Text1.Text /1000) End Sub
A continuación se explicara cada una de las partes del codigo para un mejor entendimiento de las mismas.
En primer lugar se carga el formulario con las variables que determinan las dimensiones de los datos de la tabla o en otras palabras, la cantidad de variables que influyen en las líneas de comandos, De la siguiente manera.
Dim k As Single
Dim i, j, col, fila, cont, temp, numcol, numfila, mem As Integer Dim filename, txt, dato As String
'Cargamos variables globales Private Sub Form_Load() numcol = 7
numfila = 199 End Sub
Seguidamente se explicara como es que cada botón hace su función dentro de la aplicación.
1. Abrir datos
'Permite abrir una secuencia de comandos existente Private Sub abrir_Click()
'Se abre el cuadro de dialogo de Windows que permite escoger un archivo para abrirlo
dialogo.Filter = "Text file (*.txt) |*.txt"
dialogo.ShowOpen
filename = dialogo.filename Open filename For Input As 101 DoEvents
'Leemos el archivo y colocamos los datos en la tabla For i = 0 To numfila
For j = 0 To numcol Input #101, txt
datos.TextMatrix(i, j) = txt Next j
Input #101, txt Next i
Close #101 End Sub
2. Guardar datos
'Permite guardar una secuencia creada Private Sub guardar_Click()
dialogo.Filter = "Text file (*.txt) |*.txt"
dialogo.ShowSave
filename = dialogo.filename Open filename For Output As #101
'Leemos el archivo y colocamos los datos en la tabla For i = 0 To numfila
For j = 0 To numcol
Write #101, datos.TextMatrix(i, j);
Next j
Write #101, Next i
Close 101 End Sub
3. Crear datos.
Este es el que mayor cantidad de pasos posee ya que recurre a una parte del código que es utilizada por otros botones, e indica el encabezado de las columnas y las preguntas que permiten la introducción de los datos en las columnas. Para tal efecto, solo se ilustra el bloque que sirve par el ingreso de los datos.
'Carga los nombres de las columnas de la secuencia de comandos
Private Sub ingreso_Click() Dim contadorbl As Integer
datos.Row = 0 datos.col = 0 datos.Text = "N"
datos.Row = 0 datos.col = 1 datos.Text = "G"
datos.Row = 0 datos.col = 2 datos.Text = "X"
datos.Row = 0 datos.col = 3 datos.Text = "Y"
datos.Row = 0 datos.col = 4 datos.Text = "I"
datos.Row = 0 datos.col = 5 datos.Text = "J"
datos.Row = 0 datos.col = 6 datos.Text = "A"
datos.Row = 0 datos.col = 7 datos.Text = "B"
fila = 1 col = 0
contadorbl = 10
'Hace un llamado a la rutina que permite ingresar los valores Call valores(fila, col, contadorbl)
End Sub
4. Continuar secuencia
'Permite continuar la secuencia de datos a partir de la ultima fila editada
Private Sub continuar_Click() cont = 0
datos.Row = 0 datos.col = 0
'Se busca el numero de la ultima fila editada While datos.Text <> ""
mem = cont cont = cont + 1 datos.Row = cont Wend
'Se ubica en la suguente fila datos.Row = mem + 1 datos.col = 0
fila = datos.Row col = datos.col
contadorbl = datos.Row * 10
'Hace un llamado a la rutina que permite ingresar los valores Call valores(fila, col, contadorbl)
End Sub
El siguiente bloque de código muestra al usuario el nombre de la columna sobre la cual se va a ingresa el dato solicitado.
'Permite ingresar los valores en las celdas
Public Sub valores(fila, col, contadorbl) For i = fila To numfila
For j = col To numcol datos.Row = i datos.col = j If j = 0 Then
datos.Text = contadorbl End If
If j = 1 Then
datos.Text = InputBox("Ingrese el valor del bloque 'G'") End If
If j = 2 Then
datos.Text = InputBox("Ingrese el valor del bloque 'X'") End If
If j = 3 Then
datos.Text = InputBox("Ingrese el valor del bloque 'Y'") End If
If j = 4 Then
datos.Text = InputBox("Ingrese el valor del bloque 'I'") End If
If j = 5 Then
datos.Text = InputBox("Ingrese el valor del bloque 'J'")