Aplicación
de cálculo de engranajes para torno
GEAR
CALCULATOR
Hector Cepeda - Ezequiel Falk - Natalia Vega - Oscar
Villarroel
Análisis del
problema
El torno es una herramienta mecánica usada para fabricar pernos, tuercas, golillas, engranajes entre otros componentes mecánicos. Los pernos y tuercas tienen una característica llamada Paso de rosca, que corresponde a la distancia que hay entre dos crestas consecutivas y hay dos tipos que son los más extendidos, rosca Métrica, medida en milímetros y rosca Whitworth, medida en pulgadas.
Para poder tallar el paso en un perno o tuerca, es necesario colocar un arreglo de engranajes con cantidades específicas de dientes. Este arreglo de engranajes se debe calcular.
Descripción del
problema
El cálculo del arreglo de engranajes se hace
usando la siguiente relación:
Este cálculo lo hace el cliente de forma manual, teniendo que hacer a veces muchas iteraciones del cálculo para encontrar la combinación óptima.
Casos de uso
Caso 1
Nombre: Cálculo los 3 engranajes para una rosca determinada.
Propósito: El usuario desea calcular el conjunto ideal para realizar el paso del tornillo adecuado según se requiere.
Actor: Maestro Mecánico (tornería).
Evento: El usuario ingresa el paso al que se quiere llegar y presiona el botón calcular.
Curso normal de eventos:
Actor |
Sistema |
|
|
|
|
|
|
|
|
Caso 2
Nombre: Presiona botón “Cómo Funciona”.
Propósito: El usuario se familiariza con el funcionamiento de la aplicación.
Actor: Maestro Mecánico (tornería).
Evento: El usuario presiona la pestaña “Cómo Funciona”.
Curso normal de eventos:
Actor |
Sistema |
|
|
|
|
Caso 3
Nombre: Presiona botón “Editar”.
Propósito: Eliminar un disco del conjunto de discos de engranaje con que se cuenta para realizar los cálculos.
Actores: Maestro Mecánico (tornería)
Evento: El usuario presiona la pestaña “Editar”
Curso normal de eventos:
Actor |
Sistema |
|
|
4. Escribe el disco que desea eliminar |
|
5. Presiona el botón “Eliminar” |
6. Se actualiza el conjunto de discos disponibles |
Diseño
Diagrama de clases:
Figura 1:
Diagrama de clases
Diagrama de secuencia (caso de uso 3):
Figura 2: Diagrama de secuencia.
Resultados
Pantalla Principal: Esta es la vista principal, donde se pueden editar los discos, los parámetros, conocer cómo funciona la aplicación y hacer el cálculo de los discos que se necesitan para cierto trabajo en específico detallado con los parámetros.
Figura
3:
Pantalla Principal
Pantalla Resultado: Al presionar el botón “Calcular” en la vista principal con los parámetros configurados, se despliega esta vista con los resultados que arrojó el cálculo. De existir, se muestran los 3 con menor error. Si no hay 3 se muestran los que haya.
Figura 4: Pantalla Resultado.
Pantalla Como Funciona: En esta vista se muestra a presionar “Como funciona” en la pantalla principal. Acá se explican todos los objetos gráficos con los que puede interactuar el usuario y se explica que hace cada uno de ellos.
Figura 5: Pantalla Como Funciona.
Pantalla Editor de Discos: Esta vista se despliega al presionar el botón “Editar Set de Discos” en la pantalla principal. En esta vista se pueden visualizar todos los discos disponibles, además de poder agregar o eliminar discos al set. Esto es útil cuando el usuario consigue o pierde discos.
Figura 6: Pantalla Editor de Discos.
Dificultades
Se tuvo dificultad para agregar imágenes externas, pues en la vista previa de Qt se lograban apreciar, pero al momento de ejecutar el programa estas no eran visibles, para arreglar esto se guardaron las imágenes como recursos Qt y luego se añadieron a la vista.
Se tuvo problemas con el archivo .txt que contenía los engranajes a utilizar, pues en la sección de “Discos Disponibles” solo se mostraba el último disco del archivo. Esto ocurría debido a que el objeto gráfico Qlabel donde se escribían los discos en la interfaz gráfica no estaba siendo utilizado de buena manera. Para corregir esto se opta por cambiar el objeto gráfico a QTextEdit.
Otra dificultad que se presentó fue al momento de implementar el código que ordenaría los resultados de menor error a mayor error, pues se presentaban muchos problemas relacionados al manejo de vectores (esto debido a que los resultados se guardan en un vector). Finalmente se logró entender bien cómo funcionaba y se implementó el algoritmo bubble sort para ordenarlos.
Bugs
Actualmente existe un bug el cual hace que el programa colapsa y se cierra. Esto ocurre con algunos pasos y algunas tolerancias en particular.
El repositorio del proyecto se puede
encontrar en el siguiente link,
y el archivo comprimido del proyecto se puede descargar acá.