Universidad Tecnológica de Querétaro.



Documentos relacionados
MANUAL DE USUARIOS DEL SISTEMA MESA DE SOPORTE PARA SOLICITAR SERVICIOS A GERENCIA DE INFORMATICA

Apéndice 5 Manual de usuario de ColeXión. ColeXión 1.0. Manual de usuario

CAPITULO 4. Requerimientos, Análisis y Diseño. El presente capítulo explica los pasos que se realizaron antes de implementar

Comisión Nacional de Bancos y Seguros

Manual para usuarios USO DE ONEDRIVE. Universidad Central del Este

MACROS. Automatizar tareas a través del uso de las macros.

Introducción a Moodle

Sistema de Gestión Portuaria Sistema de Gestión Portuaria Uso General del Sistema

Uso de Visual C++ Pre-Practica No. 3

CAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de

Nota: Se puede tener un acceso directo definido o podemos entrar a través de la

Organizándose con Microsoft Outlook

V i s i t a V i r t u a l e n e l H o s p i t a l

Manual de uso. Manual de uso - citanet 1

GVisualPDA Módulo de Almacén

Curso de PHP con MySQL Gratis

Cómo creo las bandejas del Registro de Entrada /Salida y de Gestión de Expedientes?

Presentaciones. Con el estudio de esta Unidad pretendemos alcanzar los siguientes objetivos:

POWER POINT. Iniciar PowerPoint

Practica 1 Instalación del SGBD. Ing. María Elena Reyes Castellanos. Miguel Ángel Garduño Córdova Isaac Méndez Hernández

5. Diseño e Implementación del sistema (software)

MANUAL DE USUARIO SISTEMA DE ALMACEN DIF SONORA

Comisión Nacional de Bancos y Seguros

WINDOWS : TERMINAL SERVER

Capítulo 4. Implementación del lenguaje multitáctil

Índice Objetivo... 2 Definición y utilidad de Movie Maker... 3 Cómo iniciar Movie Maker?... 3 Elementos de la ventana de Movie Maker...

Módulo Cédulas de Auditorías desde Excel

LiLa Portal Guía para profesores

Instalación del Admin CFDI

Gastos Reales Web Manual de Usuario

Elementos requeridos para crearlos (ejemplo: el compilador)

UNIVERSIDAD TECNICA DEL NORTE

INDICE. 1. Introducción El panel Entities view El panel grafico Barra de botones Botones de Behavior...

INSTITUTO TECNOLÓGICO DE COLIMA LIC. EN INFORMÁTICA

ALGUNAS AYUDAS PARA EL ACCESO AL AULA DIGITAL Contenido

Capítulo 9. Archivos de sintaxis

"Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios

Servicios Educativos Del Estado De Chihuahua Sistema Integral de Presupuestos y Materiales. Indice. Introducción Barra de Herramientas...

MANUAL DE USUARIO DE EGROUPWARE MANUAL DE USUARIO EGROUPWARE

Gerencia de Proyectos Estratégicos e Información Gerencial

CAPÍTULO IV USO DE MICROSOFT PROJECT

Operación de Microsoft Word

Manual de Pagos y Transferencias

La Administración de Proyectos

PROYECTOS, FORMULACIÓN Y CRITERIOS DE EVALUACIÓN

Guía Notas Parciales. Intermedio

Academias Nacionales De Docentes. Usuario

Haga clic en los recuadros donde indica la mano y regrese al inicio del capítulo al hacer clic en el título de la sección donde se encuentra

CONSTRUCCIÓN DEL PROCESO PAGO DE FACTURAS. BizAgi Process Modeler

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto

Manual Ingreso Notas y Acta Electrónica

Acronis License Server. Guía del usuario

[MANUAL DE CAPACITACION SPARH NET]

MANUAL DE NAVEGACIÓN DEL SIIA-WEB versión PRONAD

Gestión de Permisos. Bizagi Suite. Copyright 2014 Bizagi

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7

COMISIÓN NACIONAL PARA EL AHORRO DE ENERGÍA

Manual Oficina Web de Clubes (FBM)

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Operación de Microsoft Excel

MANUAL DE USUARIO SIMDIA CQ TRASPATIO ADMINISTRADOR JUNTA

MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO

Para lo cual la Conuee pone a su disposición esta aplicación con la finalidad de agilizar el proceso de registro de sus capacitaciones.

Unicenter Service Desk r11.1. Guía para el Usuario Final de Service Desk

Tareas básicas en OneNote 2010 Corresponde a: Microsoft Office OneNote 2010

Manual AGENDA DE RESPALDO

Configuracion Escritorio Remoto Windows 2003

Manual Operativo Sistema de Postulación Online

Ajustes del Curso en egela (Moodle 2.5)

MANUAL DE AYUDA. SAT Móvil (Movilidad del Servicio Técnico)

4 Pruebas y análisis del software

Ayuda En-línea para SIG

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

Para crear una lista como la anterior, primero escribe la información, y después selecciona el texto y aplícale el formato de viñetas.

MODIFICACIÓN DE PANTALLAS. Reporte de Estadía para obtener el Título de Técnico Superior Universitario en Tecnologías de la Información y Comunicación

Microsoft Access proporciona dos métodos para crear una Base de datos.

Plataforma e-ducativa Aragonesa. Manual de Administración. Bitácora

Lo primero que debemos hacer es seleccionar el Cliente en el campo Nombre :

Para instalar el saint e-report se debe contar con los siguientes requerimientos de software:

2_trabajar con calc I

Cómo crear un fichero de ayuda para tus aplicaciones?

Manual de operación Tausend Monitor

Proceso de cifrado. La fortaleza de los algoritmos es que son públicos, es decir, se conocen todas las transformaciones que se aplican al documento

Plantas Reales, Componentes Inteligentes con Catalog Builder de AutoCAD Plant 3D

Antivirus Avira. Inguralde [Enero 2011]

SESIÓN 1: POWER POINT 2013

API. Administración Portuaria Integral, Veracruz. Manual de Usuario del software para generar la programación de conceptos de Obras...

Visor de presupuestos en Android

COMISIÓN NACIONAL PARA EL USO EFICIENTE DE LA ENERGÍA

TPV Táctil. Configuración y Uso. Rev /01/09

GUIA APLICACIÓN DE SOLICITUDES POR INTERNET. Gestión de Cursos, Certificados de Aptitud Profesional y Tarjetas de Cualificación de Conductores ÍNDICE

MANUAL DE USUARIO APLICACIÓN SYSACTIVOS

Módulo I - Word. Iniciar Word Finalizar Word Definición de elementos de pantalla Escribir texto en un documento El cursor...

Notas para la instalación de un lector de tarjetas inteligentes.

1Interface del Usuario

Creado dentro de la línea de sistemas operativos producida por Microsoft Corporation.

Está creado como un organizador y gestor de tareas personalizables para generar equipos de alto desempeño en diferentes rubros de empresas.

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

MANUAL DE USUARIO SIMDIA ADMINISTRADOR JUNTA

Autor: Microsoft Licencia: Cita Fuente: Ayuda de Windows

Transcripción:

Universidad Tecnológica de Querétaro. Nombre del proyecto: Diseño de Software Especializado en Tubería. Empresa: Oscar García Pérez Memoria que como parte de los requisitos para obtener el título de: Ingeniero en Tecnologías de Automatización Presenta: Oscar Jaziel Maldonado Quintana Asesor de la UTEQ Ing. Juan Pedro Gómez Virgilio Asesor de la organización Ing. Oscar García Pérez Santiago de Querétaro, Qro. Mayo del 2014

RESUMEN El proyecto Diseño de Software Especializado en Tubería consiste en la creación de un software de simulación de sistemas de distribución de aire acondicionado en 2D y 3D, el cual abarca desde la escritura del software en lenguaje C++ de Visual Studio y la compilación del mismo, tomando en cuenta los requerimientos de la empresa. El objetivo es obtener la mejor calidad y reducir el tiempo de diseño, así como obtener un sistema sin pérdida de flujo y presión. El plan de trabajo establecido al inicio del proyecto especifica los tiempos, encargados, objetivos y alcances; para llevar un control del trabajo realizado. Para el desarrollo de este proyecto se utilizaron herramientas graficas la cuales fueron librerías de OpenGL el cual es una interface de programación de gráficos; también se utilizó el compilador Visual C++ para la generación de la aplicación. El proyecto abarca desde la parte administrativa para obtener el proyecto hasta la parte de inicio del modelado en 3D. Palabras claves (Software, Visual C++, OpenGL) 2

SUMMARY During my internship I worked with a project that consisted on creating software for the design of air distribution systems in 2D and 3D visualization, this software was created with Visual Studio and OpenGL libraries. Some of the activities in order to achieve the software I needed to write a program in C++ language; and first I had to program the 2D platform with the buttons of desired pipes. After, I created the 3D platform that only visualized some pieces because it lacked its coordinate system that is programed after I could finish my internship. Finally, the last activity that I did was a communication between platforms with and text file. On the other hand, I had multiple results on the project; I think the best result was learning how to use Visual C++, OpenGL and some instructions different from normal language C++; since it will be useful in my future. Oscar Jaziel Maldonado Quintana 3

ÍNDICE RESUMEN... 2 SUMMARY... 3 ÍNDICE... 4 I. INTRODUCCIÓN.... 6 II. ANTECEDENTES.... 7 III. JUSTIFICACIÓN.... 8 IV. OBJETIVOS.... 9 V. ALCANCE.... 10 VI. ANÁLISIS DE RIESGOS.... 11 VII. FUNDAMENTACIÓN TEÓRICA.... 12 VII.I. Software CAD / Diseño Asistido por Computadora.... 12 VII.I.I. Beneficios de CAD.... 13 VII.II. Software CAE / Ingeniería Asistida por Computadora... 14 VII.II.I. Beneficios de CAE... 15 VII.III. OpenGL.... 17 VII.IV. Visual C++... 18 VIII. PLAN DE ACTIVIDADES... 20 IX. RECURSOS MATERIALES Y HUMANOS.... 21 X. DESARROLLO DEL PROYECTO.... 22 X.I. Presentación de la Propuesta.... 22 X.II. Inicio del Proyecto.... 23 X.III. Diseño de Plataforma 2D.... 23 4

X.III.I. Inicialización de un Nuevo Proyecto en Visual C++.... 23 IX.III.II. Diseño de los Forms.... 24 X.III.III. Creación del Sistema de Coordenadas.... 27 X.III.IV. Creación de Funciones para Dibujar... 27 X.III.V. Creación de Funciones para Guardar Datos.... 29 X.III.VI. Eventos Click.... 30 X.III.VII. Evento de Cambio de Tamaño.... 36 X.III.VIII. Evento Barra de Desplazamiento.... 36 X.III. Diseño de Plataforma 3D.... 36 X.III.I. Archivo.h.... 37 X.III.II. Archivo.cpp.... 39 XI. RESULTADOS OBTENIDOS.... 43 XII. CONCLUSIONES Y RECOMENDACIONES.... 45 XIII. ANEXOS XIV. BIBLIOGRAFÍA 5

I. INTRODUCCIÓN. El proyecto consiste en la creación de un software con capacidad de simular en 3D y dibujar en 2D un sistema de distribución de aire mediante una interface gráfica la cual permita editar las condiciones de las tuberías. Los proyectos de distribución realizados dentro de este software tienen un grado de aplicación industrial. Para la edición y compilación del software se necesita la implementación del programa Visual Studio, el código de programación en lenguaje C++ y las librerías graficas de la interface de OpenGL, al ser una librería de software libre nos permite trabajar proyectos personales y de calidad profesional. El software tiene dos plataformas que se comunican por medio de un archivo de texto, el cual se crea mientras se va desarrollando el diagrama del sistema de distribución en la plataforma 2D, y lo que realiza la plataforma 3D es la lectura del archivo y va creando una réplica en una interfaz grafica para su visualización en 3D. 6

II. ANTECEDENTES. Este proyecto surge debido a la necesidad del cliente de querer tener un software de diseño diferente a los existentes, los cuales sobrepasan las necesidades y complejidad requeridas por el cliente; el cliente desea uno donde el software cuente con interface gráfica como botones, que hagan más sencillo el diseño de planos 2D para sistemas de aire acondicionado y poder realizar una visualización grafica 3D del diseño credo en el grafico 2D. De excelente calidad y precisión, serán entregadas medidas del diseño para poder calcular mediante algoritmos basados en el principio de Bernoulli las pérdidas de presión y velocidad en los puntos en donde el diámetro de la tubería cambia de manera positiva o negativa. 7

III. JUSTIFICACIÓN. La programación de un nuevo software se realizó debido a que las licencias de otros software de diseño son muy costosas; aparte que los otros software contienen herramientas especializadas que muchas veces las MIPYMES no utilizan, el realizar un diseño de un plano 2D de una instalación de aire acondicionado y visualizarlo en 3D es fácil para plataformas CAD pero el gasto es innecesario para la industria de aire acondicionado. Por lo cual se pretende desarrollar una solución con un software diseñado a las necesidades del cliente, el cual en la parte superior contara con botones los cuales tendrán las formas de tuberías existentes, para que los puedan ir agregando con tan solo dar el diámetro (para tubo recto, codos, T o Y ) y longitud ( tubo recto únicamente); teniendo en cuenta también en 3D se podrá observar sí existe perdida de presión o flujo por algún codo o reducción utilizada. Para la realización del software se utilizan los programas de Visual Studio y OpenGL, estos programas son de libre uso y no hay necesidad de tener que pagar por la utilización de ellos; aparte de tener las herramientas necesarias para la creación del software deseado. 8

IV. OBJETIVOS. Desarrollar un software capaz de simular un sistema de distribución de aire que contenga con una interfaz grafica en 2D y 3D. 1. Crear una plataforma de fácil uso para el editor 2D, 2. Poder realizar el guardado de un diagrama realizado, 3. Poder abrir un diagrama guardado con anterioridad, 4. Realizar una transmisión de datos entre plataformas, 5. Lectura del archivo de transmisión de datos en la plataforma 3D. 6. Visualización 3D de tubo, tubo T y codos. 9

V. ALCANCE. Se pretende crear la programación de un nuevo software de diseño específicamente para diseños 2D de distribución de aire acondicionado, el cual será de fácil uso para cualquier diseñador industrial y pueda ser visualizado en 3D al terminar su plano en 2D; así como la fácil detección de pérdidas de presión y flujo, que se puedan tener por una mala distribución o utilización de alguna reducción o codo. Que el programa pueda guardar planos realizados, así como poder abrirlos para modificación si es necesario; aparte de poder observar el mejor tipo de salida a utilizar dependiendo de la presión y flujo que lleguen hasta ahí. Que dentro del programa solamente se pueda hacer la construcción de izquierda a derecha, restringiendo que las conexiones T y Y solamente se pinten sobre el eje X. Aparte de que al momento de colocar una de las conexiones mencionadas, al pintar para el eje +Y será para una salida y para -Y será para poder continuar el esquema de la distribución. 10

VI. ANÁLISIS DE RIESGOS. En este capítulo se muestra las actividades que podían retrasar o no permitir realizar el proyecto como se requería, como se muestra en la tabla 6.1 Análisis de Riesgos Riesgo Consecuencia Solución Prioridad No se termine en la Realizar una lluvia fecha estipulada de ideas 1 Mala planeación Que no se defina correctamente el proyecto Que el material no lo entreguen a tiempo No tener el software No saber utilizar el software Mala aplicación del cálculo de presiones y flujo Retraso de actividades No empezar el correspondiente al plan de actividades No poder realizar el proyecto Disminuir el alcance del proyecto Buscar más de un proveedor Comprar o descargar el software Retrasó del proyecto Capacitar 5 Resultados erróneos Comprobación de resultados calculados Tabla 6.1 Riesgos probables en la realización del proyecto. 2 3 4 6 11

VII. FUNDAMENTACIÓN TEÓRICA. En este capítulo se mencionan y describen algunos de los componentes y dispositivos utilizados para lograr un buen funcionamiento de las estaciones a modificar. VII.I. Software CAD / Diseño Asistido por Computadora. Computer-aided design (CAD) es el uso de programas computacionales para crear representaciones gráficas de objetos físicos ya sea en segunda o tercera dimensión (2D o 3D). El software CAD puede ser especializado para usos y aplicaciones específicas. CAD es ampliamente utilizado para la animación computacional y efectos especiales en películas, publicidad y productos de diferentes industrias, donde el software realiza cálculos para determinar una forma y tamaño óptimo para una variedad de productos y aplicaciones de diseño industrial. En diseño de industrial y de productos, CAD es utilizado principalmente para la creación de modelos de superficie o sólidos en 3D, o bien, dibujos de componentes físicos basados en vectores en 2D. Sin embargo, CAD también se utiliza en los procesos de ingeniería desde el diseño conceptual y hasta el 12

layout de productos, a través de fuerza y análisis dinámico de ensambles hasta la definición de métodos de manufactura. Esto le permite al ingeniero analizar interactiva y automáticamente las variantes de diseño, para encontrar el diseño óptimo para manufactura mientras se minimiza el uso de prototipos físicos [1]. VII.I.I. Beneficios de CAD. Los beneficios del CAD incluyen menores costos de desarrollo de productos, aumento de la productividad, mejora en la calidad del producto y un menor tiempo de lanzamiento al Mercado, Mejor visualización del producto final, los sub-ensambles parciales y los componentes en un sistema CAD agilizan el proceso de diseño, El software CAD ofrece gran exactitud de forma que se reducen los errores, El software CAD brinda una documentación más sencilla y robusta del diseño, incluyendo geometría y dimensiones, lista de materiales, etc., El software CAD permite una reutilización sencilla de diseños de datos y mejores prácticas. 13

VII.II. Software CAE / Ingeniería Asistida por Computadora Ingeniería asistida por computadora (CAE) es el uso de software computacional para simular desempeño y así poder hacer mejoras a los diseños de productos o bien apoyar a la resolución de problemas de ingeniería para una amplia gama de industrias. Esto incluye la simulación, validación y optimización de productos, procesos y herramientas de manufactura. Un proceso típico de CAE incluyen pasos de pre-procesado, solución y post-procesado. En la fase de pre-procesado, los ingenieros modelan la geometría y las propiedades físicas del diseño, así como el ambiente en forma de cargas y restricciones aplicadas. En la fase de post-procesado, los resultados se presentan al ingeniero para su revisión. Las aplicaciones CAE soportar una gran variedad de disciplinas y fenómenos de la ingeniería incluyendo: Análisis de estrés y dinámica de componentes y ensambles utilizando el análisis de elementos finitos (FEA), Análisis Termal y de fluidos utilizando dinámica de fluidos computacional (CFD), 14

Análisis de Cinemática y de dinámica de mecanismos (Dinámica multicuerpos), Simulación mecánica de eventos (MES), Análisis de control de sistemas, Simulación de procesos de manufactura como forja, moldes y troquelados, Optimización del proceso del producto. Algunos problemas de la ingeniería requieren la simulación de fenómenos múltiples para representar la física subyacente. Las aplicaciones CAE que abordan dichos problemas usualmente se llaman soluciones de física múltiple [2]. VII.II.I. Beneficios de CAE Los beneficios de software de tipo CAE incluyen reducción del tiempo y costo de desarrollo de productos, con mayor calidad y durabilidad del producto. Las decisiones sobre el diseño se toman con base en el impacto del desempeño del producto. 15

Los diseños pueden evaluarse y refinarse utilizando simulaciones computarizadas en lugar de hacer pruebas a prototipos físicos, ahorrando tiempo y dinero. Aplicaciones CAE brindan conocimientos sobre el desempeño más temprano en el proceso de desarrollo, cuando los cambios al diseño son menos costosos de hacer. Aplicaciones CAE apoyan a los equipos de ingeniería a administrar riesgos y comprender las implicaciones en el desempeño de sus diseños. Los datos integrados y la gestión del proceso del CAE amplían la capacidad de balancear con eficacia los conocimientos del funcionamiento mientras se mejoran los diseños para una comunidad más amplia. La exposición de garantía es reducida al identificar y eliminar problemas potenciales. Cuando integrado al producto y desarrollo de la manufactura, CAE puede facilitar desde etapas tempranas la resolución de problemas, lo que puede reducir dramáticamente los costos asociados al ciclo de vida del producto. 16

VII.III. OpenGL. OpenGL (Open Graphics Library) es una especificación estándar que define una API (Application Programming Interface) multilenguaje y multiplataforma para escribir aplicaciones que produzcan gráficos 2D y 3D. La interfaz consiste en más de 250 funciones diferentes que pueden usarse para dibujar escenas tridimensionales complejas a partir de primitivas geométricas simples, tales como puntos, líneas y triángulos. Fue desarrollada originalmente por Silicon Graphics Inc. (SGI) en 1992 y se usa ampliamente en CAD, realidad virtual, representación científica, visualización de información y simulación de vuelo como se ve en la imagen 7.1. También se usa en desarrollo de videojuegos como se observa en la imagen 7.2, donde compite con Direct3D en plataformas Microsoft Windows [3]. Imagen 7.1 Simulación de vuelo con OpenGL 17

Imagen 7.2 Desarrollo de video juegos con OpenGL VII.IV. Visual C++. Visual C++ (también conocido como MvsC, Microsoft Visual C++) es un entorno de desarrollo integrado (IDE) para lenguajes de programación C, C++ y C++/CLI. Visual C++ engloba el desarrollo de aplicaciones hechas en C, C++ y C++/CLI en el entorno Windows. Visual C++ incluye además las bibliotecas de Windows (WinApi), las bibliotecas MFC y el entorno de desarrollo para.net Framework. Visual C++ cuenta con su propio compilador (de igual nombre) y otras herramientas como IntelliSense, TeamFoundation Server, Debug,... 18

Además provee de bibliotecas propias de cada versión del sistema operativo y sockets. Como otros compiladores, se le pueden añadir nuevas bibliotecas como DirectX, wxwidgets o SDL. Cuenta con una versión Express, llamada Microsoft Visual C++ Express Edition, la cual es gratuita y se puede descargar desde el sitio de Microsoft. El lenguaje de programación utilizado por esta herramienta, de igual nombre, está basado en C++ y es compatible en la mayor parte de su código con este lenguaje, a la vez que su sintaxis es exactamente igual. En algunas ocasiones esta incompatibilidad impide que otros compiladores, sobre todo en otros sistemas operativos, funcionen bien con código desarrollado en este lenguaje [4]. 19

VIII. PLAN DE ACTIVIDADES. En este capítulo se mencionan las actividades a realizar para lograr finalizar el proyecto cumpliendo con los objetivos ya mencionados, en el capítulo IV. Tabla 8.1 Diagrama de Gantt 20

IX. RECURSOS MATERIALES Y HUMANOS. En este capítulo se muestran los recursos más importantes en el proyecto, la tabla 9.1 muestra los recursos materiales, que son los componentes y dispositivos utilizados para poder realizar el proyecto; mientras que en la tabla 9.2 se muestran los recursos humanos en la cual se enlistan las personas que participaron en la realización del proyecto. Descripción Cantidad Laptop 2 Software Visual Studio 2012 1 OpenGL 1 Tabla 9.1 Recursos materiales Descripción Cantidad Dr. Matemático 1 Ing. Mantenimiento Industrial 1 TSU en Mecatrónica 1 Tabla 9.2 Recursos humanos 21

X. DESARROLLO DEL PROYECTO. El proyecto fue requerido por una empresa de instalaciones de sistemas de aire acondicionado. El proyecto es la creación de un software donde se diseñe diagramas de los sistemas en 2D, así como la visualización del mismo en 3D y una representación gráfica del rendimiento en presión y flujo del aire, aparte del tipo de alcance en la salida dependiendo del tipo de distribuidor y la temperatura del aire. Para que este proyecto se cumpliera con éxito se siguió la lista de actividades listados en el capítulo VII de este reporte. X.I. Presentación de la Propuesta. Se llevó a cabo una reunión entre el cliente y el personal que estaría a cargo del proyecto. Se aclararon los detalles de la cotización y los alcances; todo esto se queda registrado en una minuta que se logra ver el formato en el anexo 1, ya que la minuta es utilizada en toda reunión que se organice entre las instituciones involucradas en la realización del proyecto. 22

X.II. Inicio del Proyecto. Una vez recibida la orden de aceptación por parte del cliente, se dio inicio a dicho proyecto, comenzando con una reunión entre el cliente y proveedor, en el que se fijaron los procedimientos y formatos para la comunicación y presentación de avances del proyecto. Así también se afinaron los detalles de los requerimientos del cliente y alcances. X.III. Diseño de Plataforma 2D. X.III.I. Inicialización de un Nuevo Proyecto en Visual C++. Primero se tuvo que crear un nuevo proyecto en visual C++ de forma aplicación en el cual el proyecto se llama dibujo 2d tuberías, mientras que el archivo de fuente principal para arranque del programa fué un.cpp llamado formulario_principal, al igual que el Form principal. En el archivo.cpp se llama el archivo formulario_principal.h para poder llamar al Form principal; aparte de que se declaran las variables Globales que se ocuparan en el proyecto, todo esto se refleja en la imagen 10.1 que se muestra enseguida. 23

Imagen 10.1 formulario_principal.cpp IX.III.II. Diseño de los Forms. El Form principal se muestra en la imagen 10.2, y es el que contiene pictureboxs que representan los botones de las piezas que se pueden agregar, el botón de deshacer, el botón de cerrar tubo y en el que se irá dibujando el sistema de distribución cada vez que se presione otro de los picturebox; también cuenta con un el menú de abrir, guardar o crear nuevo archivo y con los botones principales de una ventana de Windows de minimizar, maximizar y cerrar. 24

Imagen 10.2 Diseño del Form principal Existen otros dos Forms que se ocupan para la adquisición de datos, como son el diámetro al empezar un diseño o cuando se aprieta un botón de reducción, el cual se observa en la imagen 10.3; el otro es para la longitud y se observa en la imagen 10.4, este aparece cuando se aprieta el botón de tubo ya que es el único que puede variar de longitud, ya que todas las conexiones como la T, Y, codos o reducciones, tienen sus medidas establecidas regidas por el diámetro que tienen. Sin embargo existe otro Form para la decisión de dirección al dibujar un codo como se muestra en la imagen 10.5. 25

Imagen 10.3 Form para la captura del diámetro seseado. Imagen 10.4 Form para la captura de la longitud de un tubo recto. Imagen 10.5 Form para decisión de dirección de un codo. 26

X.III.III. Creación del Sistema de Coordenadas. Para poder pintar y empezar desde un punto deseado se utilizaron 7 variables (xi1, xi2, xi3, yi, yi2, yi3 e yi4), tanto en los Forms, panels y pictureboxs, están estructurado interiormente por coordenadas las cuales utilizamos para acomodar una pieza u objeto dentro de ellos. Nuestro punto inicial es sobre el eje Y inicializado en 120 y el eje X en 0. El sistema de coordenadas va realizando un aumento en los valores de xi1 y yi principalmente, mientras que los demás tienen un aumento con relación a los principales. El aumento de cada variable depende de la pieza a pintar o de la dirección que lleve la pieza; un tubo o un codo puede ser pintado sobre el eje X o el eje Y ; mientras la conexión T o Y solo puede pintarse sobre el eje X por especificación del cliente. Por ello si se coloca un tubo sobre el eje X, xi1 aumenta su valor, pero si es sobre el eje Y el aumento es en yi". X.III.IV. Creación de Funciones para Dibujar. Las funciones creadas para el pintado de cada pieza se les asigno el nombre draw_ y el nombre de la pieza a dibujar, esto para la mejor manipulación posible y rapidez en la realización del proyecto 27

Dentro de cada función se tiene las instrucciones para el dibujado de la pieza; pero todas las funciones requieren empezar asignando que en el picturebox se creara una gráfica dentro de una variable Graphics, la cual enseguida se define que dibujara en 2D con alta calidad y mandando llamar a nuestra función sistema_coordenadas, como se puede apreciar en la imagen 10.6 que muestra el inicio de las funciones de dibujar en el proyecto. Imagen 10.6 Principio de las funciones dibujar. Dentro de las funciones de pintar para codos y el tubo tiene instrucciones if, el cual sirve para identificar la dirección del dibujo con la variable global T. Dependiendo la pieza a dibujar son las veces que se ocupa la instrucción g- > DrawLine(), donde se especifica el color de la línea, los puntos de inicio en el eje X y Y, y los puntos finales de la línea; como se muestra en la imagen 10.7, la cual muestra un ejemplo de cómo dibuja un tubo recto. Aparte de que se ocupa una variable de tipo cadena numérica llamada piezas [], para tener la cuenta y tipo de piezas que se vayan agregando para el botón de deshacer. 28

Imagen 10.7 Ejemplo instrucciones para dibujar un tubo recto y dibujo creado. X.III.V. Creación de Funciones para Guardar Datos. Las funciones que se crearon para el guardado de las piezas que se van dibujando en el picturebox llamadas guardar_ y el nombre de la pieza. Al realizar la función lo que realiza es una escritura en dos diferentes textos, el primero es un texto que guarda tanto longitudes, diámetros y pieza dibujada que nos servira para la transmisión de datos entre el software de 2D a 3D; mientras que el segundo archivo solamente guarda el nombre de la pieza que se va colocando, para poder realizar un repintado en la parte del software en 2D. Dentro de las funciones de guardado tiene el código observado en la imagen 10.8; este código asigna a dos variables String^ la dirección y el nombre del archivo donde se guardara la información, cuando la dirección es la misma del programa se asigna con tres puntos, dos diagonales, el nombre del archivo y tipo ( \\Nombre.tipo). También se crean otras dos variables del mismo tipo, pero a estas se les asigna una instrucción de nueva línea y el texto 29

a escribir. Por último se utiliza la instrucción de AppendAllText (variable con dirección del archivo, variable con texto a escribir), la cual lee el archivo y continua la escritura después del último renglón escrito. Imagen 10.8 Código para guardar en un texto. X.III.VI. Eventos Click. Los eventos click son provocados cuando se presiona uno de los pictureboxs que tienen imagen de los tubos a dibujar, la imagen de deshacer, la de cerrar tubo o al presionar una de las alternativas del menú archivo. Cuando se presiona cualquiera de los pictureboxs que tienen imagen de los tubos a dibujar realiza el código de la imagen 10.9. El código del evento 30

realiza un llamado de función de dibujar correspondiente al evento; al terminar la función de dibujar, llama una función de guardar dato en un texto. Imagen 10.9 Código general de los eventos click para dibujar. Aunque todos los pictureboxs con imagen de tubos tienen el código anteriormente mencionado, pero al presionar tubo recto esté manda a llamar a un segundo Form como se ve en la imagen 10.10, el cual pide la longitud que se representara en la visualización 3D guardándola en el texto de transmisión de datos. Imagen 10.10 Código para llamar Form de adquisición de longitud Al presionar cualquier picturebox de codo que se dibujara sobre el eje X, cumpliendo con la condición if manda llamar otro Form con el código mostrado en la imagen10.11, el cual pide la dirección del codo hacía el eje +Y o -Y. 31

Imagen 10.11 Código para llamar Form de dirección del codo. Pero si se presionar cualquier picturebox de reducción manda a llamar otro Form con el código de la imagen 10.12, el cual solicita el diámetro al que se reducirá la tubería y el dato lo manda guardar en el texto de transmisión de datos. Imagen 10.12 Código para llamar Form de adquisición de nuevo diámetro. Si se presiona el picturebox de deshacer y la variable de tipo cadena numérica piezas[m], donde la variable m es el número de tubos dibujados. Por lo tanto si m es diferente de 0, realiza el borrado de la última tubería dibujada; primero reduce en 1 la variable m para saber qué fue lo último que se dibujó, y dependiendo del valor de la variable piezas[] entrara en una de las condiciones, para decidir hacía donde pintar un recuadro blanco para borrar la 32

última tubería dibujada con la instrucción FillRectangle como se ve en la imagen 10.13. Imagen 10.13 Instrucción de dibujo de rectángulo para borrado. Mientras que los pictureboxs de conexión T y cerrar tubo trabajan en conjunto, ya que al presionar conexión T y llamar la función de draw_tubot el diagrama por default seguirá por +Y como se ve en la imagen 10.14, pero al mismo tiempo guardara las coordenadas de la dirección de -Y en dos variables de tipo cadena numérica llamadas punx[n] y puny[n], donde n es la variable que cuenta cuantas conexiones T se han puesto. Y al momento de presionar cerrar tubo si existe alguna conexión T sin cerrar regresara a las coordenadas guardadas, para seguir el diagrama por el eje Y como lo muestra la imagen 10.15; pero si no existe una conexión T sin cerrar mandara un mensaje de si desea terminar el diagrama o no como se ve en la imagen 10.16; el código de estas instrucciones del evento cerrar tubo se observa en la imagen 10.17. 33

Imagen 10.14 Continuación por default al dibujar una conexión T. Imagen 10.15 Continuación del diagrama al presionar cerrar tubo. Imagen 10.16 Mensaje de terminación de diagrama al presionar cerrar tubo. Imagen 10.17 Código del evento cerrar tubo. 34

El Form principal tiene un menú llamado archivo el cual cuenta con 5 opciones (Nuevo, abrir, guardar, guardar como y cerrar), en donde al presionar la opción Nuevo su evento de click reinicia todas las variables y limpia el picturebox con un Refresh(). Al presionar la opción de Abrir su evento activa la herramienta de OpenDialog1 la cual abre una ventana de dialogo para buscar el archivo ya realizado con anterioridad; al seleccionar el archivo lo lee con la función de StreamReader como se ve en la imagen 10.18, pero también con un while va revisando cada línea del archivo para comprobar el texto y realizar una acción. Imagen 10.18 Código para abrir un archivo. Cuando se presiona la opción de Guardar o Guardar como se activa la herramienta de SaveFileDialog el cual abre una ventana de dialogo que deja escoger la ubicación de guardado del archivo realizado. Mientras que al presionar Cerrar activa la función Close() que cierra el programa. 35

X.III.VII. Evento de Cambio de Tamaño. El evento es provocado cuando se presiona uno de los botones de maximizar o minimizar; al momento de detectar el cambio de tamaño lee un archivo llamado repintar, que vuelve a dibujar todo el diagrama que se esté realizando en el momento ya que cada pieza dibujada no se está repintando y al minimizar o maximizar el picturebox se refresca y borra lo dibujado. X.III.VIII. Evento Barra de Desplazamiento. Para la activación de las barras de desplazamiento para un picturebox se necesita colocar un panel, en el que dentro lleva el picturebox, un HScrollBar y un VScrollBar. Convirtiendo los elementos en controles del panel y vinculándose entre ellos, luego a cada barra de desplazamiento se le asigna un evento de scroll, que realiza un cambio de posición del picturebox mostrando un desplazamiento del picturebox. X.III. Diseño de Plataforma 3D. Para la plataforma de visualización 3D se crea un nuevo proyecto de Visual C++, pero a diferencia con la plataforma 2D el programa principal se realiza en el archivo de fuente.cpp, el cual manada llamar varios.h los 36

cuales contienen las instrucciones para crear una pieza o para la lectura del archivo de texto, que tendrá escrito cuales son las piezas, longitudes y diámetros que se requieren en la visualización 3D. Otra diferencia entre estas plataformas es que se utiliza OpenGL (Open Graphics Library), la cual sirve como visualizador 3D en una plataforma que crea un escenario para la visualización del diagrama diseñado en la plataforma 2D. X.III.I. Archivo.h. Existen ocho archivos de tipo.h los cuales sirven para crear una pieza específica en la plataforma de OpenGL. Dentro de cada archivo se agregó la librería GL\gle.h, para ocupar sus instrucciones dentro de una función que se creó con el nombre de la pieza, por el cual será llamada la función. Los archivos de tubo, conexiónt, conexióny y reducción_cocentrica llevan dentro de la función tres diferentes instrucciones de la librería de OpenGL. Una instrucción es la de glrotatef(grados, x, y, z), donde el primer dato es el grado de rotación que se desea en el plano, en los otros tres datos se les pone 1.0f en el eje que quiere que rote el plano y 0.0f si es que no desea rotación en el eje. 37

La segunda instrucción es la de gltranslatef(x, y, z), en donde se coloca un valor numérico flotante que representa la distancia de translación, el valor se coloca dependiendo de hacia donde se desea trasladar el punto de inicio de creación de la pieza en el plano de tres dimensiones. Para la tercer instrucción se crea una variable de tipo GLUquadricObj *, enseguida se le asigna una instrucción de nuevo cuadrático (glunewquadric()) para no eliminar lo q ya este hecho; por último la tercer instrucción es glucylinder (nombre de la pieza, diámetro entrada, diámetro salida, longitud), esta instrucción creara un cilindro recto en donde el primer dato es la variable creada, después en los siguientes tres son datos flotantes para los diámetros y longitud del tubo a crear. Por otra parte para los archivos de los diferentes codos en su función a llamar llevan otra estructura que como en todos se ocupa la instrucción de glrotatef y de gltranslatef para posicionar el punto donde y hacia donde se requiere para crear el codo. Enseguida de eso se crean unas variables de tipo entero y doble, ya que por medio de una cadena de tres for se crea un codo por medio de gajos como se ve en la imagen 10.19 (pero la imagen muestra uno de 3 gajos y el programa crea uno de 300); en donde el primer for utiliza la instrucción GL_QUAD_STRIP, para que vaya creando solidos por medio de 38

coordenadas que se van dando por medio de los otros dos for, la instrucción glvertex3f(x, y, z). 10.19 Ejemplo de cómo crea un codo por medio de 3 gajos. El último archivo.h fue realizado para la lectura del archivo de texto que nos indicara las longitudes, diámetros y piezas a colocar para replicar el diagrama creado en la plataforma 2D. Para poder realizar el armado del diagrama en la plataforma 3D se abre el archivo de texto creado con los datos necesarios; para la lectura de este archivo se utiliza la instrucción while que va ir leyendo las líneas del archivo y las ira comparando con la función if para mandar la instrucción, cambiar la longitud o cambiar el diámetro de la tubería que se va creando. X.III.II. Archivo.cpp. En este archivo siendo el principal de la plataforma se le agregaron varias librerías que se ocuparan, y se agregan todos los archivos.h que creamos para las piezas y leer el texto de comunicación con la plataforma 2D como se ve en la imagen 10.20. 39

Librerías Archivos Imagen 10.20 Librerías y archivos.h a ocupar Para el archivo se crearon cuatro funciones en las cuales la primera se creó para poder cambiar la poder rotar la pieza y observar la tubería desde varios ángulos, para ello se va disminuyendo el valor de dos variables que tienen la posición de la pieza y se utiliza la instrucción glutpostredisplay para realizar el cambio del display. La segunda función es la que controlara la pantalla de la plataforma 3D utilizando una variedad de instrucciones como se ve en la imagen 10.21, donde se especifica para que se utilizara cada instrucción en la creación de la plataforma 3D. 40

Imagen 10.21 Código para la visualización de la plataforma 3D. La tercer función que se debe utilizar es la función de void reshape (int, int) {...}, la cual es requerida para poder detectar un nuevo escalamiento y que el diagrama creado no se vea afectado si la plataforma cambia de tamaño. La cuarta función es la principal llamada main, ya que esta es donde mandamos llamar a las demás funciones, con instrucciones específicas de las librerías de OpenGL, para que las funciones se estén ejecutando siempre o se ejecuten al haber un cambio especifico en la plataforma; como es la glutreshapefunc(reshape) que es la que detecta si hay un cambio de tamaño en la ventana de la plataforma, o la glutdisplayfunc(display) que es la que 41

siempre está ejecutando que la plataforma se muestre y se vea el diagrama creado, así como agregar otra pieza si es que al texto se le agrega una nueva línea. 42

XI. RESULTADOS OBTENIDOS. Como resultado la programación de la plataforma para el diseño de los sistemas de distribución en 2D se cumplió con los requerimientos propuestos por el cliente, como el de tener los diferentes botones para dibujar los tubos deseados y disminuir el tiempo de diseño de los sistemas de distribución; así como las restricciones para la utilización de las conexiones Y y T, para la colocación de las salidas de los tubos siempre hacía +Y, también el tener el guardado o abierto de diseños que se realicen y la transmisión de datos para la visualización del 3D; como se observa en la imagen 11.1, un pequeño diagrama en la plataforma 2D que puede replicar en 3D correctamente y el archivo de texto que contiene los datos de transmisión entre plataformas. Imagen 11.1 Diagrama 2D y datos a transmitir. 43

En la plataforma 3D los resultados obtenidos cumplieron con los tiempos establecidos de lo que se tenía que entregar al término de la estadía, ya que la plataforma cuenta con la creación y visualización de la mayoría de las piezas que se colocan en el 2D exceptuando la conexión excéntrica. Aparte que la plataforma 3D también realiza una lectura del archivo de texto creado por la plataforma, realizando la comunicación entre ellos como requirió el cliente; pero la plataforma 3D aún no cuenta con un sistema de coordenadas el cual ayude a replicar correctamente el diagrama hecho en 2D, por lo que crea un diagrama incoherente por el momento; aunque un diagrama con pocas piezas como el de la imagen 11.1 si lo puede replicar, como se observa en la imagen 11.2 la conversión del diagrama en 3D. Imagen 11.2 Diagrama en 3D. 44

XII. CONCLUSIONES Y RECOMENDACIONES. Como conclusión se lograron los resultados esperados, por la entrega de los avances a tiempo de las plataformas en 2D y 3D, aparte de cumplir con los parámetros establecidos por el cliente, y esto se debió al equipo de trabajo que se formó para este proyecto y la correcta planificación de tiempos. Una de las razones que complicó el proyecto fue porque faltaban conocimientos sobre la utilización del programa Visual C++ y la interfaz gráfica de OpenGL, pero se logró solucionar por medio de la lectura de tutoriales y revisión de varios videos que ayudaron a comprender como utilizar varias instrucciones en Visual C++ y Open GL. Por otro lado el realizar el proyecto me aportó conocimiento de cómo utilizar Visual C++ y las librerías de OpenGL para poder realizar las plataformas de diseño en 2D y visualización en 3D así como los conocimientos para desarrollar más aplicaciones de este tipo que brinden soluciones precisas a problemas reales que vive la industria. 45

XIII. ANEXOS. Anexo 1 MINUTA DE LA REUNIÓN PARA PROYECTO DE DISEÑO DE SOFTWARE ESPECIALIZADO EN TUBERIA FECHA INICIO FIN ASISTENTES NOMBRE CARGO MINUTA DE LA REUNIÓN: Se cierra la presente acta a las horas del. NOMBRE Y FIRMA DE ASISTENTES

XIV. BIBLIOGRAFÍA. [1]. Página Oficial de Siemens - CAD /Diseño Asistido por Computador: http://www.plm.automation.siemens.com/es_mx/plm/cad.shtml [2]. Página Oficial de Siemens - CAE/ Computer-Aided Engineering: http://www.plm.automation.siemens.com/es_sa/plm/cae.shtml [3]. Mark Segal y Kurt Akeley;The OpenGL Graphics System: A Specification (version 1.5); http://www.opengl.org/ [4]. Página Oficial de Visual Studio: http://msdn.microsoft.com/eses/library/fx6bk1f4%28v=vs.90%29.aspx