You are on page 1of 125

Universidad Nacional San Cristóbal de

Huamanga

Facultad de Ingenierı́a de Minas, Geologı́a y


Civil

Escuela de Formación Profesional de


Ingenierı́a Civil

Tesis Para Optar el Tı́tulo de Ingeniero Civil

”Interfaz de Programación para Aplicaciones del


Sap2000 y Visual C# Fundamentado en MathCad”

Por:
Edmundo Canchari Gutiérrez

Dirigido Por:
Ing. Cristian Castro Pérez

Ayacucho - Marzo 2009


Presentación

Esta tesis es presentada como parte de los requisitos para optar el tı́tulo académi-
co de Ingeniero Civil, de la Universidad Nacional San Cristóbal de Huamanga, la
misma contiene los resultados obtenidos en investigaciones llevadas a cabo en el
periodo 2007-2009.

Edmundo Canchari Gutiérrez


http://cgedmundo.wordpress.com
cgedmundo@gmail.com
Escuela Profesional de Ingenierı́a Civil
Universidad Nacional San Cristóbal de Huamanga
Ayacucho, marzo del 2009

i
Dedicatoria

Dedico esta Tesis a mis padres Juan y Emilia y a


mis hermanos.

ii
Agradecimientos

A la Universidad Nacional San Cristóbal de Huamanga y todos los Catedráti-


cos de la Escuela Profesional de Ingenierı́a Civil.

A mis padres, por su apoyo constante en mi vida.

A Carla Marilyn, por brindarme esta tranquilidad en mis momentos de deses-


peración por culminar esta tesis.

Mis agradecimientos a la empresa Computers and Structures, INC por libe-


rar a disposición de los usuarios, de manera totalmente gratuita, la Interfaz
de Programación para Aplicaciones del programa Sap2000, a disposición de
cualquier usuario interesado.

Agradezco también a la empresa Microsoft por la distribución gratuita del


entorno de desarrollo integrado Microsoft Visual Studio 2009 Express Edition,
sin la cual hubiera sido más tedioso todavı́a el desarrollo del presente trabajo.

A los usuarios de los foros de discusión http://foros.construaprende.com/,


http://forum.4downloader.ir/ y la comunidad para la ingenierı́a civil
http://www.arivte.com/Comunidad/

A la comunidad de usuarios de LATEX, al grupo que mantiene la distribución


para el sistema operativo Windows y a los creadores del editor WinEdt 6.0,
sin la cual hubiera sido casi imposible el cuidado y la presentación impecable
de la presente tesis.

iii
Resumen

El objetivo principal de la presente Tesis es mostrar la utilidad de la Interfaz de


Programación para Aplicaciones de Sap2000 11.0.4 con la debida justificación de los
resultados obtenidos; entre los varios lenguajes de programación desde la que puede
ser integrada se ha elegido Microsoft Visual C#, por ser un lenguaje orientado a
objetos y estar completamente integrado con la plataforma .NET, en el desarrollo
del programa es utilizado el entorno de desarrollo integrado Microsoft Visual Studio
2009 Express Edition, en la que se encuentra un ambiente cómodo para realizar
aplicaciones en computadoras. Se justifica detalladamente los resultados de Sap2000
mediante el método de los elementos finitos desde MathCad 14, para estructuras
que cumplan las condiciones para ser modelado como un sólido axisimétrico. La
aplicación práctica de la presente Tesis es el techo del Auditorio de la Facultad de
Ciencias de la Educación de la Universidad Nacional San Cristóbal de Huamanga.
Es importante advertir al interesado que en la presente tesis no se desarrolla
la formulación del método de los elementos finitos, se presenta un resumen de lo
necesario para su programación; la teorı́a se utiliza en un nivel superior, aplicando
directamente al análisis de estructuras justificando los resultados de Sap2000 deta-
lladamente, surgiendo ası́, un complemento ideal en el proceso de aprendizaje del
referido método.

iv
Índice general

Presentación I

Dedicatoria II

Agradecimientos III

Resumen IV

Índice general V

Índice de figuras XII

Índice de cuadros XV

I Introducción 1

1. Introducción 2
1.1. Generalidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2. Motivación de la investigación . . . . . . . . . . . . . . . . . . . . . . 2
1.3. Planteamiento del problema . . . . . . . . . . . . . . . . . . . . . . . 3
1.4. Justificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.5. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.5.1. Objetivos generales . . . . . . . . . . . . . . . . . . . . . . . . 4
1.5.2. Objetivos especı́ficos . . . . . . . . . . . . . . . . . . . . . . . 4
1.6. Organización del estudio . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.7. Metodologı́a aplicada . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

v
II Marco teórico 8

2. Análisis de estructuras con elementos finitos 9


2.1. Método de los elementos finitos . . . . . . . . . . . . . . . . . . . . . 9
2.1.1. Perspectiva histórica . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.2. Definición . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.1.3. Esquema de presentación . . . . . . . . . . . . . . . . . . . . . 10
2.2. Modelamiento de elementos estructurales . . . . . . . . . . . . . . . . 11
2.2.1. Elementos adimensionales . . . . . . . . . . . . . . . . . . . . 11
2.2.2. Elementos unidimensionales . . . . . . . . . . . . . . . . . . . 11
2.2.3. Elementos bidimensionales . . . . . . . . . . . . . . . . . . . 12
2.2.4. Elementos tridimensionales . . . . . . . . . . . . . . . . . . . 13
2.3. Sólido axisimétrico . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3.1. Estructuras de simetrı́a axial . . . . . . . . . . . . . . . . . . . 14
2.3.2. Modelo como sólido axisimétrico . . . . . . . . . . . . . . . . . 14
2.3.3. Campo de desplazamientos . . . . . . . . . . . . . . . . . . . . 14
2.3.4. Campo de deformaciones . . . . . . . . . . . . . . . . . . . . . 15
2.3.5. Campo de tensiones . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.6. Ecuación constitutiva . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.7. Expresión del principio de la energı́a potencial mı́nima . . . . 16
2.4. Formulación de elementos finitos . . . . . . . . . . . . . . . . . . . . . 17
2.4.1. Funciones de forma . . . . . . . . . . . . . . . . . . . . . . . . 17
2.4.1.1. Elemento rectangular . . . . . . . . . . . . . . . . . . 17
2.4.2. Coordenadas . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4.3. Matriz jacobiano . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4.4. Matriz de rigidez . . . . . . . . . . . . . . . . . . . . . . . . . 19

3. Programación en C# con API Sap2000 21


3.1. Generalidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.2. Microsoft Visual Studio . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3. Microsoft .NET framework . . . . . . . . . . . . . . . . . . . . . . . . 22

vi
3.4. El lenguaje de programación Visual c# . . . . . . . . . . . . . . . . 22
3.4.1. Clase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.4.2. Espacio de nombre . . . . . . . . . . . . . . . . . . . . . . . . 23
3.4.3. Tipos de datos . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.4.4. Método . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.4.5. Objeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.4.6. Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.5. Interfaz de programación para aplicaciones de sap2000 . . . . . . . . 24
3.5.1. Instalación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.5.2. Utilidad ¿Para qué sirve? . . . . . . . . . . . . . . . . . . . . . 24
3.6. Procedimientos generales . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.6.1. Integrar interface de Sap2000 a Visual Studio . . . . . . . . . 26
3.6.2. Implementar interface de Sap2000 en un objeto . . . . . . . . 27
3.6.3. Accediendo al objeto que implementa la interface . . . . . . . 27
3.6.4. Inicializando un archivo nuevo . . . . . . . . . . . . . . . . . . 28
3.6.5. Apoderarse de un Archivo Existente . . . . . . . . . . . . . . 28
3.6.6. Cerrando la Aplicación . . . . . . . . . . . . . . . . . . . . . . 29
3.6.7. La función mágica . . . . . . . . . . . . . . . . . . . . . . . . 29

III Materiales y métodos 30

4. Análisis se Sólidos Axisimétricos con FEM 31


4.1. Generalidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.1.1. Sap2000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.1.1.1. Método de análisis . . . . . . . . . . . . . . . . . . . 32
4.1.1.2. Método de elementos finitos . . . . . . . . . . . . . . 32
4.1.2. Estructuras de simetrı́a axial . . . . . . . . . . . . . . . . . . . 33
4.1.2.1. Estructura a analizar . . . . . . . . . . . . . . . . . . 33
4.1.2.2. Modelo de la estructura . . . . . . . . . . . . . . . . 33
4.2. Implementación de Funciones en MathCad Para el análisis de sólidos
axisimétricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

vii
4.2.1. Pre-procesador . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.2.1.1. Nudos . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.2.1.2. Elementos . . . . . . . . . . . . . . . . . . . . . . . . 35
4.2.1.3. Propiedades . . . . . . . . . . . . . . . . . . . . . . . 36
4.2.1.4. Soportes . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.2.1.5. Cargas . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.2.2. Procesador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.2.2.1. Funciones generales . . . . . . . . . . . . . . . . . . . 38
4.2.2.1.1. Coordenadas de nudos . . . . . . . . . . . . 38
4.2.2.1.2. Matriz de propiedades . . . . . . . . . . . . 38
4.2.2.1.3. Grados de libertad . . . . . . . . . . . . . . 39
4.2.2.2. Funciones para obtener la matriz de rigidez del ele-
mento . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.2.2.2.1. Funciones de forma . . . . . . . . . . . . . . 40
4.2.2.2.2. Coordenadas . . . . . . . . . . . . . . . . . 41
4.2.2.2.3. Desplazamientos . . . . . . . . . . . . . . . 41
4.2.2.2.4. Matriz Jacobiana . . . . . . . . . . . . . . . 41
4.2.2.2.5. Matriz deformación unitaria - Desplazamiento 42
4.2.2.2.6. Matriz de rigidez del elemento . . . . . . . . 43
4.2.2.3. Función matriz de rigidez ensamblado . . . . . . . . 45
4.2.2.4. Función vector de fuerzas nodales equivalentes . . . . 46
4.2.2.5. Función desplazamientos en nudos . . . . . . . . . . 47
4.2.2.5.1. Comparación de resultados con sap2000 . . 49
4.2.3. Post-procesador . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.2.3.1. Reacciones en los apoyos . . . . . . . . . . . . . . . . 49
4.2.3.1.1. Comparación de resultados con sap2000 . . 50
4.2.3.2. Tensiones . . . . . . . . . . . . . . . . . . . . . . . . 50

5. Desarrollo del Programa ”esaSAP” 52


5.1. Organización para el programa . . . . . . . . . . . . . . . . . . . . . 52
5.2. Descripción de la clase SapApi-Asolid . . . . . . . . . . . . . . . . . . 54

viii
5.2.1. public void AbrirSap2000() . . . . . . . . . . . . . . . . . . . . 54
5.2.2. void Refrescar() . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.2.3. public void Cerrar() . . . . . . . . . . . . . . . . . . . . . . . 54
5.2.4. Método DefinirPropiedad . . . . . . . . . . . . . . . . . . . . 54
5.2.5. Método ZUCS . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.2.6. public void DefinirCargas() . . . . . . . . . . . . . . . . . . . 55
5.2.7. public void MasaEstructura() . . . . . . . . . . . . . . . . . . 55
5.2.8. Método ConoCompleto . . . . . . . . . . . . . . . . . . . . . . 55
5.2.9. Método ConoConAbertura . . . . . . . . . . . . . . . . . . . . 56
5.2.10. Método AsignarCargas . . . . . . . . . . . . . . . . . . . . . . 56
5.2.11. Método Rectangulo4Nodos . . . . . . . . . . . . . . . . . . . . 56
5.2.12. Método AsignarSoportesEnBase . . . . . . . . . . . . . . . . . 56
5.2.13. Método AsignarSoportesEnCentro . . . . . . . . . . . . . . . . 57
5.2.14. Método Analizar . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.2.15. Código fuente . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.3. Descripción del programa esaSAP . . . . . . . . . . . . . . . . . . . . 57
5.3.1. Generalidades . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.3.2. Opciones de análisis . . . . . . . . . . . . . . . . . . . . . . . 57
5.3.3. Controles utilizados . . . . . . . . . . . . . . . . . . . . . . . . 60
5.3.4. Espacio de nombre . . . . . . . . . . . . . . . . . . . . . . . . 60
5.3.5. La clase AsolidCono . . . . . . . . . . . . . . . . . . . . . . . 60
5.3.6. Descripción de métodos . . . . . . . . . . . . . . . . . . . . . 60
5.3.7. Descripción de eventos . . . . . . . . . . . . . . . . . . . . . . 61
5.3.8. Código fuente . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

IV Resultados 62

6. Caso de estudio a un proyecto local 63


6.1. Descripción del proyecto . . . . . . . . . . . . . . . . . . . . . . . . . 63
6.2. Argumentos requeridos para el análisis . . . . . . . . . . . . . . . . . 63
6.2.1. Dimensiones de la estructura . . . . . . . . . . . . . . . . . . . 64

ix
6.2.2. Material utilizado . . . . . . . . . . . . . . . . . . . . . . . . . 64
6.2.3. Cargas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
6.2.4. Parámetros para la función de aceleración pseudo espectral . . 64
6.3. Modelo de la estructura . . . . . . . . . . . . . . . . . . . . . . . . . 65
6.4. Análisis de la estructura . . . . . . . . . . . . . . . . . . . . . . . . . 66
6.4.1. Resultados obtenidos sin utilizar esaSAP . . . . . . . . . . . . 67
6.4.1.1. Desplazamientos . . . . . . . . . . . . . . . . . . . . 67
6.4.1.2. Tensiones . . . . . . . . . . . . . . . . . . . . . . . . 68
6.4.1.3. Fuerzas . . . . . . . . . . . . . . . . . . . . . . . . . 69
6.4.2. Resultados obtenidos utilizando esaSAP . . . . . . . . . . . . 69
6.4.2.1. Desplazamientos . . . . . . . . . . . . . . . . . . . . 71
6.4.2.1.1. Desplazamientos en la dirección radial . . . 72
6.4.2.1.2. Desplazamientos en la dirección axial . . . . 73
6.4.2.2. Tensiones . . . . . . . . . . . . . . . . . . . . . . . . 73
6.4.2.2.1. Tensiones en la dirección radial . . . . . . . 74
6.4.2.2.2. Tensiones en la dirección circunferencial . . 75
6.4.2.2.3. Tensiones en la dirección axial . . . . . . . . 76
6.4.2.2.4. Tensión tangencial . . . . . . . . . . . . . . 76
6.4.2.3. Fuerzas . . . . . . . . . . . . . . . . . . . . . . . . . 77
6.4.2.3.1. Fuerzas radiales . . . . . . . . . . . . . . . . 78
6.4.2.3.2. Fuerzas axiales . . . . . . . . . . . . . . . . 79
6.4.3. Comparación de resultados . . . . . . . . . . . . . . . . . . . . 79
6.5. Obtención de refuerzos . . . . . . . . . . . . . . . . . . . . . . . . . . 80
6.5.1. Diseño por esfuerzo radial S11 . . . . . . . . . . . . . . . . . . 80
6.5.2. Diseño por esfuerzo Axial S33 . . . . . . . . . . . . . . . . . . 82
6.6. Justificación de los resultados . . . . . . . . . . . . . . . . . . . . . . 82

V Conclusiones 84

7. Conclusiones y recomendaciones 85
7.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

x
7.1.1. De la metodologı́a . . . . . . . . . . . . . . . . . . . . . . . . . 85
7.1.2. De los resultados . . . . . . . . . . . . . . . . . . . . . . . . . 86
7.1.3. Aplicaciones utilizados . . . . . . . . . . . . . . . . . . . . . . 86
7.1.4. Lenguajes de programación . . . . . . . . . . . . . . . . . . . 87
7.2. Recomendaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
7.3. Desarrollos futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

Bibliografı́a 89

VI Anexos 92

A. Código fuente ”esaSAP” 93


A.1. Código fuente clase SapApi-Asolid . . . . . . . . . . . . . . . . . . . . 93
A.2. Código fuente ”esaSAP” . . . . . . . . . . . . . . . . . . . . . . . . . 99

B. Fotografı́as 106

C. Planos de la construcción 109

xi
Índice de figuras

2.1. Pórtico en el espacio, nudos y elementos . . . . . . . . . . . . . . . . 11


2.2. Muro de contención, nudos y elementos . . . . . . . . . . . . . . . . . 12
2.3. Estructura general con simetrı́a axial . . . . . . . . . . . . . . . . . . 13
2.4. Tensiones actuando sobre un elemento diferencial de un sólido de
revolución con cargas de revolución . . . . . . . . . . . . . . . . . . . 15
2.5. Sistema de coordenada cartesiana y normalizado . . . . . . . . . . . . 18

3.1. Ventana principal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26


3.2. Referencia desde C# al API de Sap2000 11.0.4 . . . . . . . . . . . . . 26
3.3. Integrar API Sap2000 11.0.4 . . . . . . . . . . . . . . . . . . . . . . . 27

4.1. Vista en planta techo en forma de cono con abertura . . . . . . . . . 32


4.2. Vista en elevación techo en forma de cono con abertura . . . . . . . . 33
4.3. Modelo de la sección caracterı́stica de revolución . . . . . . . . . . . . 34
4.4. Sección caracterı́stica de revolución . . . . . . . . . . . . . . . . . . . 34
4.5. Identificación de nudos y elementos . . . . . . . . . . . . . . . . . . . 35
4.6. Función para obtener coordenadas . . . . . . . . . . . . . . . . . . . 39
4.7. Función para obtener gdl . . . . . . . . . . . . . . . . . . . . . . . . 40
4.8. Función para obtener K . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.9. Función para obtener F . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.10. Función para obtener Km . . . . . . . . . . . . . . . . . . . . . . . . 48
4.11. Función para obtener desplazamientos . . . . . . . . . . . . . . . . . 48
4.12. Función para ordenar desplazamientos . . . . . . . . . . . . . . . . . 48
4.13. Función para ordenar reacciones . . . . . . . . . . . . . . . . . . . . 50

xii
4.14. Función desplazamientos de un elemento . . . . . . . . . . . . . . . . 51

5.1. Diagrama de Flujo general . . . . . . . . . . . . . . . . . . . . . . . . 53


5.2. Ventana principal de la aplicación esaSAP . . . . . . . . . . . . . . . 58
5.3. Opciones de análisis esaSAP . . . . . . . . . . . . . . . . . . . . . . 58
5.4. Sección de revolución cono completo . . . . . . . . . . . . . . . . . . 59
5.5. Sección de revolución cono con abertura . . . . . . . . . . . . . . . . 59
5.6. Argumentos generales para el análisis . . . . . . . . . . . . . . . . . 59

6.1. Vista en planta del techo en forma de cono . . . . . . . . . . . . . . . 65


6.2. Vista en 3D del techo en forma de cono . . . . . . . . . . . . . . . . . 65
6.3. Sección de revolución de la estructura . . . . . . . . . . . . . . . . . . 66
6.4. Modelo de la estructura como sólido axisimétrico . . . . . . . . . . . 66
6.5. Dimensiones de la Sección de Revolución . . . . . . . . . . . . . . . . 70
6.6. Argumentos para esaSAP . . . . . . . . . . . . . . . . . . . . . . . . 71
6.7. Desplazamiento radial máximo en función de la discretización . . . . 73
6.8. Desplazamiento axial máximo en función de la discretización . . . . . 73
6.9. Tensión radial máximo en función de la discretización . . . . . . . . 75
6.10. Tensión circunferencial máximo en función de la discretización . . . . 75
6.11. Tensión axial máximo en función de la discretización . . . . . . . . . 76
6.12. Tensión tangencial máximo en función de la discretización . . . . . . 76
6.13. Fuerza radial máximo en función de la discretización . . . . . . . . . 78
6.14. Fuerza axial máximo en función de la discretización . . . . . . . . . . 79
6.15. Esfuerzo radial máximo en la zona inferior de la estructura . . . . . 80
6.16. Esfuerzo radial máximo en la zona zona intermedia y superior . . . . 81
6.17. Esfuerzo axial máximo en la zona inferior . . . . . . . . . . . . . . . 82
6.18. Refuerzos obtenidos para la estructura . . . . . . . . . . . . . . . . . 83

B.1. Encofrado del techo del auditorio de la Facultad de Ciencias de la


Educación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
B.2. Encofrado del techo del auditorio de la Facultad de Ciencias de la
Educación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

xiii
B.3. Refuerzos del techo del auditorio de la Facultad de Ciencias de la
educación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
B.4. Auditorio Facultad Ciencias de la Educación U.N.S.C.H . . . . . . . . 108
B.5. Auditorio Facultad Ciencias de la Educación U.N.S.C.H . . . . . . . . 108

xiv
Índice de cuadros

3.1. Cuadro de elementos utilizados . . . . . . . . . . . . . . . . . . . . . 25

4.1. Identificación de nudos . . . . . . . . . . . . . . . . . . . . . . . . . . 36


4.2. Identificación de los elementos . . . . . . . . . . . . . . . . . . . . . . 36
4.3. Identificación de soportes . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.4. Cargas en nudos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.5. Desplazamientos en los nudos . . . . . . . . . . . . . . . . . . . . . . 49
4.6. Reacciones en los soportes . . . . . . . . . . . . . . . . . . . . . . . . 50

6.1. Desplazamientos máximos en los nudos de la estructura sin utilizar


la extensión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
6.2. Tensiones máximos en elementos sin utilizar la extensión . . . . . . . 69
6.3. Fuerzas máximos en nudos de elementos sin utilizar la extensión . . . 70
6.4. Desplazamientos máximos en los nudos utilizando la extensión . . . . 72
6.5. Tensiones máximos en elementos utilizando la extensión . . . . . . . . 74
6.6. Fuerzas máximos en nudos de elementos utilizando la extensión . . . 78

xv
Parte I

Introducción

1
Capı́tulo 1

Introducción

1.1. Generalidades

Sap2000, programa desarrollado por la empresa Computers and Structures, Inc.


destinado para el análisis y diseño de estructuras, posee desde su versión 11.0.0 1
una Interfaz de Programación para Aplicaciones (API - Application programming
Interface) con la cual el interesado puede ampliar las capacidades del programa con
finalidades particulares, para propósitos especı́ficos. Siendo esta propiedad con que
dispone el programa la base en la que se centra la presente tesis.
En el presente trabajo se elaborará, personalizará y validará el uso de API
SAP2000 desde MICROSOFT VISUAL C#, producto del trabajo de investiga-
ción, donde se mostrará claramente las ventajas y las bondades de la Interfaz de
Programación para Aplicaciones, el análisis estructural con el MÉTODO DE LOS
ELEMENTOS FINITOS y la programación orientada a objetos. Asimismo, como
elemento de trabajo y fundamentación de los modelos numéricos a utilizarse se em-
pleará el MATHCAD como modelo de aprendizaje.

1.2. Motivación de la investigación

Actualmente entender los fundamentos del Método de los Elementos Finitos es


muy importante en la vida profesional del Ingeniero Civil, ya que la gran mayorı́a
1
En el desarrollo de la presente tesis se utiliza el programa Sap2000 11.0.4

2
de los programas, no solo en el área de estructuras, están escritos basándose en
este método. Por lo tanto, se ha llegado a un nivel tal que es imposible evitar la
convivencia constante con estas aplicaciones, por lo que ofrece, por una parte las
grandes facilidades para modelar situaciones reales y por otra, exige al usuario tener
un conocimiento suficiente para el correcto uso de las aplicaciones.
Con la finalidad de utilizar el programa Sap2000 de manera responsable se in-
vestiga el Método de los Elementos Finitos para finalmente automatizar el análisis
estructural mediante su Interface de Programación para Aplicaciones.
Es imposible programar en Sap2000 sin los conocimientos suficientes del Método
de los Elementos Finitos, cuanto mayor conocimiento se tenga del método de análisis
en que se fundamenta, mejor será la convivencia entre el usuario y el programa y
como consecuencia natural con su Interface de Programación para Aplicaciones.

1.3. Planteamiento del problema

El principal inconveniente surge en utilizar aplicaciones para el Análisis Estruc-


tural sin conocimiento suficiente de los métodos de análisis en que se fundamenta
el programa; consciente de esta realidad, en la presente tesis se justifica el uso del
Método de los Elementos Finitos en el programa Sap2000, para luego automatizar
el procedimiento mediante la Interfaz de Programación para Aplicaciones.
Los interesados en utilizar el programa Sap2000 para sus análisis, tendrán en la
presente tesis las bases justificadas para su adecuado uso.

1.4. Justificación

Se hace uso de aplicaciones de muy alto nivel como son Sap2000 11.0.4, Math-
Cad 14 y Microsoft Visual Studio 2009 Express Edition, además de utilizar técnicas
y lenguajes de programación actuales, lo que permite enlazar la Interfaz de Pro-
gramación para Aplicaciones que posee Sap2000 con el lenguaje de programación
Microsoft Visual C# para acceder al programa, con la finalidad de realizar una
serie de extensiones para cada propósito. De igual manera se utiliza el Método do los

3
Elementos Finitos para justificar los resultados, método numérico que actualmente
es el más idóneo para el análisis de estructuras.

1.5. Objetivos

1.5.1. Objetivos generales

Crear una aplicación con la finalidad de automatizar el proceso de análisis en el


programa Sap2000 mediante su Interfaz de Programación para Aplicaciones.
La aplicación será para automatizar el análisis de techos de edificaciones que
tienen la forma de cono, para el análisis se modelará la estructura como un
Sólido de revolución.

1.5.2. Objetivos especı́ficos

Los objetivos especı́ficos son los siguientes

Utilizar el Método de los Elementos Finitos en su formulación para estructuras


modeladas como Sólidos de Revolución.

Crear una plantilla mediante programación en MathCad 14 para el análisis de


cualquier estructura que pueda ser modelado como un Sólido de Revolución
mediante el Método de los Elementos Finitos.

Analizar una estructura que pueda ser modelada como Sólido de Revolución
en Sap2000 y en la plantilla creada de MathCad 14 y lograr que los resultados
sean los mismos.

Programar una aplicación para automatizar el análisis estructural en Sap2000


desde el lenguaje de programación Microsoft Visual c#

1.6. Organización del estudio

El hecho de tomar los resultados obtenidos de Sap2000 y modificarlo o ampliarlo


convenientemente, lleva a la necesidad de tener un conocimiento adecuado de los

4
fundamentos teóricos en que se basa el programa, sólo ası́ se estará en la capacidad
de entender el funcionamiento y ser capaz de interpretar correctamente los resul-
tados obtenidos, por esta razón se investiga el Método de los Elementos Finitos,
con el propósito de justificar el análisis y crear una extensión para modelar y ana-
lizar estructuras que cumplen las condiciones para ser modeladas como sólidos de
revolución.
Por la misma naturaleza de cálculo y convencido de que no existe mejor manera
de aprender el Método de los Elementos Finitos sino programándolo y la necesidad
de observar el proceso de cálculo paso a paso conlleva a utilizar los medios adecuados
para este fin, MathCad 14 es una herramienta ideal especı́ficamente diseñado para
elaborar informes técnicos detallados y será aprovechado en esta oportunidad en el
análisis de estructuras.
Los resultados obtenidos mediante MathCad 14 para su validez deben de coinci-
dir con los del Sap2000, ya que la formulación del Método de los Elementos Finitos,
sea por el principio que fuere, llega a un resultado único. La igualdad de los resulta-
dos, los de MathCad 14 y Sap2000 11.0.4, en la presente tesis es la base que justifica
el uso del Método de los Elementos Finitos de manera apropiada, garantizando de
esta manera los resultados que ofrece el programa Sap2000.
Finalmente se crea una extensión para Sap2000 desde Microsoft Visual c# para
el análisis de estructuras modeladas como Sólidos de Revolución, cuya aplicación
práctica es el techo en forma de cono del auditorio de la Facultad de Ciencias de la
Educación de la Universidad Nacional San Cristóbal de Huamanga.
Se consideran los siguientes capı́tulos:

Capı́tulo 1: Generalidades sobre la tesis.

Capı́tulo 2: Análisis estructural con el método de los elementos finitos, modela-


miento de elementos estructurales y un resumen de lo necesario para su pro-
gramación del método de los elementos finitos para el análisis de estructuras
axisimétricas.

Capı́tulo 3: Los fundamentos para la programación en Visual C# y la Interface

5
de Sap2000. Descripción de los procedimientos generales para interactuar con
la Interfaz de Programación para Aplicaciones de Sap2000 desde Microsoft
Visual C#, para la edición de la aplicación se utiliza el entorno de de desarrollo
integrado Microsoft Visual Studio 2009 Express Edition.

capı́tulo 4: Para entender el presente capı́tulo el interesado debe tener el cono-


cimiento suficiente del método de los elementos finitos, ya que es utilizado
directamente en la creación de una plantilla en MathCad 14 con la finalidad
de justificar los resultados de Sap2000 y obtener un procedimiento de análisis
detallado. La plantilla es para analizar mediante el método de los elementos
finitos de cualquier estructura que pueda ser modelado como un sólido axi-
simétrico.

Capı́tulo 5: Desarrollo de una extensión para Sap2000 mediante su Interfaz de


Programación para Aplicaciones desde Microsoft Visual c#. La extensión
tendrá la capacidad de modelar y analizar mediante el Método de los Ele-
mentos Finitos un tipo de estructura que cumple las condiciones para ser
modelado como Sólido de Revolución.

Capı́tulo 6: Caso de estudio y aplicación, discusión de resultados. Como aplicación


práctica se analiza el techo, en forma de cono, de la Aula Magna, de la Facultad
de Ciencias de la Educación en la Ciudad Universitaria(Universidad Nacional
San Cristóbal de Huamanga - UNSCH).

Capı́tulo 7: Conclusiones y recomendaciones.

1.7. Metodologı́a aplicada

La investigación es analı́tica. Consiste en investigar el Método de los Elemen-


tos Finitos para estructuras que cumplen las condiciones para ser modeladas como
Sólidos de Revolución, luego realizar un programa en MathCad 14 con la finalidad
de obtener un procedimiento de análisis detallado, los resultados obtenidos serán
comparados con los que se obtiene del programa Sap2000 11.0.4 ; establecido los

6
fundamentos teóricos suficientes se podrá realizar extensiones mediante la Interface
de Programación para Aplicaciones que posee el programa.

7
Parte II

Marco teórico

8
Capı́tulo 2

Análisis de estructuras con


elementos finitos

El presente capı́tulo trata sobre el modelamiento de los elementos estructurales


mediante el Método de los Elementos Finitos 1 ; bien se harı́a al no tratar este capı́tu-
lo, dedicando el trabajo completamente a interpretar las relaciones establecidas en
los libros de la referencia y justificar los resultados obtenidos, en lugar de estar re-
produciendo, lo que en cualquier libro que trate del tema se le puede encontrar y con
mucho mayor detalle, pero cumpliendo los requisitos para una ”tesis” es necesario
incluirlo.

2.1. Método de los elementos finitos

2.1.1. Perspectiva histórica

La referencia [6](Páginas 01 al 05) narra de una manera extraordinaria, sus orı́ge-


nes, evolución y el presente del método de los elementos finitos. Según los entendidos
en el tema no es posible indicar con exactitud el momento en que se inicia el referido
método2 .
1
Los referencias [1], [2], [3], [4], [5], etc tratan a detalle sobre el método para el análisis de
estructuras.
2
Referencia [5] página 03

9
2.1.2. Definición

La definición del método, para su veracidad se transcribe de los libros de la


referencia.

ANSYS-CivilFem(2003) el Método de los Elementos Finitos, es uno de los pro-


cedimientos que existen para aproximar el comportamiento de una estructura
con infinitos grados de libertad por el de otra, con aproximadamente las mis-
mas propiedades fı́sicas y geométricas, pero con un número finito de grados
de libertad, cuyas ecuaciones de equilibrio pueden expresarse por un sistema
algebraico de ecuaciones simultáneas con un número limitado de incógnitas3 .

O.C Zienkiewicz - R.L. Taylor(1993) es objeto de este texto presentar un pa-


norama del método de los elementos finitos como un procedimiento general de
discretización de los problemas continuos planteadas por expresiones definidas
matemáticamente 4 .

2.1.3. Esquema de presentación

En el presente trabajo se adopta el enfoque de la energı́a potencial 5 para la


formulación del método de los elementos finitos.

Principio de la energı́a potencial mı́nima Para sistemas conservativos, de to-


dos los campos de desplazamientos cinemáticamente admisibles, aquellos que
corresponden a condiciones de equilibrio extremizan la energı́a potencial total.
Si la condición extrema es un mı́nimo, el estado de equilibrio es estable6 .
3
Referencia [7] página 03
4
Referencia [5] página 02
5
Los detalles del principio de la energı́a potencial para la formulación del método de los elementos
finitos, se encuentran en las referencias [8](Páginas 09 al 11), [6](Páginas 19 al 26), [9](Páginas 07
al 12)
6
Referencia [8] página 10

10
2.2. Modelamiento de elementos estructurales

Debido a lo extenso del tema, se comenta brevemente los modelos7 para los
elementos estructurales en un análisis mediante el método de los elementos finitos.

2.2.1. Elementos adimensionales

Se consideran objetos adimensionales a los nudos. Mediante los nudos están


conectados los elementos en una discretización para el análisis y representan los
puntos, sobre la estructura, en las cuales se desea obtener los resultados requeridos
figura(2.2 y 2.1).

2.2.2. Elementos unidimensionales

El elemento unidimensional, la lı́nea 8 , es un objeto que sirve para modelar el


comportamiento de los siguientes elementos estructurales: armaduras, vigas, colum-
nas, cables, etc, y todo elemento estructural en la que la longitud es mucho mayor
que las dimensiones que definen su sección transversal, figura(2.1).

Figura 2.1: Pórtico en el espacio, nudos y elementos


7
Los modelos estructurales para el análisis por elementos finitos en el programa Sap2000 se
encuentra en las referencias [10] y [11]
8
El método de los elementos finitos, detalladamente explicado para elementos estructurales que
puedan ser modelados con una lı́nea tratan las referencias [2], [3], [8] por citar algunos

11
Inicialmente la tesis estaba orientado al análisis, la justificación y la automati-
zación para elementos estructurales unidimensionales en el programa Sap2000. En
el proceso de desarrollo se demostró que la formulación del método de los elementos
finitos para este tipo de estructuras, finalmente termina siendo el método de la ri-
gidez, además de existir otros métodos con las cuales es posible obtener resultados
exactos y en menor tiempo; limitando exageradamente el uso verdadero del referido
método. Por esta razón no amerita la dedicación exclusiva en la automatización de
procesos de análisis en Sap2000 mediante su Interfaz de Programación para Aplica-
ciones, en su lugar se ha optado por el análisis, la justificación y la automatización
para estructuras axisimétricas.

2.2.3. Elementos bidimensionales

Se utiliza para modelar elementos estructurales de superficie figura(2.2) y son9 :

Figura 2.2: Muro de contención, nudos y elementos

Cáscaras(Shell) Las cáscaras son utilizadas para modelar estructuras bidimensio-


nales o tridimensionales, como el comportamiento tipo cáscara de tanques,
cúpulas o bóvedas; como el comportamiento tipo placa de las losas o como el
comportamiento tipo membrana de los muros de corte.

El plano Para modelar sólidos bidimensionales, en el análisis del comportamiento


9
Esta sección está transcrito completamente de la referencia [10] Páginas 248 al 252

12
de esfuerzos planos en estructuras planas y delgadas, o también para modelar
el comportamiento de deformaciones planas en estructuras prismáticas largas.

Sólido Axisimétrico Es usada para modelar sólidos simétricos respecto a un eje10 ,


los cuales están sujetos a cargas simétricas con respecto al mismo eje. Éste es
el tipo de estructura que se analizará en la presente tesis.

2.2.4. Elementos tridimensionales

Para analizar estructuras utilizando modelos de sólidos tridimensionales.

2.3. Sólido axisimétrico

Seguidamente se realiza el resumen del método de los elementos finitos para


estructuras que cumplen las condiciones para ser modelo como un sólido de revo-
lución figura(2.3). Se estudiará únicamente el análisis de sólidos con simetrı́a axial
sometidos a cargas de revolución.

Figura 2.3: Estructura general con simetrı́a axial

Eugenio Oñate(1992) consideraremos sólidos en los que su geometrı́a y propie-


dades mecánicas son independientes de la coordenada circunferencial θ figu-
ra(2.3). Aunque el comportamiento de dichos sólidos es tridimensional, su es-
tudio matemático es generalmente bidimensional ya que en la mayorı́a de los
10
Para mayor detalle consultar las referencias [4], [12], [5], [13]

13
casos puede efectuarse utilizando variables que dependen de dos coordenadas
cartesianas. Si las cargas exteriores son también de revolución, el desplazamien-
to de un punto de una estructura considerada como un sólido de revolución
tiene solo componentes en direcciones radial(υ) y axial(w)11 .

2.3.1. Estructuras de simetrı́a axial

Las estructuras de revolución representan un alto porcentaje en las estructuras


de uso común en ingenierı́a, entre ellos se puede mencionar: Los depósitos para agua,
muros cilı́ndricos, silos, techos de edificaciones especiales, etc.

2.3.2. Modelo como sólido axisimétrico

La figura(2.3 a) muestra una estructura de revolución general , debido a que la


estructura tiene una completa simetrı́a respecto al eje z del sistema de orientación
global, es posible modelar en el plano formado por su sección caracterı́stica de revo-
lución figura(2.3 b); en el modelo, para obtener la estructura entera, será necesario
girar una vuelta entera, 360 grados sexagesimales al rededor del eje z. Sobre esta
sección de revolución se plantea el método de los elementos finitos asignando todas
las condiciones a la que está sometido la estructura completa figura(2.3 c).

2.3.3. Campo de desplazamientos

Para un sólido que cumple las condiciones para ser modelado como un sólido
axisimétrico, el movimiento de un punto, definido en la sección caracterı́stica de re-
volución, queda perfectamente definido por las componentes de los desplazamientos
radial(υ) y axial(w) figura(2.3).

 
υ(r, z)
u=  (2.1)
w(r, z)
11
Referencia [4] página 243

14
2.3.4. Campo de deformaciones

El vector de deformaciones de un punto, tiene las cuatro componentes siguien-


tes: r deformación radial, z deformación axial, θ deformación circunferencial, rz
deformación tangencial.

   
∂υ
 r   ∂r
   
 z   ∂w 
 ∂z 
=  = (2.2)
 

   ∂υ + ∂w 
 rz   ∂z ∂r 
   
υ
θ r

2.3.5. Campo de tensiones

Las tensiones no nulas se corresponden con las deformaciones no nulas, ası́, el


vector de tensiones se escribe como.

 T
σ = σr σz τrz σθ (2.3)

donde σr , σz , σθ , τrz son respectivamente, las tensiones radial, axial, circunfe-


rencial y tangencial. La figura(2.4) muestra el convenio de signos para los tensiones
actuando sobre un elemento diferencial de un sólido de revolución.

Figura 2.4: Tensiones actuando sobre un elemento diferencial de un sólido de revo-


lución con cargas de revolución

15
2.3.6. Ecuación constitutiva

La relación entre tensiones y deformaciones, se deduce de la elasticidad tridi-


mensional, en presciencia de tensiones y deformaciones iniciales se obtiene.

σ = D( − o ) + σ o (2.4)

para materiales isótropos, la matriz de propiedades del elemento está dado por
la ecuación(2.5), en la cual E es el módulo de elasticidad del material y ν es el
coeficiente de poisson.

 
ν ν
 1 1−ν
0 1−ν 
 
E(1 − ν)  ν 1 0 ν 
 1−ν 1−ν 
D= (2.5)
(1 + ν)(1 − 2ν)  0
 
1−2ν
 0 2(1−ν)
0 

 
ν ν
1−ν 1−ν
0 1

2.3.7. Expresión del principio de la energı́a potencial mı́ni-

ma

Considerando el volumen elemental12 mostrado en la figura(2.4) la energı́a po-


tencial puede escribirse en la forma.

Z 2π Z Z 2π Z Z 2π Z
1 T T
Π= σ rdAdθ − u f rdAdθ − uT T rdldθ − ΣuTi Pi (2.6)
2 0 A 0 A 0 L

Donde rdldθ es el área de la superficie elemental, y la carga puntual Pi representa


una carga lineal distribuida al rededor de un cı́rculo, T es una carga distribuida en la
superficie de la estructura y f es la fuerza del cuerpo; como se muestra en la figura(2.3
c) en la página(13). Todas las variables en las integrales son independientes de θ,
entonces la ecuación(2.6) puede escribirse mediante la ecuación(2.7).

 Z Z Z 
1 T
Π = 2π σ rdA − u f rdA − u T rdl − ΣuTi Pi
T T
(2.7)
2 A A L

12
Según la referencia [8]

16
Se nota claramente de las ecuaciones(2.6 y 2.7), aunque el modelo analizado es
un elemento plano figura(2.3 c), matemáticamente se toma en cuenta la estructura
completa en 3D.

2.4. Formulación de elementos finitos

Se realiza una formulación general del método de los elementos finitos para el
análisis de estructuras, para iniciar es necesario dividir el dominio completo del
modelo en análisis, con elementos para los cuales son conocidos sus funciones de
interpolación, este procedimiento es conocido en los libros especializados como tec-
nologı́a de elementos.

2.4.1. Funciones de forma

Las funciones de forma son las que proporcionan las formas que puede adoptar
localmente el campo incógnita.
La elección de las funciones de forma está condicionado no sólo por la forma
que toman los dominios locales o elementos finitos, también por el tipo de problema
de campo que se intenta resolver, por ejemplo(por ejemplo: elasticidad, plasticidad,
transferencia de calor, electromagnetismo) y por la manera de abordarlo(número de
campos independientes)13 .

2.4.1.1. Elemento rectangular

Con la finalidad de trabajar sobre un sub dominio común en los elementos en


que será discretizado el dominio completo, se utiliza la formulación izoparamétri-
ca, en este dominio normalizado figura(2.5), las funciones de interpolación para un
elemento cuadrilátero de cuatro nodos está dado por la ecuación(2.8).
13
Referencia [6] página 35

17
1
N1 (ξ, η) = (1 − ξ)(1 − η)
4
1
N2 (ξ, η) = (1 + ξ)(1 − η)
4 (2.8)
1
N3 (ξ, η) = (1 + ξ)(1 + η)
4
1
N4 (ξ, η) = (1 − ξ)(1 + η)
4

Figura 2.5: Sistema de coordenada cartesiana y normalizado

2.4.2. Coordenadas

Las coordenadas en el interior de cada elemento finito está dado por la ecua-
ción(2.9).

r(ξ, η) = N1 (ξ, η)r1 + N2 (ξ, η)r2 + · · · + Nn (ξ, η)rn


(2.9)
z(ξ, η) = N1 (ξ, η)z1 + N2 (ξ, η)z2 + · · · + Nn (ξ, η)zn

2.4.3. Matriz jacobiano

El cambio desde el sistema de referencia global al sistema normalizado está ex-


presado por la matriz jacobiana ecuación(2.10).

18
 
∂r(ξ,η) ∂z(ξ,η)
J(ξ, η) =  ∂ξ ∂ξ 
(2.10)
∂r(ξ,η) ∂z(ξ,η)
∂η ∂η

2.4.4. Matriz de rigidez

La matriz de rigidez se obtiene desde la ecuación(2.7), desarrollando para un


elemento de ”n” nudos, el vector de desplazamientos para un elemento está or-
denado convenientemente en la ecuación(2.12) y el vector de funciones de forma
ecuación(2.11) es.

     
N1 0 N2 0 Nn 0
N =     ...   (2.11)
0 N1 0 N2 0 Nn
 
υ
 1 
 
 w1 
 
 
 υ2 
 
 
q= w
 2 
 (2.12)
 . 
 . 
 . 
 

 υn 

 
wn
La matriz deformación unitaria desplazamiento.

     
∂N1 ∂N2 ∂Nn
 ∂r 0   ∂r 0   ∂r 0 
     
 0 ∂N1   0 ∂N2   0 ∂Nn 
∂z  ∂z  ∂z 
B =   ··· (2.13)
  
   
 ∂N1 ∂N1   ∂N2 ∂N2   ∂Nn ∂Nn 
 ∂z ∂r   ∂z ∂r   ∂z ∂r 
     
N1 N2 Nn
r
0 r
0 r
0
Las deformaciones está dado mediante  = Bq, la matriz de rigidez en el sistema
normalizado para una estructura de simetrı́a axial está dado por la ecuación(2.14),
para obtener las expresiones de las cargas se procede de manera similar.

Z 1 Z 1
k=t B T DBrJdξdη (2.14)
−1 −1

Donde:

19
t: representa el ángulo de revolución que gira cada elemento finito en que fue
discretizado el plano de la sección caracterı́stica de revolución.

B: es la matriz deformación unitaria desplazamiento [8] o simplemente matriz


de deformación unitaria [4] ecuación(2.13).

D: matriz de propiedades del elemento, ecuación(2.5)

r: coordenada radial para cada punto del elemento finito, ecuación(2.9).

J: matriz jacobiano, ecuación(2.10).

La mejor manera de obtener la matriz de rigidez, es resolver la ecuación(2.14)


numéricamente14 .

14
Los detalles se encuentra en los libros de la referencia [14], [15], [16], [17], [18]

20
Capı́tulo 3

Programación en C# con API


Sap2000

3.1. Generalidades

El presente capı́tulo describe los fundamentos del lenguaje de programación Mi-


crosoft Visual c# 1 y su integración e implementación de la Interfaz de Programación
para Aplicaciones(API) de Sap2000 desde dicho lenguaje.
La Interfaz de Programación para Aplicaciones de Sap2000 se puede utilizar
desde cualquier lenguaje de programación que sea capaz de implementar una inter-
face, entre estos lenguajes de programación se tiene: Visual Basic para Aplicacio-
nes(VBA), Visual Basic .net, Visual C++, Visual C#, Java, Intel Visual Fortran v9,
etc. En la presente Tesis se programará desde el lenguaje de programación Visual
c# por ser un lenguaje orientado a objetos y estar completamente integrado con la
plataforma .NET.

3.2. Microsoft Visual Studio

Lo que Microsoft nos ofrece con Visual Studio 2009 Express Edition es un
entorno de desarrollo de última generación, conjuntamente con el compilador de
1
Microsoft presentó c# al público en la Professional Developer’s Conference en Orlando, Flo-
rida, en el verano del 2000. [19], página 37

21
uno de los lenguajes de programación más avanzados que existe en la actualidad
C#2 . Las versiones Express son de distribución gratuita. El desarrollo del programa
para la tesis se realiza desde este editor.

3.3. Microsoft .NET framework

Microsoft .NET es el conjunto de nuevas tecnologı́as en las que Microsoft a estado


trabajando durante los últimos años con el objetivo de obtener una plataforma
sencilla y potente para distribuir el software en forma de servicios que puedan ser
suministrados remotamente y que puedan comunicarse y combinarse unos con otros
de manera totalmente independiente de la plataforma, lenguaje de programación y
modelo de componentes con los que hayan sido desarrollados. Ésta es la llamada
plataforma .NET3 .

3.4. El lenguaje de programación Visual c#

Según La Biblia C# combina las mejores ideas de lenguajes como C, C++ y


Java con las mejoras de productividad de .NET Framework de Microsoft y
brinda una experiencia de codificación muy productiva tanto para los nuevos
programadores como para los veteranos . . . Microsoft diseñó C# desde su base
para aprovechar el nuevo entorno .NET Framework. Como C# forma parte de
este nuevo mundo .NET deberá comprender perfectamente lo que proporciona
.NET Framework y de que manera aumenta su productividad4 .

Los fundamentos de programación en Visual C# se encuentran detalladamente


escritos en los libros de la referencia, con fines de formalidad es necesario comprender
las siguientes definiciones.
2
Referencia [20] página 05
3
Referencia [21] página 09
4
Reproducido completamente de la referencia [19] páginas 37 - 38

22
3.4.1. Clase

Una clase es una colección de código y de variables, las clases gestionan el estado
en forma de variables que contienen, y comportamientos, en forma de los métodos
que contienen. Sin embargo una clase es sólo una plantilla desde donde se crean
objetos. ([19] página 192). Todo el código y los datos deben ser incluidos en una
clase, no se puede definir una variable fuera de una clase y no se puede escribir
ningún código que no esté en una clase.

3.4.2. Espacio de nombre

Todo programa en C# debe estar contenido en un espacio de nombre con la


finalidad de evitar confusiones en la utilización de variables, que pueden también
estar definidos con el mismo nombre en otras aplicaciones. C# permite agrupar clases
en una colección de clases llamada espacio de nombre. Los espacios de nombres tienen
nombres y sirven de ayuda para organizar colecciones de clases en agrupaciones
lógicas.

3.4.3. Tipos de datos

C# permite trabajar con dos tipos de dato: de valor y de referencia. Los de


valor contiene valores reales, los de referencia contienen referencias a valores valores
almacenados en algún lugar de la memoria.

3.4.4. Método

Los métodos son bloques de instrucciones que devuelven algún tipo de valor
cuando se ejecutan( [19] página 149).

3.4.5. Objeto

C# es un lenguaje orientado a objetos, los objetos son instancias de una clase.

23
3.4.6. Interface

Una interfaz de C# es un conjunto de firmas de métodos, propiedades, eventos o


indizadores agrupadas con un nombre común. Las interfaces funcionan como conjun-
to de funcionalidades definidas que pueden implementarse en una clase o estructura
de c#( [19] página 301)

3.5. Interfaz de programación para aplicaciones

de sap2000

Se ha definido lo que es una interface en la sección(3.4.6), para el desarrollo de


la aplicación se utiliza el editor Microsoft Visual Studio 9 Express Edition desde
la cual se integra la interfaz de programación para aplicaciones(API) de Sap2000
11.0.4. Desde este punto, con las órdenes adecuadas, todos los métodos que soporte
la interfaz del programa Sap2000 11.0.4 están libres para Visual C# a disposición
para ser utilizados como si de sus propias órdenes se tratase5 .

3.5.1. Instalación

La interfaz de programación para aplicaciones de Sap2000 se instala por defecto


con cualquier distribución de Sap2000 desde su versión 11.0.0.

3.5.2. Utilidad ¿Para qué sirve?

En el proceso de modelamiento para el análisis mediante el método de los ele-


mentos finitos el procedimiento es repetitivo para cada tipo de estructura; el grupo
de programadores que mantiene Sap2000 conscientes de esta realidad liberan a dis-
posición de los usuarios una interface de Sap2000 con la cual es posible automatizar
procedimientos completos para cada propósito, desde cualquier lenguaje de progra-
mación externo, dependiendo de las necesidades de cada usuario.
5
La documentación completa con ejemplos para cada orden se encuentra en su manual SAP2000
API Documentation[22]

24
Control Propiedad Valor
Form name frmDiagnóstico
text Sap2000Diagnostico
Button name cmdOpensap2000
text Abrir
Button name cmdCapturesap2000
text Capturar
Button name cmdCloseSap2000
text Cerrar
Button name cmdEvaluarSap2000
text Evaluar

Cuadro 3.1: Cuadro de elementos utilizados

Si alguna vez se pensó tener el control absoluto de Sap2000 ahora ya es posible,


mediante la interface de programación para aplicaciones se tiene un control total
sobre el programa. Tener a disposición toda la capacidad de Sap2000 requiere una
preparación adecuada, tanto en el conocimiento del método de los elementos finitos
y los modelos estructurales para su análisis.

3.6. Procedimientos generales

Seguidamente se realiza una descripción general para integrar la Interfaz de Pro-


gramación para Aplicaciones[22] de Sap2000 v11.0.4 Educacional en el entorno de
desarrollo integrado Microsoft Visual Studio 9 Express Edition, especı́ficamente pro-
gramando en el lenguaje Microsoft Visual c# 6 , para lo cual, se crea una aplicación
y los elementos que se usan se detalla en la cuadro(3.1). El formulario creado se
muestra en la figura(3.1).
6
Los fundamentos de programación del lenguaje se encuentran en los libros de la referencia [20],
[23], [21], [19]

25
Figura 3.1: Ventana principal

Figura 3.2: Referencia desde C# al API de Sap2000 11.0.4

3.6.1. Integrar interface de Sap2000 a Visual Studio

Desde la ventana Explorador de Soluciones, haciendo click derecho sobre el pro-


yecto creado, elegir del menu emergente Agregar referencia... como muestra la figu-
ra(3.2). Luego, se muestra la ventana Agregar referencia, entre las opciones elegir la
pestaña etiquetada COM, entre los muchos componentes existentes en la lista elija
Sap2000 como indica la figura(3.3).
Agregando esta referencia, se le indica a Microsoft Visual c# que queremos
trabajar con la Interface Sap2000.SapObject, en este punto Microsoft Visual Studio

26
Figura 3.3: Integrar API Sap2000 11.0.4

2009 Express Edition se encargará de integrar absolutamente todos su contenido de


la Interface Sap2000.SapObject.

3.6.2. Implementar interface de Sap2000 en un objeto

Para utilizar las órdenes de la interface se opta por implementar en un objeto


desde el lenguaje de programación Microsoft Visual c#, desde este punto es visible
los métodos de la interface a través del objeto. El siguiente programa muestra la
manera de implementar la interface de Sap2000 en un objeto de Visual c#.

1 // Implementa l a i n t e r f a z de Sap2000 a un o b j e t o
2 Sap2000 . SapObject SapObjeto ;
3 // i n i c i a l i z a e l o b j e t o
4 SapObjeto = new Sap2000 . SapObject ( ) ;

3.6.3. Accediendo al objeto que implementa la interface

El objeto que contendrá la interface de la aplicación Sap2000 se debe declarar


de modo que sea visible en todo el proyecto, mediante código deberemos referirnos
a este objeto para todos los propósitos. Creado el objeto que contiene la aplicación,
el siguiente paso es proporcionarle un archivo Sap2000 correspondiente, puede ser
inicializando un nuevo archivo o apoderándose de uno existente. Se tratará ambas
alternativas.

27
3.6.4. Inicializando un archivo nuevo

Es posible desde Microsoft Visual c# inicializar el programa Sap2000, el siguiente


programa inicializa un nuevo entorno en Sap2000 y dibuja un muro en su espacio
modelo, asignando propiedades por defecto.

1 private void cmdOpenSap2000 Click ( object s e n d e r , EventArgs e )


2 {
3 // d e c l a r a v a r i a b l e t i p o Sap2000
4 Sap2000 . SapObject SapObjeto ;
5 long r e t ;
6 // i n i c i a l i z a r l a v a r i a b l e d e l t i p o Sap2000
7 SapObjeto = new Sap2000 . SapObject ( ) ;
8 // i n i c i a l i z a l a a p l i c a c i ó n
9 SapObjeto . A p p l i c a t i o n S t a r t ( Sap2000 . e U n i t s . kgf m C , true , ” Prueba ” ) ;
10 // c r e a e i n i c i a l i z a e l e s p a c i o modelo de sap2000
11 r e t = SapObjeto . SapModel . I n i t i a l i z e N e w M o d e l ( Sap2000 . e U n i t s . kgf m C )
;
12 // d i b u j a una muro
13 r e t = SapObjeto . SapModel . F i l e . NewWall ( 3 , 3 , 3 , 3 , true , ” prueba ” ) ;
14 }

3.6.5. Apoderarse de un Archivo Existente

Otra alternativa muy frecuente es cuando mediante código se quiere apoderar de


un modelo Sap2000 existente y que esté en ejecución, a modo de prueba, el programa
culmina mostrando un mensaje del tipo de unidades actual utilizado.

1 private void cmdCaptureSap2000 Click ( object s e n d e r , EventArgs e )


2 {
3 // debe e x i s t i r un a r c h i v o sap2000 e j e c u t á n d o s e a c t u a l m e n t e
4 // d e c l a r a v a r i a b l e d e l t i p o Sap2000
5 Sap2000 . SapObject SapObjeto ;
6 // i n i c i a l i z a l a v a r i a b l e d e l t i p o Sap2000
7 // e s t a a c c i ó n s e apodera automáticamente de un a r c h i v o e x i s t e n t e
8 SapObjeto = new Sap2000 . SapObject ( ) ;
9 // a modo de comparación
10 // muestra l a s u n i d a d e s de medida a c t u a l d e l e s p a c i o modelo
11 Sap2000 . e U n i t s MyUnits ;
12 MyUnits = SapObjeto . SapModel . G e t P r e s e n t U n i t s ( ) ;
13 string a = ”La unidad de medida a c t u a l e s : ” + MyUnits . T o S t r i n g ( ) ;
14 MessageBox . Show ( a , ” APISap2000 ” , MessageBoxButtons .OK) ;
15 }

28
3.6.6. Cerrando la Aplicación

Otro procedimiento habitual cuando se manipula programas desde aplicaciones


externas, es cerrar el programa mediante código, para el objeto del tipo Sap2000
la forma correcta de terminar la aplicación es con las órdenes adecuadas como se
muestra.

1 private void c m d C l o s e s a p 2 0 0 0 C l i c k ( object s e n d e r , EventArgs e )


2 {
3 // debe e x i s t i r un a r c h i v o sap2000 en e j e c u c i ó n
4 Sap2000 . SapObject SapObjeto = new Sap2000 . SapObject ( ) ;
5 // c i e r r a l a a p l i c a c i ó n
6 SapObjeto . A p p l i c a t i o n E x i t ( f a l s e ) ;
7 // d e j a s i n c o n t e n i d o a l e s p a c i o modelo
8 SapObjeto . SapModel = null ;
9 // d e j a s i n c o n t e n i d o a l o b j e t o c r e a d o
10 SapObjeto = null ;
11 }

3.6.7. La función mágica

Finalmente, el programa debe ser capaz de decidir adecuadamente una u otra


alternativa, según sea el caso, el programa siguiente cumple esta función.

1 private void cmdEvaluarSap2000 Click ( object s e n d e r , EventArgs e )


2 {
3 /∗ Este e s e l módulo mágico , e n c a r g a d o de a v e r i g u a r e l e s t a d o
4 a c t u a l de Sap2000 en l a máquina ∗/
5
6 // c r e a y a s i g n a e l o b j e t o Sap2000
7 Sap2000 . SapObject SapObjeto = new Sap2000 . SapObject ( ) ;
8 bool D i a n o s t i c o ;
9 string mensaje ;
10 // s i un a r c h i v o s e e j e c u t a e s t á v i s i b l e
11 D i a n o s t i c o = SapObjeto . v i s i b l e ( ) ;
12 i f ( Dianostico )
13 {
14 // mensaje = ” e s t r u e : e s t á v i s i b l e en l a p a n t a l l a ” ;
15 mensaje = ”No s e e j e c u t a Sap2000 ” ;
16 }
17 else
18 {
19 // mensaje = ” e s f a l s e : no e s t á v i s i b l e en l a p a n t a l l a ” ;
20 mensaje = ” Se e j e c u t a Sap2000 ” ;
21 }
22 MessageBox . Show ( mensaje , ”API Sap2000 ” , MessageBoxButtons .OK) ;
23 }

29
Parte III

Materiales y métodos

30
Capı́tulo 4

Análisis se Sólidos Axisimétricos


con el método de los elementos
finitos

4.1. Generalidades

El presenta capı́tulo trata sobre el análisis de estructuras mediante el Método de


los Elementos Finitos, en su formulación para estructuras con total simetrı́a respecto
a un eje del sistema de referencia, los cuales pueden ser modelados en el plano de
su sección caracterı́stica de revolución.
Para entender el presente capı́tulo es necesario tener un conocimiento suficiente
del método de los elementos finitos 1 , ya que los términos utilizados y su programa-
ción de una plantilla en MathCad 14 con la finalidad de justificar los resultados de
Sap2000 se realiza directamente. Para la justificación de los resultados de Sap2000
se aprovechará la capacidad de manipulación simbólica y numérica del programa
MathCad 14 2 . La teorı́a será explicado detalladamente junto a su programación a
1
La teorı́a del Método de los Elementos Finitos se encuentra en cualquiera de los libros de la
referencia [8], [12], [5], [4], la historia de su evolución narrada de una manera magnı́fica se encuentra
en la referencia [6]
2
mathcad 14 es un programa orientado para realizar informes técnicos detallados, sus funciones
y la manera de utilizarlo se encuentra en las referencias [24], [25], [26]

31
la vez que se desarrolla un ejemplo de aplicación; por ser ésta la manera natural de
proceder en un documento de MathCad 14.

4.1.1. Sap2000

Es un programa de cómputo desarrollado por la compañı́a Computers and Struc-


tures, Inc que puede ser aplicada en el análisis de estructuras de todo propósito.

4.1.1.1. Método de análisis

En en proceso de análisis de estructuras Sap2000 utiliza el método de los ele-


mentos finitos.

4.1.1.2. Método de elementos finitos

El método de los elementos finitos es uno de los procedimientos que existen pa-
ra aproximar el comportamiento de una estructura con infinitos grados de libertad
por el de otra, con aproximadamente las mismas propiedades fı́sicas y geométricas,
pero con un número finito de grados de libertad, cuyas ecuaciones de equilibrio pue-
des expresarse por un sistema algebraico de ecuaciones simultáneas con un número
limitado de incógnitas3

Figura 4.1: Vista en planta techo en forma de cono con abertura

3
Referencia [7] página 03).

32
4.1.2. Estructuras de simetrı́a axial

Las estructuras de revolución representan un alto porcentaje en las estructuras


de uso común en ingenierı́a, entre ellos se puede mencionar: Los depósitos para agua,
torres de enfriamiento, muros cilı́ndricos, silos, cúpulas, vasijas de presión, techos de
edificaciones especiales(referencia [4] página 244), etc.

4.1.2.1. Estructura a analizar

Para justificar los resultados de Sap2000 en la presente tesis se analizará un


modelo alternativo del techo en forma de cono con abertura figuras.(4.1 y 4.2 ), del
auditorio de la Facultad de Ciencia de la Educación de la Universidad Nacional San
Cristóbal de Huamanga, cuyo diámetro de la base del cono es D1 = 16m, Altura
H = 1.96m, diámetro de la abertura D2 = 2m.

Figura 4.2: Vista en elevación techo en forma de cono con abertura

4.1.2.2. Modelo de la estructura

Es posible modelar la estructura con distintas formulaciones del Método de los


Elementos Finitos, una manera es considerando la formulación como Sólido de Re-
volución 4 debido a que la estructura es simétrico respecto al eje z del sistema de
referencia figura(4.2), en la cual se elige una sección caracterı́stica de revolución tal
como muestra la figura fig.(4.3 ), para esta sección será necesario girar Arc = 360o
grados sexagesimales para formar la estructura entera. definido la sección carac-
terı́stica de revolución se le asignará todas las condiciones a las que se encuentra
sometido la estructura completa figura(4.4) y se analizará sobre esta sección plana.
4
El tema se encuentra en los libros de la referencia [8] capı́tulo 6, [4] capı́tulo 6, [5] capı́tulo 4,
[11] capı́tulo 12, [7] capı́tulo 7, [9] capı́tulo 5, [12] capı́tulo 6

33
4.2. Implementación de Funciones en MathCad

Para el análisis de sólidos axisimétricos

Seguidamente se programará para el análisis de estructuras modeladas como


Sólidos de Revolución mediante el Método de los Elementos Finitos 5 . Solamente se
escriben las ecuaciones fundamentales necesarios para su programación, las ecuacio-
nes detalladamente desarrolladas, se puede encontrar en los libros de la referencia.

4.2.1. Pre-procesador

El usuario es el encargado de ordenar adecuadamente los argumentos, luego de


definir el sistema de referencia global debe iniciar discretizando el dominio completo
5
La receta del Método de los Elementos Finitos para su programación se encuentra en la refe-
rencia [6] en el capı́tulo 4, [9] capı́tulo 1, las referencias [16], [17],[15], [14] tratan exclusivamente
de la programación del Método de los Elementos Finitos

Figura 4.3: Modelo de la sección caracterı́stica de revolución

Figura 4.4: Sección caracterı́stica de revolución

34
con elementos rectangulares de cuatro nudos figura(4.5) y ordenar los argumentos
de acuerdo a lo establecido para las coordenadas de los nudos en la página(35), iden-
tificación de elementos página(35), asignación de propiedades página(36), soportes
página(37) y las cargas en la página(37).

Figura 4.5: Identificación de nudos y elementos

4.2.1.1. Nudos

Identificar las coordenadas de todos los nudos en la estructura figura(4.5), las


coordenadas deben ser establecidos en el sistema global, todos los nudos forman un
arreglo numérico con nombre NODE cuadro(4.1), cada fila identifica completamente
un nudo y cada columna representa.

columna 1: número identificador del nudo

columna 2: coordenada radial

columna 3: coordenada axial

4.2.1.2. Elementos

Cada elemento debe quedar completamente identificado por sus cuatro nudos
figura(4.5), todos los elementos están organizados en un arreglo numérico de nombre
MEMB cuadro(4.2), cada fila identifica plenamente a un elemento en el sistema, cada
columna representa.

35
columna 1: número identificador del elemento

columna 2: nudo global correspondiente al nudo local uno.

columna 3: nudo global correspondiente al nudo local dos.

columna 4: nudo global correspondiente al nudo local tres

columna 5: nudo global correspondiente al nudo local cuatro.

4.2.1.3. Propiedades

Para el análisis se considera que todos los elementos tienen las mismas propie-
dades, para los sólidos de revolución son requeridos.

E = 2.1 · 109 , módulo de elasticidad del material en Kg/m2

ν = 0.3, coeficiente de poisson

t = 2π, espesor del sólido de revolución, expresado en radianes

Nudo Coordenada radial(m) Coordenada axial(m)


1 8.0 0
2 8.0 0.15
3 4.0 1.12
4 4.0 1.27
5 2.0 1.68
6 2.0 1.83
7 1.0 1.96
8 1.0 2.11

Cuadro 4.1: Identificación de nudos

Elemento nudo1 nudo2 nudo3 nudo4


1 3 1 2 4
2 5 3 4 6
3 7 5 6 8

Cuadro 4.2: Identificación de los elementos

36
4.2.1.4. Soportes

Es necesario especificar las condiciones de contorno, para especificar los apoyos de


la estructura se estable un acuerdo: 0 para los grados de libertad libres de movimiento
y 1 para los grados de libertad restringido. Los apoyos se organizan en un arreglo
numérico con nombre SUPP cuadro(4.3), donde.

columna 1: número identificador del soporte.

columna 2: número del nudo con soportes.

columna 3: identificador del grado de libertad en la dirección radial, 0 si el


grado de libertad es libre y 1 si está restringido.

Columna 4: lo mismo que la columna tres, pero para la dirección axial.

Soporte nudo ru ? zu ?
1 1 1 1
2 2 1 1

Cuadro 4.3: Identificación de soportes

4.2.1.5. Cargas

Es requerido las cargas equivalentes en los nudos de la estructura, debe estar


organizado en un arreglo numérico de nombre NLF cuadro(4.4), cada fila define
cargas en un nudo y cada columna representa.

columna 1: número identificador de la carga

columna 2: número del nudo cargado

columna 3: componente radial de la carga

columna 4: componente axial de la carga

37
4.2.2. Procesador

Con la finalidad de obtener el proceso de cálculo detallado, se crean funciones en


MathCad 14 [24] que hacen uso intensivo de los argumentos ordenados en la etapa
de pre proceso página(34).

4.2.2.1. Funciones generales

Esta sección contiene las funciones generales que participan en todo el proceso.

4.2.2.1.1. Coordenadas de nudos La función RZ(m) figura(4.6) obtiene las


coordenadas de todos los nudos para el elemento m, es posible obtener cada una
de las coordenadas, con ri (m) las coordenadas radiales y con zi (m) las coordenadas
axiales, teniendo i = 1 . . . 4
Evaluando las funciones para el elemento m = 1 se obtiene su coordenadas
radiales r1 (1) = 1, r2 (1) = 2, r3 (1) = 2, r4 (1) = 1 y sus coordenadas axiales
z1 (1) = 1.96, z2 (1) = 1.68, z3 (1) = 1.83, z4 (1) = 2.11.

4.2.2.1.2. Matriz de propiedades Según [8] la matriz de propiedades para


sólidos de revolución está representado mediante la ecuación(4.1), donde E es el
módulo de elasticidad del material y ν es el coeficiente de Poisson.

Carga Nudo Fr (Kgf ) Fz (Kgf )


1 8 0 -1570.00
2 6 0 -7873.00
3 4 0 -31415.00
4 2 0 -50265.00

Cuadro 4.4: Cargas en nudos

38
 
ν ν
 1 1−ν
0 1−ν 
 
E(1 − ν)  ν 1 0 ν 
 1−ν 1−ν 
D= (4.1)
(1 + ν)(1 − 2ν)  0
 
1−2ν
 0 2(1−ν)
0 

 
ν ν
1−ν 1−ν
0 1
Evaluando las propiedades para los argumentos establecidos, se tiene:

 
2.879 1.212 0 1.212
 
1.212 2.827 0 1.212
D = 109 
 

 0 0 80.77 0 
 
 
1.212 1.212 0 2.827

4.2.2.1.3. Grados de libertad Otra de las funciones fundamentales y muy


general es GDL(m), que tiene por función obtener los grados de libertad asociados
a los nudos de cada elemento figura(4.7), la función recibe como argumento un
número identificador de cualquier elemento, luego establece los cuatro nudos desde
la matriz M EM B y con esto los grados de libertad para cada nudo. Para un nudo

Figura 4.6: Función para obtener coordenadas

39
n, el grado de libertad en la dirección radial es 2n − 1 y en la dirección axial 2n.

Figura 4.7: Función para obtener gdl

Evaluando la función para el elemento m = 1 se obtiene los grados de libertad


asociados a los nudos del elemento. Para dos grados de libertad por nudo en total
se tienen 16 grados de libertad en toda la estructura.

 
GDL(1) = 13 14 9 10 11 12 15 16

4.2.2.2. Funciones para obtener la matriz de rigidez del elemento

Las funciones siguientes son para obtener la matriz de rigidez de cualquier ele-
mento.

4.2.2.2.1. Funciones de forma Las funciones de forma 6 en el sistema norma-


lizado, para elementos cuadriláteros de cuatro nodos está dado por.
6
según [2] página 142, [3] página 151, [1] página 193, [6] página 40, [8] página 211, [17] página
268, [4] página 219, [5] página 127

40
1
N1 (ξ, η) = (1 − ξ)(1 − η)
4
1
N2 (ξ, η) = (1 + ξ)(1 − η)
4 (4.2)
1
N3 (ξ, η) = (1 + ξ)(1 + η)
4
1
N4 (ξ, η) = (1 − ξ)(1 + η)
4
Las funciones Ni (ξ, η) con i = 1 . . . 4 dependen únicamente de ξ y η que son las
coordenadas normalizadas.

4.2.2.2.2. Coordenadas Las coordenadas radial r y circunferencial z son ex-


presados [4] en función de las ecuaciones(4.2) y las coordenadas de los nudos en el
sistema global, mediante.

r(m, ξ, η) = N1 (ξ, η)r1 (m) + N2 (ξ, η)r2 (m) + N3 (ξ, η)r3 (m) + N4 (ξ, η)r4 (m)
(4.3)
z(m, ξ, η) = N1 (ξ, η)z1 (m) + N2 (ξ, η)z2 (m) + N3 (ξ, η)z3 (m) + N4 (ξ, η)z4 (m)

4.2.2.2.3. Desplazamientos Los desplazamientos [8] en el interior del elemen-


to, son dependientes de las funciones de forma ecuaciones(4.2) y los desplazamientos
de los nudos y está expresado mediante.

µ = N1 q1 + N2 q3 + N3 q5 + N4 q7
(4.4)
υ = N1 q2 + N2 q4 + N3 q6 + N4 q8

4.2.2.2.4. Matriz Jacobiana La matriz jacobiana ecuación(4.5), que represen-


ta el cambio de coordenadas, depende de las derivadas parciales de las coordenadas
globales expresadas en función del sistema normalizado. No es necesario desarrollar
las derivadas parciales de la función jacobiano, se confiará todo el proceso matemáti-
co a MathCad 14 [26], limitándonos a la formulación matemática en su forma básica.
De igual manera que en las anteriores funciones la función J(m, ξ, η) depende del
elemento y las coordenadas normalizadas.

41
 
∂r(m,ξ,η) ∂z(m,ξ,η)
J(m, ξ, η) =  ∂ξ ∂ξ  (4.5)
∂r(m,ξ,η) ∂z(m,ξ,η)
∂η ∂η

4.2.2.2.5. Matriz deformación unitaria - Desplazamiento Las deformacio-


nes unitarias [5] [4] para elementos estructurales modelados como sólidos de revolu-
ción, está dado por ecuación(4.6), donde r es la deformación normal en la dirección
radial, z es la deformación normal en la dirección axial, γrz deformación tangencial
en el plano rz y θ es la deformación normal en la dirección circunferencial.

 T
= r z γrz θ (4.6)

la relación[5] entre las deformaciones unitarias  y los desplazamientos u está dado


mediante

 T
= ∂µ ∂υ ∂µ ∂υ µ (4.7)
∂r ∂z ∂z
+ ∂r r

La matriz deformación unitaria - desplazamiento[8] o simplemente matriz de-


formación unitaria[4] ecuación(4.8) depende de la inversa de la matriz jacobiana y
las derivadas parciales de los desplazamientos expresados en el sistema normalizado,
para cada elemento en cada dirección.

 
∂z ∂Ni ∂z ∂Ni
 −
∂η ∂ξ ∂ξ ∂η
0 
 
∂r ∂N ∂r ∂N
1  0 − ∂η ∂ξi + ∂ξ ∂ηi 
B= (4.8)
 
|J| − ∂r ∂Ni + ∂r ∂Ni ∂z ∂Ni − ∂z ∂Ni 
 
 ∂η ∂ξ ∂ξ ∂η ∂η ∂ξ ∂ξ ∂η 
 
Ni
r
|J| 0
La matriz B(m, ξ, η) ecuación(4.8), se divide en cuatro sub matrices correspon-
diente a los cuatro nudos con B1 (m, ξ, η) que se corresponde con el nudo uno,
B2 (m, ξ, η) con el nudo dos, B3 (m, ξ, η) con el nudo tres y B4 (m, ξ, η) con el nu-
do cuatro. Las funciones siguientes se escriben como Bi que son iguales a Bi (m, ξ, η)
con i = 1 . . . 4, por comodidad.

42
 
∂z(m,ξ,η) ∂N1 (ξ,η) ∂z(m,ξ,η) ∂N1 (ξ,η)
 ∂η ∂ξ
− ∂ξ ∂η
0 
 ∂r(m,ξ,η) ∂N1 (ξ,η)

∂r(m,ξ,η) ∂N1 (ξ,η) 
 0 − ∂η ∂ξ
+ ∂ξ ∂η
B1 = 
 

− ∂r(m,ξ,η) ∂N1 (ξ,η) + ∂r(m,ξ,η) ∂N1 (ξ,η) ∂z(m,ξ,η) ∂N1 (ξ,η) − ∂z(m,ξ,η) ∂N1 (ξ,η) 
 ∂η ∂ξ ∂ξ ∂η ∂η ∂ξ ∂ξ ∂η 
 
N1 (ξ,η)
r(m,ξ,η)
|J(m, ξ, η)| 0

 
∂z(m,ξ,η) ∂N2 (ξ,η) ∂z(m,ξ,η) ∂N2 (ξ,η)
 ∂η ∂ξ
− ∂ξ ∂η
0 
 ∂r(m,ξ,η) ∂N2 (ξ,η)

∂r(m,ξ,η) ∂N2 (ξ,η) 
 0 − ∂η ∂ξ
+ ∂ξ ∂η
B2 = 
 

− ∂r(m,ξ,η) ∂N2 (ξ,η) + ∂r(m,ξ,η) ∂N2 (ξ,η) ∂z(m,ξ,η) ∂N2 (ξ,η) − ∂z(m,ξ,η) ∂N2 (ξ,η) 
 ∂η ∂ξ ∂ξ ∂η ∂η ∂ξ ∂ξ ∂η 
 
N2 (ξ,η)
r(m,ξ,η)
|J(m, ξ, η)| 0

 
∂z(m,ξ,η) ∂N3 (ξ,η) ∂z(m,ξ,η) ∂N3 (ξ,η)
 ∂η ∂ξ
− ∂ξ ∂η
0 
 ∂r(m,ξ,η) ∂N3 (ξ,η)

∂r(m,ξ,η) ∂N3 (ξ,η) 
 0 − ∂η ∂ξ
+ ∂ξ ∂η
B3 = 
 

− ∂r(m,ξ,η) ∂N3 (ξ,η) + ∂r(m,ξ,η) ∂N3 (ξ,η) ∂z(m,ξ,η) ∂N3 (ξ,η) − ∂z(m,ξ,η) ∂N3 (ξ,η) 
 ∂η ∂ξ ∂ξ ∂η ∂η ∂ξ ∂ξ ∂η 
 
N3 (ξ,η)
r(m,ξ,η)
|J(m, ξ, η)| 0

 
∂z(m,ξ,η) ∂N4 (ξ,η) ∂z(m,ξ,η) ∂N4 (ξ,η)
 ∂η ∂ξ
− ∂ξ ∂η
0 
 ∂r(m,ξ,η) ∂N (ξ,η) ∂r(m,ξ,η) ∂N (ξ,η)

 0 − ∂η
4
∂ξ
+ ∂ξ
4
∂η

B4 = 
 

− ∂r(m,ξ,η) ∂N4 (ξ,η) + ∂r(m,ξ,η) ∂N4 (ξ,η) ∂z(m,ξ,η) ∂N4 (ξ,η) − ∂z(m,ξ,η) ∂N4 (ξ,η) 
 ∂η ∂ξ ∂ξ ∂η ∂η ∂ξ ∂ξ ∂η 
 
N4 (ξ,η)
r(m,ξ,η)
|J(m, ξ, η)| 0

Expresando todas las submatrices en una sola, se obtiene la matriz de deforma-


ción unitaria desplazamiento ecuación(4.8) B(m, ξ, η)

1 h i
B(m, ξ, η) = B (m, ξ, η) B2 (m, ξ, η) B3 (m, ξ, η) B4 (m, ξ, η)
|J(m, ξ, η)| 1

Donde, |J(m, ξ, η)| es el jacobiano, determinante de la matriz jacobiana ecua-


ción(4.5).

4.2.2.2.6. Matriz de rigidez del elemento Haciendo uso de las expresiones


anteriores, la matriz de rigidez [4] puede escribirse como

43
Z 1 Z 1
k(m) = t B(m, ξ, η)T DB(m, ξ, η)r(m, ξ, η)|J(m, ξ, η)|dξdη (4.9)
−1 −1

Evaluando en su forma explı́cita incluso MathCad 14 encuentra pesado a esta


ecuación, demorando mucho tiempo en encontrar la solución, por esta razón se eva-
luará numéricamente cada uno de los elementos mediante la cuadratura de Gauss[8],
para lo cual se toma dos puntos por cada dirección sobre el dominio normalizado,
los llamados puntos de Gauss, se evalúa la matriz k(m) para los cuatro puntos
considerados, siendo la matriz de rigidez del elemento la sumatoria de las matrices
parciales.
Con la finalidad de evaluar numéricamente la matriz de rigidez ecuación(4.9), se
define k1 (m, ξ, η) como.

k1 (m, ξ, η) = B(m, ξ, η)T DB(m, ξ, η)r(m, ξ, η)|J(m, ξ, η)|

Los puntos de Gauss, ξξ en la dirección radial, ηη en la dirección axial y los


pesos asociados a cada punto, ωr en la dirección radial y ωz en la dirección axial.
Por comodidad se representan en vectores de cuatro elementos, bien no podrı́a con-
siderarse los pesos para cada dirección, ya que coincidentemente para un elemento
cuadrilátero de cuatro nodos el factor peso es la unidad.

       
1 1
− 3  − 3  1 1
√ √
       
 √1  − √1  1 1
ξξ =  3  ηη =  3  ωr =   ωz =  
       
 √1   √1  1 1
 3   3     
       
1 √1
− 3

3
1 1
Finalmente, la matriz de rigidez para un elemento m está dado por.

4
X
k(m) = t k1 (m, ξξi , ηηi )
i=1

Evaluando la función para el elemento m = 1 se obtiene el resultado siempre una


matriz cuadrada y simétrica de orden 8. Se procede de la misma manera para todos
los elementos.

44
 
 0.218 
 
 0.128 0.518 Simétrico 
 
 
 0.096 0.049 0.222 
 
 
0.068 0.222 0.073 0.698
 

11 

k(m) = 10  

−0.151 0.073 −0.242 −0.161 0.319 
 
 
−0.101 −0.242 −0.115 −0.704 0.204 0.722 
 
 
−0.174 −0.115 −0.077 −0.017 0.095 0.051 0.166 
 
 
−0.094 −0.503 −0.006 −0.289 0.070 0.298 0.069 0.499

4.2.2.3. Función matriz de rigidez ensamblado

La función K figura(4.8) es el encargado de ensamblar la matriz de rigidez de


la estructura completa, esta función hace uso de las funciones establecidas anterior-
mente, obtiene la matriz de rigidez para cada elemento con la función k(m) y para
ensamblarlo en la matriz general llama a la función de los grados de libertad pági-
na(39), esto simplifica enormemente el código, como puede ver la manera compacta
de la función K figura(4.8). La función K devuelve siempre una matriz cuadrada de
orden 2n, siendo n en número de nudos de la estructura.
Para la estructura analizada se obtiene una matriz cuadrada y simétrica de orden
igual a 16 y es.

 
 3.849 
 
 1.948 11.256 Simétrico 
 
 
−4.015 −2.303 4.237 
 
 
−2.117 −11.298 2.473 11.357
 

 
k(m) = 1011  1.715 0.981 −1.880 −1.116
 
3.918 
 
 
 0.905
 4.844 −1.159 −4.887 2.119 10.918 

 
−1.582 −0.778 1.710 0.913 −3.865 −2.195 3.904 
 
 
−0.736 −4.802 0.99 4.834 −2.068 −10.892 2.144 · · ·
 
.. .. .. .. .. .. .. ..
 
. . . . . . . .

45
4.2.2.4. Función vector de fuerzas nodales equivalentes

La función F figura(4.9) ensambla las cargas en un vector columna, ordena de


acuerdo a los grados de libertad desde el cuadro(4.4), este vector es de orden 2n,
siendo n el número de nudos de la estructura discretizada.
El vector de cargas nodales equivalentes para la estructura es:

 
F = 0 0 0 −5.027 ∗ 104 0 0 0 3.142 ∗ 104 0 · · ·

Figura 4.8: Función para obtener K

Figura 4.9: Función para obtener F

46
4.2.2.5. Función desplazamientos en nudos

Teniendo el vector de fuerzas equivalentes F figura(4.9) y la matriz de rigidez


K figura(4.8) ensamblado de la estructura, sólo falta establecer las condiciones de
contorno para obtener los desplazamientos en los nudos. La matriz de rigidez de
la estructura entera ha sido ensamblado sin tener en cuenta los grados de libertad
restringidos, en los nudos donde existe soporte es conocido los desplazamientos,
generalmente cero, entonces, en la matriz K se debe modificar los grados de libertad
para los cuales estos desplazamientos son conocidos, hay maneras de establecer estas
modificaciones, en la presente se hará uso del método de la penalización7 . La matriz
ası́ obtenido es Km cuya función se muestra en la figura(4.10). Para la estructura
analizada, la matriz modificado resulta.

 
307
1 ∗ 10 
 
 1.948
 1 ∗ 10307 Simétrico 

 
 −4.015
 −2.303 1 ∗ 10307 

 
 −2.117 −11.298 2.473 1 ∗ 10307
 

 
km =  1.715 −1.880 −1.116
 
0.981 3.918 
 
 
 0.905
 4.844 −1.159 −4.887 2.119 10.918 

 
 −1.582 −0.778 1.710 0.913 −3.865 −2.195 3.904 
 
 
 −0.736 −4.802 0.99 4.834 −2.068 −10.892 2.144 · · ·
 
.. .. .. .. .. .. .. ..
 
. . . . . . . .

Teniendo la matriz Km como los coeficientes de las incógnitas y el vector F el


término independientes del sistema de ecuaciones formado para cada grado de liber-
tad, para obtener los desplazamientos solamente se debe resolver estas ecuaciones,
MathCad 14 dispone de funciones que ayudan estos requerimientos.
La función Q figura(4.11) es para obtener los desplazamientos en los nudos,
rref (), rows() y augment() son funciones de MathCad 14. Luego, para ordenar los
resultados es necesario la función Qo figura(4.12) en la que cada fila representa un
7
que consiste en reemplazar la diagonal principal de la matriz de rigidez ensamblado, corres-
pondiente al grado de libertad restringido, por un número muy grande, según [8]

47
nudo y las columnas son.

columna 1: número del nudo

columna 2: desplazamiento radial

columna 3: desplazamiento axial

Para la estructura analizada, los desplazamientos para cada grado de libertad en


los nudos, en el sistema global, resulta cuadro(4.5), en cuyo cuadro la columna uno
representa el número que identifica al nudo, la columna dos los desplazamientos en
la dirección radial y la columna tres los desplazamientos en la dirección axial.

Figura 4.10: Función para obtener Km

Figura 4.11: Función para obtener desplazamientos

Figura 4.12: Función para ordenar desplazamientos

48
4.2.2.5.1. Comparación de resultados con sap2000 Los resultados mostra-
dos en el cuadro(4.5) son iguales a los obtenidos con un análisis mediante el programa
Sap2000 11.0.4 Educacional para cada grado de libertad considerado. Para el análi-
sis en Sap2000 11.0.4 8 se hizo uso del elemento Asdolid sin considerar los modos
incompatibles, discretizando el dominio completo(la sección caracterı́stica de revo-
lución) con elementos rectangulares de cuatro nudos, para las condiciones de carga
no se considera el peso propio de los elementos.

4.2.3. Post-procesador

4.2.3.1. Reacciones en los apoyos

Las reacciones en los apoyos está dado por R = KQ−F , donde K es la matriz de
rigidez de toda la estructura figura(4.8), Q son los desplazamientos figura(4.11) y F
es el vector de cargas equivalencies figura(4.9). Luego queda ordenar las reacciones
convenientemente figura(4.13).
Donde cada columna representa.

columna 1: número del nudo


8
Aparte de sus propios manuales para el usuario de sap2000, la referencia [10] es una excelente
guı́a

Nudo DespR(mm) DesplZ(mm)


1 0 0
2 0 0
3 0 -0.085892
4 0.000304 -0.085525
5 -0.004013 -0.147983
6 -0.007705 -0.14764
7 -0.011621 -0.1714
8 -0.016531 -0.170593

Cuadro 4.5: Desplazamientos en los nudos

49
columna 2: reacción en la dirección radial

columna 3: reacción en la dirección axial

El resultado para la estructura analizada se muestra el el cuadro(4.6), donde: La


columna uno representa el nudo con soporte, la columna dos representa la reacción
en la dirección radial y la columna tres representa la reacción en la dirección axial.

Nudo Reacr (kgf ) Reacz (kgf )


1 -793195.4 -191928.93
2 745963.55 283031.93

Cuadro 4.6: Reacciones en los soportes

4.2.3.1.1. Comparación de resultados con sap2000 Las reacciones en los


apoyos resultan iguales a los obtenidos con un análisis en Sap2000 11.0.0 Educacio-
nal, por tal razón no es necesario reproducir los resultados de Sap2000 11.0.0 en la
presente tesis, ya que el cuadro(4.6) lo representa completamente.

4.2.3.2. Tensiones

para obtener las tensiones en un punto interior del elemento m se requiere los
desplazamientos en los nudos del elemento, la función q(m) figura(4.14) obtiene los
desplazamientos de los nudos de cualquier elemento.

Figura 4.13: Función para ordenar reacciones

50
Figura 4.14: Función desplazamientos de un elemento

Las tensiones [8] para cualquier punto en el interior del elemento normalizado,
está dado por σ(m, ξ, η) = DB(m, ξ, η)q(m). Las tensiones son evaluados en los
Puntos de Gauss y luego extendidos a todo el elemento

51
Capı́tulo 5

Desarrollo del Programa


”esaSAP”

En el presente capı́tulo se crea una Extensión para el Análisis Automático de


1
Sólidos Axisimétricos en Sap2000(esaSAP) desde el lenguaje de programación
Microsoft Visual c#. Se hace uso intensivo de la Interfaz de Programación para
Aplicaciones de Sap2000 para el análisis automático de estructuras modeladas como
Sólidos de Revolución. El programa esaSAP dispones de opciones para ser extendido
en el análisis de todas las estructuras de revolución, en esta versión solamente se
programará para automatizar el análisis en Sap2000 de techos de edificaciones en
forma de cono, cualquier interesado puede copiar el código y aumentar las estructuras
de revolución que prefiere. El diagrama de flujo se muestra en la figura figura(5.1).

5.1. Organización para el programa

El procedimiento predefinido para el análisis mediante la Interfaz de Programa-


ción para Aplicaciones de Sap2000 estará implementado en un Clase de C# de
nombre SapApi-Asolid y conteniendo métodos para cada propósito con el fin de mo-
delar y analizar automáticamente la estructura de revolución. El diagrama de flujo
general se muestra en la figura(5.1).
1
esaSAP son las iniciales de Extension Solid Axisymmetric Analysis

52
Figura 5.1: Diagrama de Flujo general
53
5.2. Descripción de la clase SapApi-Asolid

El objeto que implementa la Interfaz de Programación para Aplicaciones de


Sap2000 es declarado de modo que sea visible para todos los métodos de la cla-
se. Los métodos creados en la clase SapApi-Asolid son los siguientes.

5.2.1. public void AbrirSap2000()

Por ser público es visible para todos los objetos que puedan crearse desde la clase
SapApi-Asolid, el método es general e inicializa un archivo Sap2000 configurando el
espacio modelo sin elementos. No devuelve ningún resultado ya que el tipo devuelto
es void.

5.2.2. void Refrescar()

Método que sirve para actualizar el espacio modelo de Sap2000, este método no
está visible desde los objetos que se crean a partir de la clase SapApi-Asolid, es
llamado por los métodos internamente.

5.2.3. public void Cerrar()

Método público cuya finalidad es destruir el objeto creado a partir de la clase


SapApi-Asolid.

5.2.4. public void DefinirPropiedad(double Pe,double e,

double u)

Como su nombre indica es para definir la propiedad del elemento de revolución de


nombre MyAsolid, antes crea un material de nombre MyMaterial cuyas propiedades
P e Peso especı́fico, e módulo de elasticidad y u coeficiente de Poisson es utilizado
en el análisis mediante el Método de los Elementos Finitos

54
5.2.5. public void ZUCS(double Z, double Tp, double S,

double U, double R, double Ti, double vT, double


Tf )

Define la aceleración pseudo espectral según el Reglamento Nacional de Edi-


ficaciones2 , requiere de argumentos: Z factor de zona, T p Periodo que define la
plataforma del espectro para cada tipo de suelo, S Factor del suelo, U Factor de uso
e importancia, R Coeficiente de reducción de solicitaciones sı́smicas, T i el tiempo
inicial, vT variación del tiempo y T f es el tiempo final.

5.2.6. public void DefinirCargas()

Método para definir los tipos de cargas, tipos de análisis y combinaciones de


carga, según el reglamento Nacional de Edificaciones[27].

5.2.7. public void MasaEstructura()

Define las cargas que serán considerados para obtener la masa de la estructura[27]
para el análisis por respuesta espectral.

5.2.8. public string ConoCompleto(double R1, double Al-

tura, double Espesor)

Método que dibuja la sección caracterı́stica de revolución de un cono completo


en el espacio modelo de Sap2000, requiere de argumentos R1 radio de la base del
cono, Altura total del cono y Espesor del cono. El método devuelve el nombre del
objeto área que dibuja.
2
Referencia [27] Tomo 2

55
5.2.9. public string ConoConAbertura(double R1,double

R2, double Altura, double Espesor)

Método que dibuja la sección caracterı́stica de revolución de un cono con abertura


en el espacio modelo de Sap2000, requiere de argumentos R1 radio de la base del
cono, R2 radio de la abertura del cono, Altura altura total del cono y Espesor del
cono. El método devuelve el nombre del objeto área que dibuja.

5.2.10. public void AsignarCargas(string MyArea, double


CargaMuerta, double CargaViva )

Éste es el encargado de asignar las cargas a la sección caracterı́stica de revolución


de la estructura modelada, requiere de argumentos M yArea que es el nombre del
área de la sección caracterı́stica de revolución, CargaM uerta es la carga muerta
actuando sobre la superficie superior del cono en kgf /m2 , CargaV iva la sobrecarga
en kgf /m2 .

5.2.11. public void Rectangulos4Nodos(string MyArea, int


NroDiv12,int NroDiv13)

Discretiza el dominio completo en subdominios rectangulares de cuatro nudos,


requiere de argumento M yArea que es el nombre de la superficie de revolución que se
dibujó en el espacio modelo de Sap2000, N roDiv12 un número entero que indica el
número de divisiones en la cara formado por los nudos locales uno y dos, N roDiv13
un número entero que indica el número de divisiones en la cara formado por los
nudos locales uno y tres.

5.2.12. public void AsignarSopotesEnBase(double R1, dou-

ble Espesor, int NroDiv12)

Asigna los grados de libertad restringidos en los nudos considerados en el modelo,


en la base de la estrctura, requiere como argumento R1 radio de la base del cono,

56
Espesor de la sección de revolución, N roDiv12 y el número de divisiones.

5.2.13. public void AsignarSoportesEnCentro(double R1,

double Altura, double Espesor, int NroDiv12)

Asigna los grados de libertad restringidos en los nudos considerados en el modelo,


requiere como argumento R1 radio de la base del cono, Espesor de la sección de
revolución, Altura de del cono, N roDiv12 y el número de divisiones. Este método
sólo actúa en modelos completos.

5.2.14. public void Analizar(string NombreArchivo)

Método que configura y ordena a sap2000 para iniciar con el ánlisis del modelo
creado, es necesario el nombre del archivo con extensión .SDB

5.2.15. Código fuente

el código fuente de la clase SapApi-Asolid se muestra en el ”Anexo A”.

5.3. Descripción del programa esaSAP

5.3.1. Generalidades

El programa esaSAP está preparado para ser implementado con todas las estruc-
turas que cumplen las condiciones para ser modeladas como sólidos de revolución,
el interesado no tiene más que copiar el código y añadir las estructuras que prefiera
automatizar el análisis en Sap2000.

5.3.2. Opciones de análisis

La ventana principal del programa esaSAP se muestra en la figura(5.2), pa-


ra mostrar las opciones de análisis en la forma de la estructura, se elige desde el
menú Herramientas/nuevo figura(5.3) y se encuentra con las siguientes opciones.

57
1. Cono Completo: para el análisis de un techo de edificación en forma de cono
sin abertura, su sección caracterı́stica de revolución sobre la cual se analiza
figura(5.4).

2. Cono con Abertura: para el análisis de un techo de edificación en forma de cono


con abertura, su sección caracterı́stica de revolución sobre la cual se analiza
figura(5.5).

Los argumentos generales para el análisis, que son comunes para todas las formas
de las estructuras se muestra en la figura(5.6)

Figura 5.2: Ventana principal de la aplicación esaSAP

Figura 5.3: Opciones de análisis esaSAP

58
Figura 5.4: Sección de revolución cono completo

Figura 5.5: Sección de revolución cono con abertura

Figura 5.6: Argumentos generales para el análisis

59
5.3.3. Controles utilizados

El programa está organizado en un Formulario Windows que es la base que


contiene a todos los controles comunes al entorno Visual Estudio.

5.3.4. Espacio de nombre

El espacio de nombre que contiene todo el código de la aplicación es el que lo


crea por defecto el entorno de desarrollo integrado, con nombre AsolidCono.

5.3.5. La clase AsolidCono

Cuando se crea el formulario para la ventana principal de la aplicación ésta


hereda de la clase form y además contiene todos los métodos que se crean para el
tratamiento adecuado del programa.

5.3.6. Descripción de métodos

Los método creados en la clase AsolidCono cumplen las funciones siguientes.

private static string Mensaje(int a) Método que devuelve una cadena depen-
diendo del argumento que se le brinde. Son los diferentes mensajes que el
programa muestra orientando al usuario, dependiendo de cada estado.

private static void MostrarMensaje(string texto) Muestra el mensaje defini-


do por el texto que se brinda de argumento.

private bool VerificarArgumentos() Método especializado en verificar la vera-


cidad de los argumentos, si algún dato está fuera de lo establecido muestra el
mensaje y termina el programa.

void Procedimiento() Método para analizar la estructura, según elección del


usuario.

Public AsolidCono() Método creado automáticamente por el editor.

60
5.3.7. Descripción de eventos

Un evento es la respuesta del programa a cualquier solicitación del usuario. Los


eventos para el programa actual están basados al hacer Click sobre uno de los ele-
mentos de menú, cada opción del menú responderá convenientemente a lo solicitado.
Los eventos considerados en la aplicación son las siguientes.

analizarEnSap20001104ToolStripMenuItem Al hacer un Click sobre el


menú Analizar en sap2000 11.0.4 el programa interactúa con Sap200.

cerrarSap20001104ToolStripMenuItem Cierra Sap2000, en términos de pro-


gramación deshecha el objeto que contiene a la aplicación Sap2000.

salirToolStripMenuItem Cierra la aplicación AsolidCono.

conoCompletoToolStripMenuItem Establece la opción de análisis para un


cono completo.

conoConAberturaToolStripMenuItem Establece las opciones de análisis pa-


ra un cono con abertura

5.3.8. Código fuente

El código fuente completo se muestra en el ”Anexo A”.

61
Parte IV

Resultados

62
Capı́tulo 6

Caso de estudio a un proyecto


local

6.1. Descripción del proyecto

La aplicación práctica en la presente Tesis es en la obra ”Construcción e Imple-


mentación del Pabellón de Aulas, SS.HH y Módulos Administrativos de la Facultad
de Ciencias de la Educación de la Universidad Nacional San Cristóbal de Huaman-
ga”, en cuya construcción me desempeñé en el cargo de Asistente de Obra.
En la Tesis se analiza especı́ficamente el Techo de la Aula Magna, que está cons-
truido de concreto armado y tiene la forma de un cono, para su análisis mediante el
Método de los Elementos Finitos se modela la estructura como un Sólido de Revolu-
ción debido a la total simetrı́a respecto al eje Z tanto en las cargas actuantes como
en la forma de la estructura. El análisis se realiza sobre un modelo de la sección ca-
racterı́stica de revolución y se asignan todas las condiciones a la que está sometido
la estructura entera.

6.2. Argumentos requeridos para el análisis

Los datos requeridos para el presente análisis están en base al Expediente Técnico
de la obra.

63
6.2.1. Dimensiones de la estructura

Los planos de planta, elevación y corte del auditorio se adjunta en el Apéndice


B, las dimensiones de la sección caracterı́stica de revolución para el techo en forma
de cono son:

Radio de la base, 8m.

Altura del techo, 2.25m

Espesor de la sección de revolución, 0.15m.

6.2.2. Material utilizado

Es el concreto armado, para el análisis se considera material homogéneo, con las


siguientes propiedades.

Peso especı́fico del concreto armado, 2400kgf /m3

Resistencia del concreto a la compresión, 210Kgf /cm2

Módulo de poisson del material, 0.3

6.2.3. Cargas

Según el Reglamento Nacional de Edificaciones[27] en la cual está basado el


Expediente Técnico de la obra, las cargas que actúan sobre el techo son.

Carga permanente, 200kgf /m2

carga viva, sobrecarga, 50kgf /m2

6.2.4. Parámetros para la función de aceleración pseudo es-


pectral

Para obtener la función, es necesario los siguientes argumentos.

Factor de zona(Z), 0.3

64
periodo que define la plataforma del espectro para cada tipo de suelo (T p), 0.6

Factor de suelo (S), 1.2

Factor de uso e importancia (U ), 1.3

Coeficiente de reducción de solicitaciones sı́smicas (R), 8.0

6.3. Modelo de la estructura

La estructura para su análisis mediante el método de los elementos finitos


será modelado como un sólido axisimétrico. Con la finalidad de documentar de
manera detallada, la estructura en planta se muestra en la figura(6.1) y la elevación
muestra la figura(6.2).

Figura 6.1: Vista en planta del techo en forma de cono

Figura 6.2: Vista en 3D del techo en forma de cono

Si se observa la figura(6.2) de la página(65) se nota claramente que la estructura


tiene una completa simetrı́a respecto al eje z del sistema de orientación global,

65
en la que el origen de las coordenadas está en el centro del plano formado por la
base de la estructura. Las cargas definidas en la sección(6.2.3) que actúan en la
dirección de la gravedad son también simétricos respecto al mismo eje, por lo tanto
la estructura cumple las condiciones para ser modelado y analizado como un sólido
axisimétrico. En este tipo de estructuras se analiza sobre sobre el plano formado
por la sección caracterı́stica de revolución; en la estructura analizada la sección de
revolución muestra la figura(6.3), sobre esta sección se asigna todas las solicitaciones
a la que está impuesto la estructura real figura(6.4). A esta sección será necesario
girar sobre el eje z 360 grados sexagesimales para obtener la estructura entera.

Figura 6.3: Sección de revolución de la estructura

Figura 6.4: Modelo de la estructura como sólido axisimétrico

6.4. Análisis de la estructura

Con la finalidad de mostrar la utilidad de la extensión creada, el análisis de esta


estructura fue propuesto a varios Ingenieros que tuvieron el interés de colaborar en
el desarrollo del presente trabajo, se les propuso dos alternativas.

66
1. Modelar y analizar la estructura en Sap2000 por sus propios medios.

2. Analizar la estructura con la extensión creada esaSAP

Las combinaciones de las cargas se consideran de acuerdo al Reglamento Nacional


de Edificaciones - E060 y el resumen de los resultados mostrados en los cuadros son
los producidos por la envolvente.

6.4.1. Resultados obtenidos sin utilizar esaSAP

Los resultados obtenidos para la estructura por parte de los Ingenieros mo-
delándolo y analizando con sus propios procedimientos en Sap2000 se resume en las
siguientes secciones.

6.4.1.1. Desplazamientos

Los desplazamientos máximos obtenidos por cada uno de los Ingenieros se mues-
tra en el cuadro(6.1), donde.

#n Representa el número de elementos en que es discretizado la sección carac-


terı́stica de revolución.

U1 Desplazamientos en la dirección radial, eje x en el modelo analizado en Sap2000.

U2 Desplazamiento en la dirección circunferencial, como se espera no existe despla-


zamientos en esta dirección, debido a que las cargas actúan completamente en
le plano formado por los ejes radial y axial.

U3 Desplazamientos en la dirección axial, eje z en le modelo analizado en Sap2000.

Debido a la geometrı́a y las cargas, los desplazamientos en los nudos considerados


de la estructura solamente existe en el plano que contiene a la sección de revolu-
ción(Plano x-z) en Sap2000, donde eje x define la dirección radial y el eje z define
la dirección axial y es también el eje de revolución de la estructura.

67
Ing Tiempo #n U1 U2 U3
(minutos) (mm) (mm) (mm)
Ing(1) 35 144 0.01822 0 0
-0.320927 0 -1.498442
Ing(2) 20 144 0.017773 0 0
-0.321212 0 -1.500051
Ing(3) 50 180 0.018319 0 0
-0.321201 0 -1.499782
Ing(4) 16 90 0.016784 0 0
-0.321066 0 -1.497454
Ing(5) 40 48 0.018565 0 0
-0.322285 0 -1.20125

Cuadro 6.1: Desplazamientos máximos en los nudos de la estructura sin utilizar la


extensión

6.4.1.2. Tensiones

Las tensiones máximos obtenidos por cada uno de los Ingenieros se muestra en
el cuadro(6.2), donde.

#n Representa el número de elementos en que es dividido, la estructura entera,


para su análisis.

S11 Tensión en la dirección radial para cada elemento, que coincide con el eje x del
modelo analizado en Sap2000.

S22 Tensión en la dirección circunferencial, perpendicular a la sección de revolución.

S33 Tensión en la dirección axial para cada elemento, que coincide con el eje z del
modelo analizado en Sap2000.

S12 Tensión tangencial actuando el el plano formado por el eje radial y el eje
circunferencial en la dirección radial; o tensión tangencia actuando en el plano
formado por los ejes axial y circunferencial en la dirección axial.

68
Ing Tiempo #n S11 S22 S33 S12
(minutos) (kgf /m2 ) (kgf /m2 ) (kgf /m2 ) (kgf /m2 )
Ing(1) 35 144 210088.2 56083.73 131617.9 37232.52
-269019 -94144.72 -108719.6 -83069.38
Ing(2) 20 144 216953.4 42378.14 131295.8 40209.00
-281035.7 -84471.42 -106275.1 -90422.93
Ing(3) 50 180 220095.1 58701.96 131414.2 38058.57
-271682.8 -94959.61 -109306.7 -85160.58
Ing(4) 16 90 186629.8 49485.5 132702.8 34645.77
-262627.7 -90954.99 -105687.6 -72901.46
Ing(5) 40 48 186131.6 14834.11 131693.8 42592.31
-294352.5 -40543.28 -100686.7 -91677.46

Cuadro 6.2: Tensiones máximos en elementos sin utilizar la extensión

6.4.1.3. Fuerzas

Las fuerzas máximos obtenidos por cada uno de los Ingenieros se muestra en el
cuadro(6.3), donde.

#n Número de elementos en es fue discretizado el dominio completo para su análi-


sis.

F1 Fuerza en la dirección axial que coincide con el eje x en el modelo de Sap2000


actuando en cada elemento.

F2 Fuerza en la dirección circunferencial.

F3 Fuerza en la dirección axial actuando en cada elemento.

6.4.2. Resultados obtenidos utilizando esaSAP

En esta sección, para el análisis se utilizará la extensión creada esaSAP con


la finalidad de automatizar el procedimiento en Sap2000 11.0.4. Debido a que el
tiempo de análisis se reduce en un 90 % al utilizar la extensión, en el modelamiento

69
Ing Tiempo #n F1 F2 F3
(minutos) (kgf ) (kgf ) (kgf )
Ing(1) 35 144 297274.7 0 596933.2
-297274.7 0 -129686.1
Ing(2) 20 144 400543.0 0 209366.7
-400543.0 0 -125272.2
Ing(3) 50 180 299733.5 0 220332.5
-299733.5 0 -107680.2
Ing(4) 16 90 281735.3 0 362330.2
-281735.3 0 -222215.0
Ing(5) 40 48 462005.0 0 219600.0
-535626.0 0 -155037.9

Cuadro 6.3: Fuerzas máximos en nudos de elementos sin utilizar la extensión

y el análisis de la estructura analizada, es posible obtener con facilidad resultados


para distintas discretizaciones de la sección de revolución de la estructura.

Figura 6.5: Dimensiones de la Sección de Revolución

La extensión esaSAP solamente crea el modelo de la estructura, es Sap2000 que


realiza todo el proceso de análisis, con la diferencia que todo lo ejecuta de mane-
ra automática, culminado el proceso de cálculo, se puede consultar los resultados

70
requeridos desde el propio entorno de Sap2000.
Los argumentos requeridos para el análisis son:

Los argumentos de la geometrı́a de la sección caracterı́stica de revolución de


la estructura, como muestra la figura(6.5), en la cual es necesario indicar el
número de elementos en que será discretizado el dominio completo para su
análisis en Sap2000 11.0.4

Las cargas a la que está sometido la estructura, el material utilizado con sus
propiedades y los parámetros para obtener la función de aceleración pseudo
espectral de acuerdo al reglamento nacional de edificaciones, figura(6.6).

Figura 6.6: Argumentos para esaSAP

6.4.2.1. Desplazamientos

Los desplazamientos obtenidos con la extensión esaSAP desde Sap2000 11.0.4


se muestra el cuadro(6.4) para distintas discretizaciones de la sección de revolución
de la estructura.

#n U1 U2 U3
(mm) (mm) (mm)
3x1 = 3 0 0 0
-0.195411 0 -1.324294
71
15x1 = 18 0.016806 0 0
-0.320859 0 -1.506002
48x2 = 96 0.018549 0 0
-0.321098 0 -1.498727
68x3 = 204 0.017703 0 0
-0.321163 0 -1.499838
158x3 = 474 0.01789 0 0
-0.321417 0 -1.500502
200x3 = 600 0.018018 0 0
-0.321432 0 -1.500617
220x3 = 660 0.017977 0 0
-0.321441 0 -1.500621
240x3 = 960 0.017906 0 0
-0.321405 0 -1.500582
300x4 = 1200 0.0179 0 0
-0.321439 0 -1.500667
330x4 = 1320 0.017898 0 0
-0.321448 0 -1.500709
360x4 = 1440 0.017899 0 0
-0.321454 0 -1.500702
Cuadro 6.4: Desplazamientos máximos en los nudos uti-
lizando la extensión

6.4.2.1.1. Desplazamientos en la dirección radial De los resultados que se


muestra en el cuadro(6.4) se observa que la variación de los desplazamientos máxi-
mos en la dirección radial converge rápidamente, basta dividir el dominio completo
con 204 elementos rectangulares de 4 nudos. Desde esta cantidad de elementos, los
desplazamientos en la dirección radial en los nudos considerados de la estructura
se mantiene constante cuando es analizado con discretizaciones mayores, la varia-

72
ción de los desplazamientos máximos en la dirección radial del sistema de referencia
global se muestra en la figura(6.7).

-0.15
3 253 503 753 1003 1253

-0.2

-0.25

-0.3

-0.35

Figura 6.7: Desplazamiento radial máximo en función de la discretización

6.4.2.1.2. Desplazamientos en la dirección axial Los desplazamientos en


la dirección axial figura(6.8), se comporta de manera similar a los desplazamientos
radiales.
-1.3
3 253 503 753 1003 1253

-1.35

-1.4

-1.45

-1.5

-1.55

Figura 6.8: Desplazamiento axial máximo en función de la discretización

6.4.2.2. Tensiones

Las tensiones obtenidos con la extensión esaSAP desde Sap2000 11.0.4 se mues-
tra el cuadro(6.5) para distintas discretizaciones de la sección de revolución de la
estructura.

73
#n S11 S22 S33 S12
(kgf /m2 ) (kgf /m2 ) (kgf /m2 ) (kgf /m2 )
3x1 = 3 27504.31 26624.36 168802.72 792.18
-126089.04 -30278.65 -33794.34 -30739.55
18x1 = 18 146712.92 15000.04 134216.86 31708.66
-257385.47 -35950.73 -89057.45 -79944
48x2 = 96 202451.16 39305.86 131613.64 38029.63
-269483.08 -82661.47 -105289.97 -85691.07
68x3 = 204 225465.29 60055.85 131326.33 38452.23
-276270.12 -95258.5 -109457.98 -85532.55
158x3 = 474 257272.71 67473.58 130894.12 42249.6
-288389.93 -95363.43 -108882.89 -88894.56
200x3 = 600 264519.35 69073.2 130825.27 42774.69
-290685.23 -95102.36 -108706.06 -87136.77
220x3 = 660 267207.38 69663.57 130800.39 42962.61
-290262.62 -94990.58 -108673.6 -86659.27
240x4 = 960 280668.26 82179.02 130805.69 44621.78
-287614.11 -99732.4 -109676.59 -86244.39
300x4 = 1200 291102.73 84595.92 130746.7 44800.37
-289695.21 -99417.96 -109793.03 -85445.57
330x4 = 1320 294012.49 85259.17 130732 44795.83
-288694.75 -99349.08 -109900.11 -85216
360x4 = 1440 296546.48 85833 130719 44765.02
-289070.94 -99298.16 -110024.39 -85274.09
Cuadro 6.5: Tensiones máximos en elementos utilizando
la extensión

6.4.2.2.1. Tensiones en la dirección radial De los resultados que se muestra


en el cuadro(6.5) se observa que la variación de los tensiones máximos en la direc-

74
ción radial converge lentamente, es necesario dividir el dominio completo con 1200
elementos rectangulares de 4 nudos. Desde esta cantidad de elementos, las tensiones
en la dirección radial en los elementos considerados de la estructura se mantiene
constante cuando es analizado con discretizaciones mayores, la variación de las ten-
siones máximas en la dirección radial del sistema de referencia local se muestra en
la figura(6.9).

350000

300000

250000

200000

150000

100000

50000

0
0 255 510 765 1020 1275

Figura 6.9: Tensión radial máximo en función de la discretización

6.4.2.2.2. Tensiones en la dirección circunferencial Para encontrar resul-


tados adecuados de las tensión circunferencial, es necesario la misma discretización
en la obtención de las tensiones radiales. La variación de la tensión circunferencial
en función de la cantidad de elementos se muestra en la figura(6.10).

110000

100000

90000

80000

70000

60000

50000

40000

30000

20000
0 200 400 600 800 1000 1200 1400

Figura 6.10: Tensión circunferencial máximo en función de la discretización

75
6.4.2.2.3. Tensiones en la dirección axial Para encontrar resultados ade-
cuados de las tensiones axiales, es necesario una discretización menor que para la
obtención de las tensiones radiales, para la estructura analizada basta con dividir
en 600 elementos. La variación de la tensión axial en función de la cantidad de
elementos se muestra en la figura(6.11).

180000

170000

160000

150000

140000

130000

120000
0 255 510 765 1020 1275

Figura 6.11: Tensión axial máximo en función de la discretización

6.4.2.2.4. Tensión tangencial Para encontrar resultados adecuados de las ten-


siones tangenciales, es necesario una discretización menor que para la obtención de
las tensiones radiales, para la estructura analizada basta con dividir en 600 elemen-
tos. La variación de la tensión tangencial en función de la cantidad de elementos se
muestra en la figura(6.12).

100000

90000

80000

70000

60000

50000

40000

30000

20000
0 200 400 600 800 1000 1200 1400

Figura 6.12: Tensión tangencial máximo en función de la discretización

76
Evaluando la variación de las tensiones:

Se observa para las tensiones en la dirección radial en figura(6.9) de la pági-


na(6.9), que la convergencia hasta el resultado aceptable está dado para dis-
cretizaciones mayores, tal es ası́ que a partir del análisis con 1200 elementos
los resultados ya no tienen tanta variación.

Para la tensión circunferencial, sucede lo mismo que para las tensiones radiales,
requiriendo discretizaciones muy finos para encontrar la solución adecuada,
figura(6.10)

En cambio, las tensiones axiales convergen rápidamente, como se muestra en


la figura(6.11); cuando se analiza con 600 elementos finitos los resultados ya
son adecuados. Lo mismo sucede con la tensión tangencial mostrada en la
figura(6.12)

6.4.2.3. Fuerzas

Las fuerzas obtenidos con la extensión esaSAP desde Sap2000 11.0.4 se mues-
tra el cuadro(6.6) para distintas discretizaciones de la sección de revolución de la
estructura.

#n F1 F2 F3
(kgf ) (kgf ) (kgf )
3x1 = 3 430946.01 0 615217.56
-550145.06 0 -428229.97
18x1 = 18 357426.61 0 274920.88
-534720.09 0 -110349.95
48x2 = 96 388851.41 0 261715.37
-388851.41 0 -122229.15
38x3 = 204 300085.74 0 203011.83
-300085.74 0 -96529.17
158x3 = 474 298722.51 0 132854.26
-298722.51 0 -88593.28

77
200x3 = 600 300454.29 0 123774.03
-300454.29 0 -90249.08
220x3 = 660 300329.81 0 120970.62
-300329.81 0 -90128.13
240x4 = 960 235455.16 0 107752.27
-235455.16 0 -71885.76
300x4 = 1200 235937.79 0 100008.18
-235937.79 0 -73315.91
330x4 = 1320 235562.95 0 98271.26
-235562.95 0 -73757.94
360x4 = 1440 235056.07 0 96891.13
-235056.07 0 -74135.75
Cuadro 6.6: Fuerzas máximos en nudos de elementos uti-
lizando la extensión

6.4.2.3.1. Fuerzas radiales De los resultados que se muestra en el cuadro(6.6)


se observa que la variación de los fuerzas máximas en la dirección radial converge len-
tamente, es necesario dividir el dominio completo con 1200 elementos rectangulares
de 4 nudos.

450000

400000

350000

300000

250000

200000
3 203 403 603 803 1003 1203 1403

Figura 6.13: Fuerza radial máximo en función de la discretización

78
Desde esta cantidad de elementos, las Fuerzas en la dirección radial en los nudos
considerados de la estructura se mantiene constante cuando es analizado con dis-
cretizaciones mayores, la variación de las fuerzas máximas en la dirección radial del
sistema de referencia local se muestra en la figura(6.13).

6.4.2.3.2. Fuerzas axiales Para encontrar resultados adecuados de las fuerzas


axiales, es necesario la misma discretización en la obtención de las fuerzas radiales.
La variación de las fuerzas axiales en función de la cantidad de elementos se muestra
en la figura(6.14).

600000

500000

400000

300000

200000

100000

0
3 208 413 618 823 1028 1233 1438

Figura 6.14: Fuerza axial máximo en función de la discretización

6.4.3. Comparación de resultados

Comparando los resultados obtenidos por ambas alternativas propuesto en la


sección(6.4) de la página(66), se observa que:

Los resultados obtenidos en la sección(6.4.1) de la página(67) por parte de las


personas que colaboraron en el análisis de la estructura, difiere mucho de los
resultados esperados. Estos resultados fueron obtenidos por sus propios medios
desde el Sap2000 11.0.4

En cambio, los resultados obtenidos por el mismo personal, utilizando la ex-


tensión creada ”esaSAP” mostrados desde la página(69) sı́ son los adecuados,

79
en los gráficos de la sección(6.4.2) se muestra claramente la convergencia de
los resultados.

Además, la extensión creada ”esaSAP” reduce el tiempo del modelamiento y


análisis de manera considerable, por esta razón es posible probar de manera au-
tomática el comportamiento de la estructura para distintas discretizaciones de la
sección caracterı́stica de revolución, eligiendo la respuesta conveniente.

6.5. Obtención de refuerzos

La obtención de refuerzos para la estructura, es solamente con fines ilustrativos,


ya que el principal objetivo de la tesis es crear una extensión para automatizar
procedimientos de modelamiento y análisis de estructuras, la cual ya está satisfecha.

6.5.1. Diseño por esfuerzo radial S11

Figura 6.15: Esfuerzo radial máximo en la zona inferior de la estructura

80
Se considera dos zonas. Zona inferior del techo en forma de cono, en la cual se
presentan los mayores esfuerzos debido a los efectos de borde(esfuerzos de tracción y
momentos flectores no considerados) figura(6.15). Para el diseño S11 = 296.546 Tmon
2 es

la tensión máxima, e = 0.15m es el espesor de la sección caracterı́stica de revolución


de la estructura, b = 1.00m se considera una longitud de un metro con fines de
simplificar el análisis, Fy = 4.2 Tcmon2 es el esfuerzo de fluencia del acero. La fuerza
está dado mediante T = S11 ∗ e ∗ b la cual evaluando resulta T = 44.481T on, el
T
acero en la sección analizada As = 0.9Fy
, evaluando As = 11.76cm2 ; el acero mı́nimo
está dado por Asmin = 0.0035 ∗ b ∗ h evaluando Asmin = 5.25cm2 , entonces se toma
00
1
de refuerzo As . Usar refuerzo de 2
a cada 20cm dos capas (10 ∗ 1.267 = 12.67cm2 ).

Figura 6.16: Esfuerzo radial máximo en la zona zona intermedia y superior

Zona intermedia y superior, en la cual los esfuerzos son de compresión pura, figu-
ra(6.16). La tensión máxima es S11 = 57.643 Tmon 2
2 , el acero requerido As = 5.25cm ,
00
1
usar refuerzo de 2
a cada 20cm una capa (5 ∗ 1.267 = 6.335cm2 ).

81
6.5.2. Diseño por esfuerzo Axial S33

En la zona inferior de la estructura figura(6.17). La tensión máxima es S33 =


00
114.645 Tmon 2
2 , el acero requerido As = 5.25cm , usar refuerzo de
1
2
a cada 30cm dos
capas (5 ∗ 1.267 = 6.335cm2 ).

Figura 6.17: Esfuerzo axial máximo en la zona inferior

De igual manera, para la parte central y superior el acero obtenido es el mı́nimo,


00
1
As = 5.25cm2 , se usará refuerzo de 2
a cada 30cm en una sola capa. La figura(6.18)
muestra la distribución de los refuerzos en la estructura.

6.6. Justificación de los resultados

En la presente tesis los resultados obtenidos mediante el programa Sap2000


11.0.4 se ha demostrado en el Capı́tulo 4 donde se presenta la justificación de forma
detallada, mediante una plantilla programado en MathCad 14 con el método de los
elementos finitos; en la cual, luego de analizar la estructura de revolución(estructura

82
de edificación en forma de cono con abertura) se ha llegado a los mismos resultados
obtenidos en un análisis con Sap2000.
La extensión ”esaSAP” 1 además de automatizar el modelamiento y análisis de
techos de edificaciones especiales que tienen la forma del cono, está implementado
también para automatizar los procedimientos de análisis de estructuras cónicas con
abertura.

Figura 6.18: Refuerzos obtenidos para la estructura

1
El nombre de la extensión proviene de las iniciales de ”Extension Solid axisymmetric analysis”

83
Parte V

Conclusiones

84
Capı́tulo 7

Conclusiones y recomendaciones

7.1. Conclusiones

7.1.1. De la metodologı́a

Se justifica detalladamente los resultados del programa Sap2000 11.0.4. Con


esta finalidad se programó una plantilla mediante el Método de los Elemen-
tos Finitos en MathCad 14 para el análisis de estructuras que cumplen las
condiciones para ser modeladas como Sólidos de Revolución, cuyos resultados
obtenidos de un análisis efectuado en Sap2000 11.0.4 y la plantilla creada en
MathCad 14 coinciden totalmente; éste es la justificación del uso apropiado
que se tiene del programa sap2000 11.0.4.

Con esta justificación, fue posible automatizar el proceso de análisis mediante


la Interface de Programación para Aplicaciones de Sap2000 desde el lengua-
je de programación Microsoft Visual c#, para estructuras que cumplen las
condiciones para ser modeladas como sólidos axisimétricos. En la extensión
esaSAP v1.2.0 solamente está disponible estructuras de techos de edificacio-
nes especiales que tienen la forma de cono ya sea completo o con abertura,
más estructuras de revolución se irá añadiendo en las próximas versiones.

En la presente tesis se ha logrado implementar un módulo para el análisis


automático en Sap2000 que por defecto no dispone de esta opción.

85
Se cumplió con todos los objetivos establecidos en el desarrollo de la presente
tesis.

7.1.2. De los resultados

Los resultados obtenidos mediante el Método de los Elementos Finitos son


aproximados, siendo el calculista el encargado de decidir sobre la respuesta
adecuada, y para esto, se debe tener el conocimiento suficiente sobre la meto-
dologı́a aplicada.

Para encontrar la respuesta adecuada se procede refinando la malla de los


elementos finitos iniciando con una división conservador, el procedimiento se
repite hasta que entre los resultados de un análisis anterior y la actual la
diferencia sea el que establezca, a su juicio, el calculista.

En el análisis de estructuras modeladas como Sólidos de Revolución el pri-


mer resultado en converger son los desplazamientos en los nudos considerados,
requiriendo divisiones muy finos para encontrar una convergencia a nivel de
esfuerzos.

7.1.3. Aplicaciones utilizados

El desarrollo de la presente Tesis no hubiera sido posible sin el adecuado uso de


las siguientes aplicaciones.

MathCad 14 Programa especializado para la elaboración de informes técnicos de-


tallados. El programa Mathcad en su versión 14 fue fundamental para el en-
tendimiento adecuado del Método de los Elementos Finitos, se aprovechó de
manera acertada para la documentación de los procedimiento del análisis y la
justificación de resultados de Sap2000 11.0.4.

Microsoft Visual Studio 2009 Express Edition Entorno de desarrollo integra-


do que hace fácil y ameno la creación de aplicaciones. Es desde este editor que
se programó esaSAP con el lenguaje de programación Microsoft Visual c#

86
enlazándolo con la Interface de Programación para Aplicaciones de Sap2000
para automatizar el procedimiento de análisis.

Sap2000 11.0.4 Programa para el análisis y diseño de estructuras, en la tesis no


sólo se utiliza Sap2000 en la manera común; se justifica el resultado de análisis
mediante el Método de los elementos Finitos y se automatiza los procedimien-
tos.

7.1.4. Lenguajes de programación

En el desarrollo de la Tesis fue necesario utilizar los siguientes lenguajes de


programación.

Microsoft Visual C# Lenguaje de programación completamente orientado a ob-


jetos, desde el cual se integró la Interface de Programación para Aplicaciones
de Sap2000.

MathCad 14 Programming Para el análisis mediante el Método de los Elemen-


tos Finitos de estructuras modeladas como Sólidos de Revolución con la fina-
lidad de justificar los resultados de Sap2000.

APISap2000 Si bien la Interface de Programación para Aplicaciones no es un


lenguaje de programación propiamente dicho, sino un conjuntos de métodos,
funciones, variables,etc contenidos bajo un nombre común, su aplicación fue
decisivo para automatizar el proceso de análisis en Sap2000 desde aplicaciones
externas.

7.2. Recomendaciones

Para utilizar un programa computacional en el Análisis de Estructuras es con-


veniente tener un conocimiento adecuado de las bases numéricas que se fundamenta
la aplicación, sólo ası́ se estará en la capacidad de interactuar correctamente con el
programa.

87
7.3. Desarrollos futuros

Con la presente Tesis los interesados en crear extensiones para Sap2000 desde
cualquier lenguaje de programación disponen de una documentación detalla-
da, además la extensión creada esaSAP v1.2.0 cuenta con opciones para ser
ampliada; el interesado no tiene más que añadir la estructura de revolución de
su preferencia.

Es posible implementar a la plantilla creada en MathCad 14 para el análisis de


estructuras con distintos elementos finitos y para todo propósito, con la finali-
dad de documentar los resultados y justificar el análisis de cualquier programa
que se fundamente en el Método de los Elementos Finitos.

88
Bibliografı́a

[1] David V. Hutton. Fundamentals of Finite Element Analysis. McGraw-Hill,


2004.

[2] G. R. Liu and S. S. Quek. The Finite Element Method, a Practical Course.
Butterworth-Heinemann, 2003.

[3] Singiresu R. Rao. The Finite Element Method in Engineering. Elsevier Science
- Tecnology Books, 2004.

[4] Eugenio Oñate Ibáñez de Navarra. Cálculo de Estrucuras por el Método de


Elementos Finitos. Centro Internacional de Métodos Numéricos en Ingenierı́a
- CIMNE, 1992.

[5] O. C. Zienkiewicz R. L. taylor. El Método de los Elementos Finitos en Inge-


nierı́a, Formulación Básica y Problemas Lineales, volume 1. Centro Interna-
cional de Métodos Numéricos en Ingenierı́a - CIMNE, cuarta edition, 1993.

[6] Francisco Beltrán. Teorı́a general del Método de los Elementos Finitos. Depar-
tamento de Mecánica Estructural y construcciones Industriales - ETS Ingenieros
Industriales Madrid, notas de clase, curso doctorado 1998-99 edition, 1999.

[7] Ansys-CivilFem. Introducción al Método de los Elementos Finitos, 2003.

[8] Tirupathi R. Chandrupatla ashok D. Belegundu. Introducción al estudio del


Elemento Finito en Ingenierı́a. Prentice Hall, 1999.

[9] Jorge Eduardo Hurtado. Introducción al análisis estructural por elementos


finitos. Universidad nacional de Colombia - Sede Manizales, 1992.

89
[10] Esteban Ortiz Bosmans. Modelamiento y Análisis de Estructuras en Sap2000
v10. Empresa editorial MACRO E.I.R.L, 2006.

[11] CSI Computers and Structures INC. CSI Analysis Reference manual For
Sap2000, Etabs, and Safe, June 2008.

[12] Robert D. Cook. Concepts and Applications of Finite Element Analysis. John
Wiley - Sons Inc., 1995.

[13] José Marı́a Fornons. El Método de los Elementos Finitos en la Ingenierı́a de


Estructuras. Universidad Politécnica de Barcelona, 1982.

[14] Young W. Kwan and Huochoong Bang. The Finite Element Method Using
MATLAB. CRC press LLC, 1997.

[15] I. M. Smith and D. V. Griffiths. Programming The Finite Element method.


Jhon Wiley - Sons Inc., 1988.

[16] Santiago Muelas Medrano. Curso Básico de Programación del Método de los
Elementos Finitos, Julio 1999.

[17] Peter I. Kattan. Matlab Guide to Finite Elements, An Interactive Approach.


Springer, 2002.

[18] Sergio Gallegos Cazares. Análisis de Sólidos y Estructural mediante el Método


de los Elementos Finitos. Limusa, 2008.

[19] Jason Beres Pierre Boutquin y Meeta gupta Jeff ferguson, Brian Patterson. La
biblia de c#. Anaya Multimedia, 2003.

[20] Francisco Charté Ojeda. Programación, Microsoft Visual C# .NET. Anaya


Multimedia, 2003.

[21] José Antonio González Seco. Programando en c#. 2002.

[22] Computers and Inc Structures. Sap2000 API Documentation, 2008.

90
[23] Fco. Javier Ceballos. El Lenguaje de Programación C#. Alfaomega Ra-Ma,
2002.

[24] Parametric Tecnology Corporation PTC. Manual de Usuario, mathcad 14.0.0.


Parametric Tecnology Corporation PTC, 2007.

[25] Metacontrol Ingenieros Ltda. mathsoft Capturing Imagination, 1998.

[26] MathSoft. Mathcad Reference Manual. MathSoft, 2001.

[27] Reglamento Nacional de Edificaciones. Institulo de la Construcción y Gerencia,


2006.

91
Parte VI

Anexos

92
Apéndice A

Código fuente ”esaSAP”

A.1. Código fuente clase SapApi-Asolid

1 class SapApi Asolid


2 {
3 // Implementa l a i n t e r f a z en un o b j e t o
4 SAP2000 . SapObject SapObjeto = new SAP2000 . SapObject ( ) ;
5 long r e t ;
6 public void AbrirSap2000 ( )
7 {
8 /∗
9 ∗ Método para i n i c i a l i z a r SAP2000 y c r e a r un modelo nuevo en
blanco
10 ∗ e s t e método e s g e n e r a l
11 ∗/
12 SapObjeto . A p p l i c a t i o n S t a r t ( SAP2000 . e U n i t s . kgf m C , true , ” ” ) ;
13 r e t = SapObjeto . SapModel . I n i t i a l i z e N e w M o d e l ( SAP2000 . e U n i t s .
kgf m C ) ;
14 r e t = SapObjeto . SapModel . F i l e . NewBlank ( ) ;
15 }
16
17 void R e f r e s c a r ( )
18 {
19 // a c t u a l i z a e l e s p a c i o modelo de SAP2000
20 bool Window = f a l s e ;
21 r e t = SapObjeto . SapModel . View . RefreshView ( 0 , r e f Window ) ;
22 // r e t = SapObjeto . SapModel . View . RefreshWindow ( 0 ) ;
23
24 }
25
26 public void C e r r a r ( )
27 {
28 // c i e r r a l a a p l i c a c i ó n
29 SapObjeto . A p p l i c a t i o n E x i t ( f a l s e ) ;
30 SapObjeto . SapModel = null ;
31 SapObjeto = null ;
32 }
33

93
34 public void D e f i n i r P r o p i e d a d ( double Pe , double e , double u )
35 {
36 /∗ Método para d e f i n i r una p r o p i e d a d en 2D t i p o A s o l i d
37 ∗ Argumentos :
38 ∗ name : nombre para l a p r o p i e d a d
39 ∗ Pe : p e s o e s p e cı́ f i d e l m a t e r i a l
40 ∗ e : módulo de e l a s t i c i d a d d e l m a t e r i a l [ k g f /m2 ]
41 ∗ u : c o e f i c i e n t e de p o i s s o n
42 ∗ a : c o e f i c i e n t e de e x p a n s i ó n té r m i c o
43 ∗ Temp :
44 ∗/
45 // c r e a e l m a t e r i a l
46 SAP2000 . eMatType M a t e r i a l = SAP2000 . eMatType .MATERIAL CONCRETE;
47 r e t = SapObjeto . SapModel . P r o p M a t e r i a l . S e t M a t e r i a l ( ” MyMaterial ” ,
M a t e r i a l , −1, ” ” , ” ” ) ;
48 // p e s o e s p e cı́ f i c o d e l c o n c r e t o
49 r e t = SapObjeto . SapModel . P r o p M a t e r i a l . SetWeightAndMass ( ”
MyMaterial ” , 1 , Pe , 0 ) ;
50
51 // d e f i n e p r o p i e d a d e s para m a t e r i a l i s ó t r o p o
52 r e t = SapObjeto . SapModel . P r o p M a t e r i a l . S e t M P I s o t r o p i c ( ”
MyMaterial ” , e , u , 9 . 9 0 0E−06 , 0 ) ;
53 // d e f i n e p r o p i e d a d de s ó l i d o a x i x y mé t r i c o
54 r e t = SapObjeto . SapModel . propArea . S e t A s o l i d ( ” MyAsolid ” , ”
MyMaterial ” , 0 , 3 6 0 , true , ” G l o b a l ” , −1, ” ” , ” ” ) ;
55
56 }
57
58 public void ZUCS( double Z , double Tp , double S , double U, double R,
double Ti , double vT , double Tf )
59 {
60 /∗ Método para d e f i n i r l a a c e l e r a c i ó n pseudo e s p e c t r a l con e l
r e g l a m e n t o peruano E030
61 ∗ Z : F a c t o r de zona
62 ∗ Tp : A c e l e r a c i ó n fundamental d e l s u e l o
63 ∗ S:
64 ∗ C : F a c t o r de a m p l i f i c a c i ó n sı́ s m i c a
65 ∗ U: C a t e g o rı́ a d e d i f i c a c i o n e s
66 ∗ R:
67 ∗/
68
69 double C, n , Sao ;
70 System . Array T ; System . Array Sa ;
71 // número de e l e m e n t o s d e l a r r e g l o
72 n = ( Tf − Ti ) / vT + 1 ;
73 // i n i c i a l i z a n d o l o s v e c t o r e s con n e l e m e n t o s
74 T = new double [ ( int ) n ] ; Sa = new double [ ( int ) n ] ;
75 // i n s e r t a e l e m e n t o s a l o s v e c t o r e s
76 f o r ( int i = 0 ; i <= Sa . Length − 1 ; i ++)
77 {
78 // tiempo
79 T . SetValue ( Ti , i ) ;
80 // c o e f i c i e n t e de a m p l i f i c a c i ó n sı́ s m i c a
81 C = 2 . 5 ∗ (Tp / Ti ) ;
82 i f (C > 2 . 5 )
83 {
84 C = 2.5;
85 }

94
86 // l a a c e l e r a c i ó n pseudo e s p e c t r a l Sa [ a d i m e n s i o n a l ]
87 Sao = Z ∗ U ∗ C ∗ S / R;
88 Sa . SetValue ( Sao , i ) ;
89 // aumenta e l tiempo
90 Ti = Ti + vT ;
91 }
92 // e x p o r t a a SAP2000
93 r e t = SapObjeto . SapModel . Func . FuncRS . S e t U s e r ( ”ZUCS” , T . Length ,
r e f T, r e f Sa , 0 . 0 5 ) ;
94
95 }
96

97 public void D e f i n i r C a r g a s ( )
98 {
99 /∗
100 ∗ Módulo g e n e r a l que d e f i n e c a r g a s
101 ∗/
102 // 1 : Load patern , d e f i n e t i p o s de c a r g a s
103 // r e t = SapObjeto . SapModel . LoadPatterns . Add( ” LIVE ” , SAP2000 .
eLoadPatternType . LTYPE LIVE , 0 , t r u e ) ;
104 r e t = SapObjeto . SapModel . LoadCases . Add( ”LIVE” , SAP2000 .
eLoadcaseType . LTYPE LIVE , 0 , true ) ;
105 // r e t = SapObjeto . SapModel . LoadPatterns . Add( ”DEAD” , SAP2000 .
eLoadPatternType .LTYPE DEAD, 1 , t r u e ) ;
106 r e t = SapObjeto . SapModel . LoadCases . Add( ”DEAD” , SAP2000 .
eLoadcaseType .LTYPE DEAD, 1 , true ) ;
107
108 // 2 : Load c a s e s , d e f i n e c a s o s de a n á l i s i s , s ó l o f a l t a por
sismo
109 // d e f i n e c a s o de c a r g a de e s p e c t r o de r e p u e s t a
110 // r e t = SapObjeto . SapModel . LoadCases . ResponseSpectrum . SetCase ( ”
QUAKE” ) ;
111 r e t = SapObjeto . SapModel . A n a l y s i s C a s e s . ResponseSpectrum . SetCase
( ”QUAKE” ) ;
112
113 // p r o p i e d a d e s para e l c a s o de a n á l i s i s por r e s p u e s t a e s p e c t r a l
114 System . Array MyLoadName , MyFunc , MySF, MyCSys , MyAng ;
115 MyLoadName = new string [ 3 ] { ”U1” , ”U2” , ”U3” } ;
116 //MyLoadName . SetValue ( ”U1” , 0 ) ; MyLoadName . SetValue ( ”U2” , 1 ) ;
MyLoadName . SetValue ( ”U3” , 2 ) ;
117 MyFunc = new string [ 3 ] { ”ZUCS” , ”ZUCS” , ”ZUCS” } ;
118 //MyFunc . SetValue ( ”ZUCS” , 0 ) ; MyFunc . SetValue ( ”ZUCS” , 1 ) ;
MyFunc . SetValue ( ”ZUCS” , 2 ) ;
119 MyCSys = new string [ 3 ] { ” G l o b a l ” , ” G l o b a l ” , ” G l o b a l ” } ;
120 //MyCSys . SetValue ( ” G l o b a l ” , 0 ) ; MyCSys . SetValue ( ” G l o b a l ” , 1 ) ;
MyCSys . SetValue ( ” G l o b a l ” , 2 ) ;
121 MySF = new double [ 3 ] { 9 . 8 1 , 9 . 8 1 , 6 . 5 4 } ;
122 //MySF . SetValue ( 9 . 8 1 , 0 ) ; MySF . SetValue ( 9 . 8 1 , 1 ) ; MySF . SetValue
( 6 . 5 4 , 2) ;
123 MyAng = new double [ 3 ] ;
124 // d e f i n e e l c a s o de c a r g a por r e s p u e s t a e s p e c t r a l
125 // r e t = SapObjeto . SapModel . LoadCases . ResponseSpectrum . SetLoads
( ”QUAKE” , 3 , r e f MyLoadName , r e f MyFunc , r e f MySF, r e f
MyCSys , r e f MyAng) ;
126 r e t = SapObjeto . SapModel . A n a l y s i s C a s e s . ResponseSpectrum .
SetLoads ( ”QUAKE” , 3 , r e f MyLoadName , r e f MyFunc , r e f MySF,
r e f MyCSys , r e f MyAng) ;
127

95
128 // 3 : c o m b i n a c i o n e s de c a r g a
129 //SAP2000 . eCType TypeC = SAP2000 . eCType . LoadCase ;
130 SAP2000 . eCType TypeC = SAP2000 . eCType . a c a s e ;
131 // 1 . 5 (CM) +1.8(CV)
132 r e t = SapObjeto . SapModel . RespCombo . Add( ” 1 . 5 (CM) +1.8(CV) ” , 0 ) ;
133 r e t = SapObjeto . SapModel . RespCombo . S e t C a s e L i s t ( ” 1 . 5 (CM) +1.8(CV)
” , r e f TypeC , ”DEAD” , 1 . 5 ) ;
134 r e t = SapObjeto . SapModel . RespCombo . S e t C a s e L i s t ( ” 1 . 5 (CM) +1.8(CV)
” , r e f TypeC , ”LIVE” , 1 . 8 ) ;
135 // 1 . 2 5 (CM+CV+CS)
136 r e t = SapObjeto . SapModel . RespCombo . Add( ” 1 . 2 5 (CM+CV+CS) ” , 0 ) ;
137 r e t = SapObjeto . SapModel . RespCombo . S e t C a s e L i s t ( ” 1 . 2 5 (CM+CV+CS) ”
, r e f TypeC , ”DEAD” , 1 . 2 5 ) ;
138 r e t = SapObjeto . SapModel . RespCombo . S e t C a s e L i s t ( ” 1 . 2 5 (CM+CV+CS) ”
, r e f TypeC , ”LIVE” , 1 . 2 5 ) ;
139 r e t = SapObjeto . SapModel . RespCombo . S e t C a s e L i s t ( ” 1 . 2 5 (CM+CV+CS) ”
, r e f TypeC , ”QUAKE” , 1 . 2 5 ) ;
140 // 1 . 2 5 (CM+CV−CS)
141 r e t = SapObjeto . SapModel . RespCombo . Add( ” 1 . 2 5 (CM+CV−CS) ” , 0 ) ;
142 r e t = SapObjeto . SapModel . RespCombo . S e t C a s e L i s t ( ” 1 . 2 5 (CM+CV−CS) ”
, r e f TypeC , ”DEAD” , 1 . 2 5 ) ;
143 r e t = SapObjeto . SapModel . RespCombo . S e t C a s e L i s t ( ” 1 . 2 5 (CM+CV−CS) ”
, r e f TypeC , ”LIVE” , 1 . 2 5 ) ;
144 r e t = SapObjeto . SapModel . RespCombo . S e t C a s e L i s t ( ” 1 . 2 5 (CM+CV−CS) ”
, r e f TypeC , ”QUAKE” , −1.25) ;
145 // 0 . 9 (CM) +1.25(CS)
146 r e t = SapObjeto . SapModel . RespCombo . Add( ” 0 . 9 (CM) +1.25(CS) ” , 0 ) ;
147 r e t = SapObjeto . SapModel . RespCombo . S e t C a s e L i s t ( ” 0 . 9 (CM) +1.25(CS
) ” , r e f TypeC , ”DEAD” , 0 . 9 ) ;
148 r e t = SapObjeto . SapModel . RespCombo . S e t C a s e L i s t ( ” 0 . 9 (CM) +1.25(CS
) ” , r e f TypeC , ”QUAKE” , 1 . 2 5 ) ;
149 // 0 . 9 (CM) −1.25(CS)
150 r e t = SapObjeto . SapModel . RespCombo . Add( ” 0 . 9 (CM) −1.25(CS) ” , 0 ) ;
151 r e t = SapObjeto . SapModel . RespCombo . S e t C a s e L i s t ( ” 0 . 9 (CM) −1.25(CS
) ” , r e f TypeC , ”DEAD” , 0 . 9 ) ;
152 r e t = SapObjeto . SapModel . RespCombo . S e t C a s e L i s t ( ” 0 . 9 (CM) −1.25(CS
) ” , r e f TypeC , ”QUAKE” , −1.25) ;
153 //ENVOLVENTE
154 //TypeC = SAP2000 . eCType . LoadCombo ;
155 TypeC = SAP2000 . eCType . RCombo ;
156 r e t = SapObjeto . SapModel . RespCombo . Add( ”ENVOLVENTE” , 1 ) ;
157 r e t = SapObjeto . SapModel . RespCombo . S e t C a s e L i s t ( ”ENVOLVENTE” ,
r e f TypeC , ” 1 . 5 (CM) +1.8(CV) ” , 1 ) ;
158 r e t = SapObjeto . SapModel . RespCombo . S e t C a s e L i s t ( ”ENVOLVENTE” ,
r e f TypeC , ” 1 . 2 5 (CM+CV+CS) ” , 1 ) ;
159 r e t = SapObjeto . SapModel . RespCombo . S e t C a s e L i s t ( ”ENVOLVENTE” ,
r e f TypeC , ” 1 . 2 5 (CM+CV−CS) ” , 1 ) ;
160 r e t = SapObjeto . SapModel . RespCombo . S e t C a s e L i s t ( ”ENVOLVENTE” ,
r e f TypeC , ” 0 . 9 (CM) +1.25(CS) ” , 1 ) ;
161 r e t = SapObjeto . SapModel . RespCombo . S e t C a s e L i s t ( ”ENVOLVENTE” ,
r e f TypeC , ” 0 . 9 (CM) −1.25(CS) ” , 1 ) ;
162
163 }
164

165 public void MasaEstructura ( )


166 {
167 /∗ C o n f i g u r a para l a s c o n s i d e r a c i o n e s de masa ∗/
168 System . Array MyLoadPat = new string [ 2 ] { ”DEAD” , ”LIVE” } ;

96
169 System . Array MySF = new double [ 2 ] { 1 , 0 . 2 5 } ;
170 r e t = SapObjeto . SapModel . P r o p M a t e r i a l . SetMassSource ( 3 , 2 , r e f
MyLoadPat , r e f MySF) ;
171
172 }
173

174 public string ConoCompleto ( double R1 , double Altura , double E s p e s o r


)
175 {
176 // Dibuja s e c c i ó n de r e v o l u c i ó n c a r a c t e rı́ s t i c a de un cono
completo
177 System . Array x = new double [ 4 ] { R1 , 0 , 0 , R1 } ;
178 System . Array y = new double [ 4 ] { 0 , 0 , 0 , 0 } ;
179 System . Array z = new double [ 4 ] { 0 , Altura , A l t u r a + Espesor ,
Espesor } ;
180 // d i b u j a e l e m e n t o à ¡ r e a
181 string MyArea = ” ” ;
182 r e t = SapObjeto . SapModel . AreaObj . AddByCoord ( 4 , r e f x , r e f y ,
r e f z , r e f MyArea , ” MyAsolid ” , ” ” , ” G l o b a l ” ) ;
183 Refrescar () ;
184 return MyArea ;
185 }
186
187 public string ConoConAbertura ( double R1 , double R2 , double Altura ,
double E s p e s o r )
188 {
189 // Dibuja s e c c i ó n de r e v o l u c i ó n c a r a c t e rı́ s t i c a de un cono con
abertura
190 System . Array x = new double [ 4 ] { R1 , R2 , R2 , R1 } ;
191 System . Array y = new double [ 4 ] { 0 , 0 , 0 , 0 } ;
192 System . Array z = new double [ 4 ] { 0 , Altura , A l t u r a + Espesor ,
Espesor } ;
193 // d i b u j a e l e m e n t o à ¡ r e a
194 string MyArea = ” ” ;
195 r e t = SapObjeto . SapModel . AreaObj . AddByCoord ( 4 , r e f x , r e f y ,
r e f z , r e f MyArea , ” MyAsolid ” , ” ” , ” G l o b a l ” ) ;
196 Refrescar () ;
197 return MyArea ;
198 }
199
200 public void A s i g n a r C a r g a s ( string MyArea , double CargaMuerta , double
CargaViva )
201 {
202 // módulo para a s i g n a r c a r g a s de p r e s i ó n a s u p e r f i c i e s .
203 // c a r g a muerta
204 r e t = SapObjeto . SapModel . AreaObj . S e t L o a d S u r f a c e P r e s s u r e ( MyArea ,
”DEAD” , 3 , CargaMuerta , ” ” , true , SAP2000 . eItemType . Object
);
205 r e t = SapObjeto . SapModel . AreaObj . S e t L o a d S u r f a c e P r e s s u r e ( MyArea ,
”LIVE” , 3 , CargaViva , ” ” , true , SAP2000 . eItemType . Object ) ;
206 Refrescar () ;
207 }
208
209 public void Rectangulos4Nodos ( string MyArea , int NroDiv12 , int
NroDiv13 )
210 {
211 // Método para d i b u j a r e l e m e n t o s r e c t a n g u l a r e s
212 // mesh

97
213 int NumberAreas = 1 ;
214 System . Array AreaName = new string [ 1 0 ] ;
215 r e t = SapObjeto . SapModel . EditArea . D i v i d e ( MyArea , 1 , r e f
NumberAreas , r e f AreaName , NroDiv12 , NroDiv13 , 2 , 2 , f a l s e
, f a l s e , f a l s e , f a l s e , 0 , 0 , true , true , true , f a l s e ) ;
216 Refrescar () ;
217 }
218
219 public void AsignarSopotesEnBase ( double R1 , double Espesor , int
NroDiv12 )
220 {
221

222 double Xmax, Ymax, Zmax , Xmin , Ymin , Zmin ;


223 // Asigna s o p o r t e s en l a b a s e
224 System . Array Value = new bool [ 6 ] { true , f a l s e , true , f a l s e ,
false , false };
225 double a = (R1 / NroDiv12 ) / 2 ;
226 Xmax = R1 + a ; Xmin = R1 − a ;
227 Ymax = 0 ; Ymin = 0 ;
228 Zmax = E s p e s o r ; Zmin = 0 ;
229 r e t = SapObjeto . SapModel . S e l e c t O b j . CoordinateRange ( Xmin , Xmax,
Ymin , Ymax, Zmin , Zmax , f a l s e , ” G l o b a l ” , f a l s e , true , f a l s e
, false , false , false ) ;
230 r e t = SapObjeto . SapModel . PointObj . S e t R e s t r a i n t ( ” A l l ” , r e f Value
, SAP2000 . eItemType . S e l e c t e d O b j e c t s ) ;
231 r e t = SapObjeto . SapModel . S e l e c t O b j . C l e a r S e l e c t i o n ( ) ;
232 Refrescar () ;
233 }
234
235 public void A s i g n a r S o p o r t e s E n C e n t r o ( double R1 , double Altura ,
double Espesor , int NroDiv12 )
236 {
237 double Xmax, Ymax, Zmax , Xmin , Ymin , Zmin ;
238 // Asigna s o p o r t e s en l a b a s e
239 System . Array Value = new bool [ 6 ] { true , f a l s e , f a l s e , f a l s e ,
false , false };
240 double a = (R1 / NroDiv12 ) / 2 ;
241 Xmax = 0 + a ; Xmin = 0 − a ;
242 Ymax = 0 ; Ymin = 0 ;
243 Zmax = A l t u r a + E s p e s o r ; Zmin = A l t u r a ;
244 r e t = SapObjeto . SapModel . S e l e c t O b j . CoordinateRange ( Xmin , Xmax,
Ymin , Ymax, Zmin , Zmax , f a l s e , ” G l o b a l ” , f a l s e , true , f a l s e
, false , false , false ) ;
245 r e t = SapObjeto . SapModel . PointObj . S e t R e s t r a i n t ( ” A l l ” , r e f Value
, SAP2000 . eItemType . S e l e c t e d O b j e c t s ) ;
246 r e t = SapObjeto . SapModel . S e l e c t O b j . C l e a r S e l e c t i o n ( ) ;
247 Refrescar () ;
248 }
249
250 public void A n a l i z a r ( string NombreArchivo )
251 {
252 // Módulo para a n a l i z a r l a e s t r u c t u r a
253 // g r a d o s de l i b e r t a d c o n s i d e r a d o s en e l a n à ¡ l i s i s
254 System . Array GDL = new bool [ 6 ] { true , f a l s e , true , f a l s e , true
, false };
255 r e t = SapObjeto . SapModel . Analyze . SetActiveDOF ( r e f GDL) ;
256 // c r e a un modelo de a n á l i s i s
257 r e t = SapObjeto . SapModel . Analyze . C r e a t e A n a l y s i s M o d e l ( ) ;

98
258 // o p c i o n e s d e l s o l u c i o n a d o r de e c u a c i o n e s de SAP2000
259 // r e t = SapObjeto . SapModel . Analyze . S e t S o l v e r O p t i o n ( 1 , t r u e , ”
DEAD” ) ;
260 // Guarda modelo
261 r e t = SapObjeto . SapModel . F i l e . Save ( ”D: \ \FEM APISAP PRUEBA\\ ” +
NombreArchivo ) ;
262 // a n á l i s i s
263 r e t = SapObjeto . SapModel . Analyze . RunAnalysis ( ) ;
264 // S a l i d a de r e s u l t a d o s
265 r e t = SapObjeto . SapModel . R e s u l t s . Setup .
DeselectAllCasesAndCombosForOutput ( ) ;
266 r e t = SapObjeto . SapModel . R e s u l t s . Setup . S e t C a s e S e l e c t e d F o r O u t p u t
( ”DEAD” , true ) ;
267 }
268 }

A.2. Código fuente ”esaSAP”

1 using System ;
2 using System . C o l l e c t i o n s . G e n e r i c ;
3 using System . ComponentModel ;
4 using System . Data ;
5 using System . Drawing ;
6 using System . Linq ;
7 using System . Text ;
8 using System . Windows . Forms ;
9
10 namespace AsolidCono
11 {
12 public p a r t i a l c l a s s AsolidCono : Form
13 {
14 // o b j e t o SAP2000 para toda l a c l a s e d e r i v a d a AsolidCono
15 S a p A p i A s o l i d MySap ;
16 // i n d i c a d o r para AbrirSAP2000 o c r e a r un modelo
17 // i n t a = 0 ;
18 // d i m e n s i o n e s d e l cono
19 public s t a t i c double Altura , R1 , Espesor , R2 ;
20 // d i v i s i ó n de l a s e c c i ó n de r e v o l u c i ó n
21 // p u b l i c s t a t i c d o u b l e V a r i a c i ó n ; Éste d e s a p a r e c e
22 public s t a t i c int Nrodiv12 , Nrodiv13 ;
23 // p r o p i e d a d de m a t e r i a l e s
24 public s t a t i c double PesoEsp , Rconcreto , C o e f p o i s s o n ; //
Coeftermico ;
25 // c a r g a s
26 public s t a t i c double Cargamuerta , Cargaviva ;
27 // f u n c i ó n a c e l e r a c i ó n pseudo e s p e c t r a l
28 public s t a t i c double Z , Tp , S , U, R, vT , Tf ;
29 // i n d i c a l a forma de l a e s t r u c t u r a
30 /∗ 1 : cono completo
31 ∗ 2 : cono con a b e r t u r a
32 ∗ 3 : domo completo
33 ∗ 4 : como con a b e r t u r a
34 ∗ . . . . . y sigue
35 ∗/

99
36 int FormaEstructura ;
37
38 public AsolidCono ( )
39 {
40 InitializeComponent () ;
41 // e s t r u c t u r a p r e d e t e r m i n a d a cono completo
42 FormaEstructura = 1 ;
43 txtR2 . Enabled = f a l s e ;
44 }
45
46 private s t a t i c string Mensaje ( int a )
47 {
48 switch ( a )
49 {
50 case 1 :
51 return ” A l t u r a d e l cono , i n d e f i n i d o ” ;
52 case 2 :
53 return ” Radio ( r 1 ) d e l cono , i n d e f i n i d o ” ;
54 case 3 :
55 return ” E s p e s o r d e l cono , i n d e f i n i d o ” ;
56 case 4 :
57 return ”Número de Div1 −2, i n d e f i n i d o ” ;
58 case 5 :
59 return ”Número de Div1 −3, i n d e f i n i d o ” ;
60 case 6 :
61 return ” E l i j a l a forma de e s t r u c t u r a ” ; // ya no
e x i s t e v a r i a c i ó n
62 case 7 :
63 return ” Peso E s p e cı́ f i c o , i n d e f i n i d o ” ;
64 case 8 :
65 return ” f ’ c , i n d e f i n i d o ” ;
66 case 9 :
67 return ” C o e f i c i e n t e de P o is s o n , i n d e f i n i d o ” ;
68 case 1 0 :
69 return ” Radio ( r 2 ) d e l cono , i n d e f i n i d o ” ; // a ñadido
radio 2
70 case 1 1 :
71 return ” c a r g a muerta , i n d e f i n i d o ” ;
72 case 1 2 :
73 return ” c a r g a viva , i n d e f i n i d o ” ;
74 case 1 3 :
75 return ”Z , i n d e f i n i d o ” ;
76 case 1 4 :
77 return ”Tp , i n d e f i n i d o ” ;
78 case 1 5 :
79 return ”S , i n d e f i n i d o ” ;
80 case 1 6 :
81 return ”U, i n d e f i n i d o ” ;
82 case 1 7 :
83 return ”R, i n d e f i n i d o ” ;
84 case 1 8 :
85 return ”vT , i n d e f i n i d o ” ;
86 case 1 9 :
87 return ”Tf , i n d e f i n i d o ” ;
88 case 2 0 :
89 return ” . . . y s i g u e ” ;
90 default :
91 return ”Todo Bien ” ;

100
92 }
93 }
94
95 private s t a t i c void MostrarMensaje ( string t e x t o )
96 {
97 MessageBox . Show ( t e x t o , ” AsolidCono ” , MessageBoxButtons .OK,
MessageBoxIcon . I n f o r m a t i o n ) ;
98 }
99
100 private bool V e r i f i c a r A r g u m e n t o s ( )
101 {
102 // ordena argumentos y v e r i f i c a
103 // D e f i n e e l cono
104 // A l t u r a d e l cono
105 i f ( t x t A l t u r a . Text == ” ” )
106 {
107 MostrarMensaje ( Mensaje ( 1 ) ) ;
108 return true ;
109 }
110 A l t u r a = double . Parse ( t x t A l t u r a . Text ) ;
111 // Radio d e l cono
112 i f ( txtR1 . Text == ” ” )
113 {
114 MostrarMensaje ( Mensaje ( 2 ) ) ;
115 return true ;
116 }
117 R1 = double . Parse ( txtR1 . Text ) ;
118 // E s p e s o r d e l cono
119 i f ( t x t E s p e s o r . Text == ” ” )
120 {
121 MostrarMensaje ( Mensaje ( 3 ) ) ;
122 return true ;
123 }
124 E s p e s o r = double . Parse ( t x t E s p e s o r . Text ) ;
125 // D i v i s i o n e s d e l dominio
126 // D i v i s i o n e s en 1−2
127 i f ( t x t N r o d i v 1 2 . Text == ” ” )
128 {
129 MostrarMensaje ( Mensaje ( 4 ) ) ;
130 return true ;
131 }
132 Nrodiv12 = int . Parse ( t x t N r o d i v 1 2 . Text ) ;
133 // D i v i s i o n e s en 1−3
134 i f ( t x t N r o d i v 1 3 . Text == ” ” )
135 {
136 MostrarMensaje ( Mensaje ( 5 ) ) ;
137 return true ;
138 }
139 Nrodiv13 = int . Parse ( t x t N r o d i v 1 3 . Text ) ;
140 // V a r i a c i ó n Li / Lf
141 /∗ i f ( t x t V a r i a c i o n . Text == ” ” )
142 {
143 MostrarMensaje ( Mensaje ( 6 ) ) ;
144 return true ;
145 }
146 V a r i a c i o n = d o u b l e . Parse ( t x t V a r i a c i o n . Text ) ; ∗/
147 // P r o p i e d a d e s de l o s m a t e r i a l e s
148 // Peso E s p e cı́ f i c o

101
149 i f ( t x t P e s o e s p e c i f i c o . Text == ” ” )
150 {
151 MostrarMensaje ( Mensaje ( 7 ) ) ;
152 return true ;
153 }
154 PesoEsp = double . Parse ( t x t P e s o e s p e c i f i c o . Text ) ;
155 // R e s i s t e n c i a d e l c o n c r e t o
156 i f ( t x t R e s i s C o n c r e t o . Text == ” ” )
157 {
158 MostrarMensaje ( Mensaje ( 8 ) ) ;
159 return true ;
160 }
161 Rc on cr et o = double . Parse ( t x t R e s i s C o n c r e t o . Text ) ;
162 // C o e f i c i e n t e de P o i s s o n
163 i f ( t x t C o e f p o i s s o n . Text == ” ” )
164 {
165 MostrarMensaje ( Mensaje ( 9 ) ) ;
166 return true ;
167 }
168 C o e f p o i s s o n = double . Parse ( t x t C o e f p o i s s o n . Text ) ;
169 // C o e f i c i e n t e de e x p a n s i ó n té r m i c o e r a
170 // ahora e s e l r a d i o f i n a l , r 2
171 i f ( txtR2 . Text == ” ” )
172 {
173 MostrarMensaje ( Mensaje ( 1 0 ) ) ;
174 return true ;
175 }
176 R2 = double . Parse ( txtR2 . Text ) ;
177 // c a r g a s
178 // c a r g a muerta
179 i f ( txtCargamuerta . Text == ” ” )
180 {
181 MostrarMensaje ( Mensaje ( 1 1 ) ) ;
182 return true ;
183 }
184 Cargamuerta = double . Parse ( txtCargamuerta . Text ) ;
185 // Carga v i v a
186 i f ( t x t C a r g a v i v a . Text == ” ” )
187 {
188 MostrarMensaje ( Mensaje ( 1 2 ) ) ;
189 return true ;
190 }
191 Cargaviva = double . Parse ( t x t C a r g a v i v a . Text ) ;
192 // p u b l i c s t a t i c d o u b l e Z , Tp , S , U, R, vT , Tf ;
193 // Función a c e l e r a c i ó n Pseudo e s p e c t r a l
194 //Z
195 i f ( txtZ . Text == ” ” )
196 {
197 MostrarMensaje ( Mensaje ( 1 3 ) ) ;
198 return true ;
199 }
200 Z = double . Parse ( txtZ . Text ) ;
201 //Tp
202 i f ( txtTp . Text == ” ” )
203 {
204 MostrarMensaje ( Mensaje ( 1 4 ) ) ;
205 return true ;
206 }

102
207 Tp = double . Parse ( txtTp . Text ) ;
208 //S
209 i f ( t x t S . Text == ” ” )
210 {
211 MostrarMensaje ( Mensaje ( 1 5 ) ) ;
212 return true ;
213 }
214 S = double . Parse ( t x t S . Text ) ;
215 //U
216 i f ( txtU . Text == ” ” )
217 {
218 MostrarMensaje ( Mensaje ( 1 6 ) ) ;
219 return true ;
220 }
221 U = double . Parse ( txtU . Text ) ;
222 //R
223 i f ( txtR . Text == ” ” )
224 {
225 MostrarMensaje ( Mensaje ( 1 7 ) ) ;
226 return true ;
227 }
228 R = double . Parse ( txtR . Text ) ;
229 //vT
230 i f ( txtVt . Text == ” ” )
231 {
232 MostrarMensaje ( Mensaje ( 1 8 ) ) ;
233 return true ;
234 }
235 vT = double . Parse ( txtVt . Text ) ;
236 // Tf
237 i f ( t x t T f . Text == ” ” )
238 {
239 MostrarMensaje ( Mensaje ( 1 9 ) ) ;
240 return true ;
241 }
242 Tf = double . Parse ( t x t T f . Text ) ;
243 // . . . . . . . s i g u e n más m e n s a j e s ( s )
244 return f a l s e ;
245 }
246
247 void P r o c e d i m i e n t o ( )
248 {
249 // Método para a n a l i z a r en SAP2000
250 // v e r i f i c a r argumentos
251 i f ( VerificarArgumentos () )
252 {
253 return ;
254 }
255 // s i t o d o s l o s argumentos son c o r r e c t o s s e e j e c u t a
256 // c r e a o b j e t o MySAP2000
257 MySap = new S a p A p i A s o l i d ( ) ;
258 // I n i c i a l i z a o c r e a nuevo modelo de , seg ún
259 MySap . AbrirSap2000 ( ) ;
260 // d e f i n e p r o p i e d a d d e l e l e m e n t o
261 double ModE = 15E7 ∗ Math . S q r t ( Rc on cr et o ) ;
262 MySap . D e f i n i r P r o p i e d a d ( PesoEsp , ModE, C o e f p o i s s o n ) ;
263 // d e f i n e f u n c i ó n a c e l e r a c i ó n pseudo e s p e c t r a l
264 MySap . ZUCS( Z , Tp , S , U, R, 0 . 1 , vT , Tf ) ;

103
265 // d e f i n e c a r g a s , c a s o s de a n á l i s i s y c o m b i n a c i o n e s de c a r g a
266 MySap . D e f i n i r C a r g a s ( ) ;
267 // masa de l a e s t r u c t u r a
268 MySap . MasaEstructura ( ) ;
269 // nombre d e l à ¡ r e a
270 string MyArea = ” ” ;
271
272 switch ( FormaEstructura )
273 {
274 case 1 : //Cono completo
275 // o b t i e n e nombre de l o s f r a m e s r e s u l t a d o de
extrudar
276 MyArea = MySap . ConoCompleto (R1 , Altura , E s p e s o r ) ;
277 // a s i g n a c a r g a s
278 MySap . A s i g n a r C a r g a s ( MyArea , Cargamuerta , Cargaviva )
;
279 // d e v u e l v e l o s nombres de l o s e l e m e n t o s c a r g a d o s
280 MySap . Rectangulos4Nodos ( MyArea , Nrodiv12 , Nrodiv13 )
;
281 // s o p o s t e s en l a b a s e
282 MySap . AsignarSopotesEnBase (R1 , Espesor , Nrodiv12 ) ;
283 // s o p o r t e s en e l c e n t r o
284 MySap . A s i g n a r S o p o r t e s E n C e n t r o (R1 , Altura , Espesor ,
Nrodiv12 ) ;
285 // A n a l i z a r
286 MySap . A n a l i z a r ( ” ConoCompleto . SDB” ) ;
287 break ;
288 case 2 : // cono con a b e r t u r a
289 // o b t i e n e nombre de l o s f r a m e s r e s u l t a d o de
extrudar
290 MyArea = MySap . ConoConAbertura (R1 , R2 , Altura ,
Espesor ) ;
291 // a s i g n a c a r g a s
292 MySap . A s i g n a r C a r g a s ( MyArea , Cargamuerta , Cargaviva )
;
293 // d e v u e l v e l o s nombres de l o s e l e m e n t o s c a r g a d o s
294 MySap . Rectangulos4Nodos ( MyArea , Nrodiv12 , Nrodiv13 )
;
295 // s o p o s t e s en l a b a s e
296 MySap . AsignarSopotesEnBase (R1 , Espesor , Nrodiv12 ) ;
297 // s o p o r t e s en e l c e n t r o
298 //MySap . A s i g n a r S o p o r t e s E n C e n t r o (R1 , Altura , Espesor
, Nrodiv12 ) ;
299 // A n a l i z a r
300 MySap . A n a l i z a r ( ” ConoConAbertura . SDB” ) ;
301 break ;
302 case 3 : //domo completo
303 break ;
304 case 4 : //domo con a b e r t u r a
305 break ;
306 }
307 }
308
309 private void a n a l i z a r E n S a p 2 0 0 0 1 1 0 4 T o o l S t r i p M e n u I t e m C l i c k (
object s e n d e r , EventArgs e )
310 {
311 // c l i k en a n a l i z a r l a e s t r u c t u r a
312 // a n t e s debe e l e g i r una o p c i ó n

104
313 i f ( FormaEstructura == 0 )
314 {
315 MostrarMensaje ( Mensaje ( 6 ) ) ;
316 return ;
317 }
318

319 Procedimiento ( ) ;
320 }
321
322 private void c e r r a r S a p 2 0 0 0 1 1 0 4 T o o l S t r i p M e n u I t e m C l i c k ( object
s e n d e r , EventArgs e )
323 {
324 // c l i k en c e r r a r sap2000
325 MySap . C e r r a r ( ) ;
326 }
327
328 private void s a l i r T o o l S t r i p M e n u I t e m C l i c k ( object s e n d e r ,
EventArgs e )
329 {
330 // s a l i r de l a a p l i c a c i ó n
331 this . Close ( ) ;
332 }
333
334 private void conoCompletoToolStripMenuItem Click ( object s e n d e r ,
EventArgs e )
335 {
336 // s e e l i g e cono completo
337 FormaEstructura = 1 ;
338 txtR2 . Enabled = f a l s e ;
339

340 }
341
342 private void conoConAberturaToolStripMenuItem Click ( object
s e n d e r , EventArgs e )
343 {
344 // s e e l i g e cono con a b e r t u r a
345 FormaEstructura = 2 ;
346 txtR2 . Enabled = true ;
347
348 }
349
350 }
351 }

105
Apéndice B

Fotografı́as

Figura B.1: Encofrado del techo del auditorio de la Facultad de Ciencias de la


Educación

106
Figura B.2: Encofrado del techo del auditorio de la Facultad de Ciencias de la
Educación

Figura B.3: Refuerzos del techo del auditorio de la Facultad de Ciencias de la edu-
cación

107
Figura B.4: Auditorio Facultad Ciencias de la Educación U.N.S.C.H

Figura B.5: Auditorio Facultad Ciencias de la Educación U.N.S.C.H

108
Apéndice C

Planos de la construcción

Lámina L-01: Localización

Lámina U-01: Ubicación

Lámina A-15: Arquitectura - Planta y Cortes.

Lámina A-16: Arquitectura - Elevaciones.

109

You might also like