![]() |
|
| Tasker Para hablar de todo lo relacionado con la aplicación tasker |
«
Tema Anterior
|
Siguiente tema
»
|
|
Herramientas |
|
#1
|
|
Programa para cálculo de vigas de acero
Os presento mi segundo Proyecto que expongo a vuestra consideración.
Tiene utilidad para profesionales del gremio de la construcción y, para mí, ha sido un desafio para ver si podia hacer con Tasker lo que ya había hecho con Basic y que, posteriormente, resolví con una hoja de Excel. Se trata de un programa para el cálculo de vigas de acero laminado (IPN-IPE y HEB) en los casos más normales. No és un programa de cálculo de estructuras metálicas. Es, simplemente, un "programillo" para llevar encima y resolver el cálculo de un dintel ó un voladizo que además cuenta con varias opciones adicionales. Admite dos tipologias: apoyos simples (dintel) o viga en voladizo. Bases de cálculo: Para el Acero se ha tomado una tensión máxima admisible (sigma) de 1.730 Kp/cm2. Este valor incluye los coeficientes de minoración de resistencia y de mayoración de cargas. Por ello las cargas se introducen "tal cual", es decir, sin mayorar. Perfiles laminados usados: de IPN-80 hasta IPN-600, de IPE-80 hasta IPE-600 y de HEB-100 hasta HEB-320. Los valores estáticos de los 51 perfiles usados (Tipo de viga, canto, Wx, Ix, peso m/l y ala) se han importado a partir de una tabla Excel de 51x6 a una variable global %Perfils. La tabla se salvó desde Windows como archivo con los valores separados por comas. Como en realidad Excel separa por ; y guarda los cambios de linea, se dejó tal cual, y mediante un "Buscar y Reemplazar" se substituyeron los saltos de linea por signos ! que luego se utilizaran como separadores. Las "," que, por defecto, usa Excel para el punto decimal se substituyeron por "." mediante Buscar y Reemplazar sobre la variable global %Perfils para que Tasker pudiera operar los valores decimales. Como el programa usa muchas variables globales se ha optado por no convertir los datos de los perfiles en una matriz. Cuando se necesita se copia la variable global %Perfils a una variable local %perfils y entonces, y sólo para la tarea que los necesita, se genera la matriz local %perfils1, %perfils2, etc. Que contienen los datos de cada perfil que se extraen más tarde utilizando de separador ; Entrada de variables: (escena: Entrada Dades) El programa ofrece unos valores "por defecto" para modificar a gusto según sea el cálculo a realizar: 1 REFERENCIA Este es el nombre que pondremos para identificar la biga. Si aceptamos el nombre por defecto (SENSE NOM) los nombres sucesivos se pondrán automáticamente como SENSE NOM 1, SENSE NOM 2,... 2 TIPO APOYOS (voladizo o apoyos simples) como sólo hay dos posibilidades, he puesto que el cuadro de texto editable se comporta como un conmutador y se van alternando los valores. Al mismo tiempo un punto a la izquierda toma los valores: azul para apoyo simple y rojo para voladizo. Esto hace de indicador visual que ya usaba en la versión de Excel y que resultaba útil. 3 CARGA REPARTIDA en Kp/ml. Admite una carga uniformemente repartida a todo lo largo de la viga en Kp/ml. 4 CARGA PUNTUAL en Kp. una sola carga puntual situada en cualquier punto de la viga. 5 DISTANCIA A SOPORTE distancia desde el punto donde se aplica la carga puntual hasta cualquiera de los soportes. Da igual, el programa calcula cual es la mínima. 6 FLECHA MAXIMA es el valor expresado en relación a la luz (L/?). 7 LUZ DE LA VIGA O VOLADIZO. Se establece con el cursor desplazable por saltos de 50 cm y se ajusta con los botones de 5 en 5 cm. En la parte inferior tenemos botones para Calcular el perfil (guardando los datos automáticamente en la base de datos), un botón para cálculos intermedios usando la calculadora del sistema, y botones para Gestión de datos guardados y Ayuda (escena: Ajuda), con un resumen de lo que aparece en esta página. Proceso de obtención del perfil que resuelve el problema: A partir de la entrada de datos, el programa efectúa una somera verificación para comprobar posibles incongruencias en los valores dados (tarea: Control entrades). Después, (tarea: Calcul Esforços), el programa calcula con las fórmulas tradicionales el momento flector M_flector para las condiciones establecidas, el mínimo momento resistente necesario Wx_min para no superar la tensión admisible, el mínimo momento de inercia Ix_min para cumplir con la condición de flecha impuesta y las reacciones Reaccio_1 y Reaccio_2. A partir de estos requerimientos, se calcula la solución para perfiles IPN. Para ello se fija el rango de búsqueda en la tabla (tarea: Calcul IPN) desde los valores 1:IPN-80 (%Index1) hasta el 21:IPN-600 (%Index2). Entonces se pone en marcha el "corazón" del cálculo (tarea: Determinar Perfil) que inicialmente se hace para perfiles IPN que ocupan los valores de la fila 1 a la 21. Esta tarea copia la variable global %Perfils a la variable local %perfils que convierte en una matriz utilizando el separador ; y compara sucesivamente con un bucle FOR los valores requeridos %Wx_min y %Ix_min con los de la tabla hasta encontrar un perfil IPN que cumpla simultáneamente los dos requerimientos. Si se acaba la lista sin encontrarlo, incrementa el número de perfiles y rehace la búsqueda desde el principio hasta obtener un resultado satisfactorio. Las tareas Calcul IPE y Calcul HEB solo hacen el cambio de las variables %Index1 y %Index2 que indican a la tarea de calculo Determinar Perfil el rango de la tabla general en donde debe buscar la solución... Cuando ha acabado el proceso de determinar el perfil, calcula el resto de valores (tarea: Mostrar Resultats): flecha real (%Fletxa_real), flecha real en cm (%Fletxa_realcm), longitud de los apoyos (%Cargador). Resultados (Escena: SCR Base) Se muestran agrupando en la parte superior los datos que se han entrado y los resultados de los esfuerzos calculados. Debajo se muestran los requerimientos a un lado y los valores que ofrece la solución en el otro. En esta escena podemos optar cambiar de perfil (IPN-IPE-HEB) o por incrementar el nº de perfiles. Otras opciones son: Consultar datos guardados de otras vigas calculadas y Editar los datos de entrada. Gestión de datos guardados (Escena: SCR Dades Guardades) Al calcular,(botón Calcula) desde la pantalla de entrada de datos, el programa guarda los datos en la matriz %Bigues. Un botón en esta misma pantalla permite acceder a la consulta (Escena: SCR Dades Guardades) de otros cálculos que se hayan realizado. Para limitar la extensión de datos guardados se ha acotado, por defecto, su número a 10. Cuando se alcanza esta cifra se borra automáticamente el cálculo más antiguo realizado. En la escena de gestión de datos se muestra en la parte superior el dato más reciente (que se ha situado en la primera posición: Array Push: posicion 1). Debajo se muestra el número de registro sobre el total, un cuadro con los datos guardados y los botones de navegación por la base de datos con un botón para borrar el registro (con una pulsación larga eliminamos todos los datos excepto el prototipo que se muestra de inicio). Debajo, un cursor deslizante permite la navegación rápida por la base de datos… Abajo del todo, el botón para Editar los datos (que permite editar los valores mostrados retornando a la escena Entrada Dades) y el botón de Calcular. Este cálculo no guarda de nuevo los datos puesto que ya están allí. Bien, hasta aquí la descripción del programa. Adjunto el código de las tres tareas del “corazón” del cálculo. Los enlaces son al diagrama de funcionamiento a partir de la imagen de las pantallas en PDF, y los archivos .XML, .TXT y un .PNG que debereis copiar en la carpeta Tasker ya que aparece en la escena Presentacio al inicio de la ejecución del programa. El primero es el .PDF del diagrama de funcionamiento: https://dl.dropboxusercontent.com/u/...ma-esquema.pdf Links a la versión 2 en nuevo post #10, en este mismo hilo Código del corazón del programa(sólo la parte de cálculo del perfil, la totalidad está en el archivo Sigmandroid TXT.txt) Código:
Calcul Esforcos (28)
A1: Ir a acción [ Tipo:Etiqueta Acción Número:1 Etiqueta:VOLADIU ] Si (if) [ %Suports ~ 1 ]
A2: Si (if) [ %D_suport > %Llum-%D_suport ]
A3: Establecer variable [ Nombre:%D_min A:%Llum-%D_suport Calcular:Encendido Añadir:Apagado ]
A4: Establecer variable [ Nombre:%D_max A:%D_suport Calcular:Encendido Añadir:Apagado ]
A5: Else
A6: Establecer variable [ Nombre:%D_max A:%Llum-%D_suport Calcular:Encendido Añadir:Apagado ]
A7: Establecer variable [ Nombre:%D_min A:%D_suport Calcular:Encendido Añadir:Apagado ]
A8: Fin si (End if)
A9: Establecer variable [ Nombre:%F_maxcm A:ceil(%Llum*100/%F_max)/100 Calcular:Encendido Añadir:Apagado ]
A10: Establecer variable [ Nombre:%M_flector A:ceil((%Q_rep/800*%Llum^2+%Q_punt*%D_max*%D_min/%Llum)/100) Calcular:Encendido Añadir:Apagado ]
A11: Establecer variable [ Nombre:%M_flectorM A:%M_flector Calcular:Encendido Añadir:Apagado ]
A12: Establecer variable [ Nombre:%Wx_min A:ceil(%M_flector*100/%Sigma) Calcular:Encendido Añadir:Apagado ]
A13: Establecer variable [ Nombre:%Ix_min A:ceil(5*(%Q_rep/100)*(%Llum^4)/(384*%Eferro*%F_maxcm)+%Q_punt*%D_min*(%Llum^2-%D_min^2)^(3/2)/(9*%Eferro*%F_maxcm*%Llum*1.732)) Calcular:Encendido Añadir:Apagado ]
A14: Establecer variable [ Nombre:%Reaccio_1 A:ceil(%Q_rep*%Llum/200+%Q_punt*%D_min/%Llum) Calcular:Encendido Añadir:Apagado ]
A15: Establecer variable [ Nombre:%Reaccio_2 A:ceil(%Q_rep*%Llum/200+%Q_punt*%D_max/%Llum) Calcular:Encendido Añadir:Apagado ]
A16: Ir a acción [ Tipo:Etiqueta Acción Número:1 Etiqueta:ACABAT ]
<VOLADIU>
A17: Destino (de goto)
A18: Establecer variable [ Nombre:%F_maxcm A:ceil(%Llum*100/%F_max)/100 Calcular:Encendido Añadir:Apagado ]
A19: Establecer variable [ Nombre:%M_flector A:ceil(%Q_rep/200*(%Llum)^2+%Q_punt*%D_suport) Calcular:Encendido Añadir:Apagado ]
A20: Establecer variable [ Nombre:%M_flectorM A:%M_flector/100 Calcular:Encendido Añadir:Apagado ]
A21: Establecer variable [ Nombre:%Wx_min A:ceil(%M_flector*100/%Sigma)/100 Calcular:Encendido Añadir:Apagado ]
A22: Establecer variable [ Nombre:%Ix_min A:ceil(%Q_rep/100*%Llum^4/(8*%Eferro*%F_maxcm)+%Q_punt*%D_suport^2*(3*%Llum-%D_suport)/(6*%Eferro*%F_maxcm)) Calcular:Encendido Añadir:Apagado ]
A23: Establecer variable [ Nombre:%Reaccio_1 A:%Q_rep*%Llum/100+%Q_punt Calcular:Encendido Añadir:Apagado ]
A24: Establecer variable [ Nombre:%Reaccio_2 A:0 Calcular:Encendido Añadir:Apagado ]
<ACABAT>
A25: Destino (de goto)
A26: Realizar tarea [ Nombre:Calcul IPN Parar:Apagado Prioridad:10 Parámetro 1 (%par1): Parámetro 2 (%par2): Devolver Valor de Variable: ]
A27: Mostrar Escena [ Nombre:SCR Base Mostrar como:Actividad, Pantalla Completa, Sin Título Posición Horizontal:100 Posición Vertical:100 Animación:Desvanecer Mostrar Botón Salida:Apagado Continuar tarea inmediatamente:Encendido ]
Calcul IPN (35)
A1: Establecer variable [ Nombre:%Index1 A:1 Calcular:Apagado Añadir:Apagado ]
A2: Establecer variable [ Nombre:%Index2 A:21 Calcular:Apagado Añadir:Apagado ]
A3: Realizar tarea [ Nombre:Determinar Perfil Parar:Apagado Prioridad:10 Parámetro 1 (%par1): Parámetro 2 (%par2): Devolver Valor de Variable: ]
A4: Realizar tarea [ Nombre:Mostrar Resultats Parar:Apagado Prioridad:5 Parámetro 1 (%par1): Parámetro 2 (%par2): Devolver Valor de Variable: ]
Determinar Perfil (38)
A1: Establecer variable [ Nombre:%perfils A:%Perfils Calcular:Apagado Añadir:Apagado ]
A2: Separar variable [ Nombre:%perfils Separador:! Eliminar base:Apagado ]
<CICLE>
A3: Destino (de goto)
A4: For [ Variable:%cadaperfil Ítems:%perfils(%Index1:%Index2) ]
A5: Separar variable [ Nombre:%cadaperfil Separador:; Eliminar base:Apagado ]
A6: Establecer variable [ Nombre:%valorix A:%cadaperfil(4)*%Num_perf Calcular:Encendido Añadir:Apagado ]
A7: Establecer variable [ Nombre:%valorwx A:%cadaperfil(3)*%Num_perf Calcular:Encendido Añadir:Apagado ]
A8: Si (if) [ %valorwx > %Wx_min ]
A9: Si (if) [ %valorix > %Ix_min ]
A10: Ir a acción [ Tipo:Etiqueta Acción Número:1 Etiqueta:RESULTAT ]
A11: Fin si (End if)
A12: Fin si (End if)
A13: End For
A14: Establecer variable [ Nombre:%Num_perfil A:%Num_perfil+1 Calcular:Encendido Añadir:Apagado ]
A15: Si (if) [ %numperfil ~ 6 ]
A16: Flash [ Texto:ATENCIÓ! surten més de 5 perfils
Repassa les dades entrades. Largo:Apagado ]
A17: Ir a acción [ Tipo:Etiqueta Acción Número:1 Etiqueta:RESULTAT ]
A18: Fin si (End if)
A19: Ir a acción [ Tipo:Etiqueta Acción Número:1 Etiqueta:CICLE ]
<RESULTAT>
A20: Destino (de goto)
A21: Establecer variable [ Nombre:%Caracteristiques A:%cadaperfil Calcular:Apagado Añadir:Apagado ]
Última edición por cace0353 Día 11/04/14 a las 12:34:22 Razón: Añadidos cambios a nueva versión |
| Los siguientes 4 usuarios han agradecido a cace0353 su comentario: | ||
|
|
|
#2
|
|
Je je,... Eres aparejata?
|
|
#3
|
||||
|
||||
|
Asombroso.
Supongo que la mayoría de nosotros no entendemos muchos detalles técnicos, pero de todas forma se agradece la explicación tan completa. Parece una app estupenda que combina multitud de técnicas Tasker: cálculos, matrices, escenas, una pequeña base de datos con 10 registros... incluso tiene pantalla de ayuda y también una bonita foto de obreros sobre una viga. O sea que está muy acabadita, con todos los detalles bien afinados. Y para colmo va dedicada a HTCmanía. Pues muchas gracias por lo que nos toca. Te hago algunos comentarios: -El enlace al documento PRJ.XML no funciona. Drobox devuelve un Error 404. -Habrás visto que, en el post, en medio de la tarea aparecen un par de caritas sonrientes. El servidor de HTCmania interpreta que si alguien escribe dos puntos seguidos de una letra D mayúscula... eso es un emoticono (smiley) de una carita sonriente y en su lugar muestra el gráfico correspondiente Eso te pasa en la tarea Calcul Esforcos, en su acción A27, y también en la tarea Calcul IPN, en la acción A3. Para que el servidor no haga ese tipo de "interpretaciones", lo más oportuno es incluir las tareas dentro de etiquteas CODE (icono de una hoja con una almohadilla); aún estás a tiempo de editar el post, seleccionar la parte de las tareas y hacer un clic sobre ese icono que te digo.- Según veo en el fichero TXT, la tarea Sigma comienza con una acción que establece la variable %Perfils con toda la matriz (más de 300 datos en 51 lineas). Luego, en la acción se A14 establece la variable %Ajuda con un texto amplio (17 párrafos, 431 palabras). Con este tipo de cosas conviene valorar si esos conjuntos de datos no estarían mejor en un archivo de texto que la tarea lea y pase a una variable. Tener esos datos en la propia tarea tiene la ventaja de que no añades ficheros adicionales, lo cual facilita cosas como la exportación. Tener esos datos en ficheros independientes hace más cómoda su edición posterior, si es que procede tal cosa. Me ha parecido contar 20 tareas distintas, admirable. Con este proyecto no has podido ir improvisando: aquí te has tenido que planificar bien. Por curiosidad... ¿Cuántas horas calculas que has dedicado a este proyecto? Muchas gracias por compartirlo. |
|
#4
|
|
No, soy arquitecto de vieja escuela, colegiado en el 1977...
(En la foto el primero por la derecha, cerca del apoyo y con la botella en la mano... Ya llevo muchas vigas a mis espaldas! Última edición por cace0353 Día 02/04/14 a las 10:14:09 |
| Gracias de parte de: | ||
|
#5
|
|
|
Cita:
Los textos de la ayuda los he escrito con Notepad++ en Windows, luego me envio un correo al teléfono con el archivo, lo abro con ESexplorer, y C&P... Los datos de la tabla de perfiles ya lo he contado: exportar desde Excel la tabla en formato CSV (datos separados por "comas", en realidad ";") y luego tratando la variable en Tasker con Buscar y Reemplazar la convierto en una cadena larga... ¡Pero los tengo una sola vez! si los tuviera en un archivo de texto también me quedarian como datos del programa a menos que hiciera una lectura del archivo cada vez que hiciera un cálculo. Me ha parecido más simple, sobretodo a raíz del comentario que me hicistes dias atrás relativo a lo de usar las variables globales. Respecto a las horas que he dedicado pues... empecé hace quince dias y como (por desgracia) no hay trabajo en nuestro ramo le he dedicado un montón de horas. Pregunta a mi mujer y verás, me pulia dos cargas del móvil al dia! Ya he hecho modificaciones (esta noche mismo) para guardar también la solución adoptada (nº y tipo de perfiles) en %Solucio, y la añado al final de la cadena de 10 datos que se pasan a la matriz %Bigues. Ya estoy pensando en la posibilidad de ampliar el campo de utilidad con otras tipologías de soportes pero, de momento, aún tengo que rehacer (aprovechando lo que he aprendido en este proyecto) mi trabajo anterior, ya sabes! Buenas noches y saludos PD. Lo de los 10 registros se puede cambiar, sólo es cuestión de editar el XML, la limitación está en una variable que se establece junto a los colores, etc. Última edición por cace0353 Día 02/04/14 a las 09:50:35 Razón: Error en nombre de variable |
|
#6
|
||||
|
||||
|
Cita:
Yo incluso me plantearía hacer otros archivos similares (ROTULOS-CAT, ROTULOS-ES) que contuvieran el resto de las frases fijas que aparecen en las escenas. De este modo tendrías una app multilíngue sin necesidad de modificar el código. Una escena de configuración permitiría elegir el idioma, tras lo cual leería el fichero ROTULOS correspondiente al idioma elegido y pondría eso en una matriz global %ROTULOS, haciendo luego la división en subvariables. Cada una de estas subvariables sería un "rótulo" para las escenas. La primera vez que se utiliza la app, al detectar que la variable %ROTULOS no está establecida... te llevaría directamente a una escena de configuración en la que deberías elegir el idioma, los colores y cualquier otro detalle. En sucesivas ocasiones ya se saltaría este paso porque detectaría que la variable %ROTULOS contiene algo. En cambio, respecto a la matriz de datos numéricos te doy la razón en que tiene menos sentido poner eso en un fichero, parece que no tendría ninguna ventaja. Gracias por corregir el enlace al XML y los otros detalles del primer post. Repito mi enhorabuena. Creo que es el proyecto más complejo y completo que he visto en este foro. |
|
#7
|
|
Muchas gracias de nuevo Caravantes por tus sugerencias, cuatro ojos ven más que dos. Para esto está el foro!
En principio no me habia planteado lo del multilenguaje, pensaba que, como no es una aplicación comercial y que se ha publicado en un foro de gente más o menos entendida, cada uno podia adaptarla a su idioma editando el XML que para esto está... No obstante, al sugerirme tú lo de canviar el idioma en la primera ejecución, se me ha ocurrido que podria emplear Secure Settings ya que permite actuar sobre el valor de la variable de sistema "locale" que establece el idioma, entonces esto podria hacerse automáticamente... Si no me sale optaria seguramente por tu método, o no haria nada (que lo haga cada uno a su gusto y que luego lo cuelgue en este hilo, ¿no?). Posible problema: ¿el usuario deberia tener instalado Secure Settings y ser usuario Root? De momento estoy trabajando en cambiar el aspecto general para hacerlo un poco más ligero, menos "barroco". Cuando estás en un proyecto como este, lo tienes todo controlado en la cabeza porqué está todo "fresco". Si lo dejo ahora me costará reemprenderlo. No obstante ya he descartado ampliar el marco de las tipologias de los apoyos, como mucho incluiré las bi-empotradas modificando la función del commutador de selección con una tercera opción y un nuevo indicador de color para no complicarlo demasiado. No obstante esto aumentará el número de resultados de cálculo ya que aparecerán los momentos en los empotramientos (los que van a usar el programa ya saben de que hablo). Aunque las tareas del "corazon" para determinar la biga no cambiarán, solo lo harán los valores de entrada en la tarea Esforços Ya veremos, pero como expliqué anteriormente, esto no es un programa de cálculo de estructuras metálicas, era más que nada, un desafío: a ver si puedo hacer con Tasker un programa que ... Al final si que va a parecerlo! Saludos a todos! Última edición por cace0353 Día 03/04/14 a las 13:51:54 |
|
#8
|
||||
|
||||
|
Cita:
Ahora en serio. Me parece una app genial y en cierta medida se parece a algo en lo que llevo trabajando en mis ratos libres desde hace ya unos meses, a ver si algún día la acabo y os la enseño. Al menos ahora se que habrá alguien que además de lo referente a tasker, entenderá que calcula la app. Como mis conocimientos de programación son nulos, estoy haciendo todo en puro tasker, y aunque en esta ocasión no me hace falta, me parece interesante lo que has hecho con la tabla en la que tienes los perfiles todos, tomo nota, gracias. |
|
#9
|
|
|
Cita:
Ya ví que estabas trabajando en un programa de cálculo hormigón armado (intenté ayudarte con lo de las variables...) y, evidentemente, eres del gremio. Ya tengo modificado el programa y he añadido el cálculo para bigas biempotradas pero con las mismas condiciones de carga (una repartida uniforme y una puntual en cualquier sitio de la viga). También he modificado el look de las escenas. En la nueva versión solo guardará los datos, si queremos, al final del cálculo. Y se grabarán tanto las variables de entrada como la solución adoptada. Así veremos que hemos puesto... Al comprobar el funcionamiento a partir de lo que ya tenia, he visto que hay algun error por ahí en el cálculo de las flechas finales. Aprovecho la revisión para rectificar el error, pero antes haré un testeo a partir del cálculo manual en los seis casos posibles. De hecho el programa hace una simplificación: calcula el momento máximo para la carga repartida y para la carga puntual y los suma como si los dos se dieran en el centro de la biga. Esto, como sabes, es incorrecto: solamente es cierto cuando la carga puntual SI está en el centro. No obstante el error de precisión esta del lado de la seguridad... Lo mismo hago con las flechas. A ver si te animas y traduces los textos a partir del XML. Así tendremos la versión en castellano! Ahora (al menos en mi caso) los del gremio disponemos de bastante tiempo. Ya me he quedado solo en el despacho... ![]() Saludos y un abrazo, colega! Última edición por cace0353 Día 03/04/14 a las 20:02:41 |
|
#10
|
|
He rehecho buena parte del programa para ampliarlo y completarlo.
Changelog: - Nuevo aspecto y diseño de las escenas - Pantalla de inicio con acceso a la pantalla de Ayuda y a la de Configuración. - Menú de configuración con 4 temas de color, cambio idioma (català-castellano), posibilidad de cambiar la tensión admisible para el acero y el número de registros de vigas a guardar. - Añadida una tercera tipologia de soportes para vigas biempotradas. Para ello han aparecido como resultados los momentos de empotramiento y el cálculo se hace para el mayor de todos ellos (el central y los de empotramiento). - Para el peso de la viga sólo se suma la longitud de los apoyos en el caso de las simplemente apoyadas. Para los voladizos y para las biempotradas el programa ofrece el peso de la viga con su longitud estricta, sin tener en cuenta la longitud de los soportes ya que dependen de otros factores (soldadura a pilar, cargas que hay encima, etc) que garantizan el empotramiento. - Ahora no se guarda la viga por defecto en el momento de calcular. Se hace desde la pantalla de resultados sólo si pulsamos sobre el botón "Guardar viga". - Cuando se guarda una viga se guarda también la solución que en este momento tenemos en pantalla (p.e. 2·IPE-300) - Si no cambiamos el nombre de Referencia que aparece por defecto en la pantalla de Entrada de datos, cada vez que guardamos una viga se modifica su nombre añadiendo un índice numérico (p.e. S.NOM-1, S.NOM-2,...). Lo mismo ocurre si entramos una referencia cualquiera (p.e. Xalet Rovira, se guardará con Xalet Rovira-1, Xalet Rovira-2,...) - La pantalla de ayuda se ha ampliado explicando las nuevas prestaciones del programa. - Se ha optimizado el código y el uso de recursos minimizando el uso de variables globales en favor de las locales. Así, el texto de ayuda y todos los textos fijos de las pantallas se guardan en dos archivos (CAT y CAS). Al elegir idioma en Configuración, se lee este archivo a una variable global (%Textes) y, cada vez que queremos mostrar una escena, se copia esta variable global a una variable local %temp que se convierte en matriz con Separar Variable. Los elementos de esta matriz (%temp1 a %temp57) son los textos fijos que se muestran en las escenas. El primero de ellos es, justamente, toda la página de ayuda. Instalación: El programa necesita de una carpeta Sigma que debemos copiar en la tarjeta (en la misma raíz donde tenemos la carpeta Tasker) y en la que hay los archivos de idioma CAT.txt, CAS.txt, un texto que aparece en cada escena: Sigma_titol.png y el de la pantalla de presentación: SIGMAndroid.png. Tambien he puesto en esta carpeta un archivo Sigma_icon.png que es el icono que he hecho para la APK si disponemos de Tasker App Factory. Caravantes: Lo de hacer el cambio de idioma automático a través de la variable de sistema "Locale" no lo he podido resolver. Primero porque obliga al usuario a tener Secure Settings instalado y segundo porque en uno de los intentos me encontré todo sistema en "afrikaans"(no veas!). Como decia un antiguo profesor mio:"Los inventos, en casa y con gaseosa..." Saludos a todos y buen fin de semana! Links: Archivo de texto: https://www.dropbox.com/s/kirrqpgpq4...IGMAndroid.txt XML: https://dl.dropboxusercontent.com/u/...IgmAND.prj.xml Contenido carpeta Sigma: https://www.dropbox.com/s/2duv6pg94mzotyj/sigma.zip PD.- No dudeis en reportar cualquier duda, mejora o error que encontreis... PPD.- Resubido el XML para corregir el "vacio" que quedaba al cambiar de escenas en el que se mostraba el escritorio de fondo. Ahora se "matan" después de mostrar la nueva escena. Para ello, como a una escena puede llegarse desde otras dos o tres, "mato" todas las posibles escenas orígen marcando "continuar tarea con error". El archivo de texto no se corresponde en este aspecto con el XML modificado. Última edición por cace0353 Día 11/04/14 a las 14:44:28 |
| Los siguientes 2 usuarios han agradecido a cace0353 su comentario: | ||
|
#11
|
||||
|
||||
|
Cita:
Muchas gracias por compartirlo todo. Es un trabajo fantástico. |
|
#12
|
||||
|
||||
|
Cita:
Porque me lio , jeejejeje esto no es lo mio !! Si lo que quiero hacer es, el calculo de una viga doble T IPN 120 de 6 metros de largo , con apollos a ambos lados ,(empotrada en pared a un lado y a otro) y la carga repartida uniformemente , como lo haría !! Lo que busco es la carga máxima que me aguantaría sin deformarse ( flecha a 1/500) |
|
#13
|
|
Hola Killers10,
Visto tu post, ante todo, quiero aclarar unos conceptos que (como creo que no eres técnico) me parece necesario explicar: 1.- Una viga puede considerarse biempotrada cuando por el diseño de la unión -sea porque está soldada a un pilar o porque hay suficiente longitud de viga realmente "metida" en el macizo de pared y que tenga suficiente carga por encima- puede garantizarse que transmitirá al soporte (pared o pilar) el momento flector de empotramiento. Es decir, un empotramiento és una unión "muy" rígida. 2.- Hay casos de semiempotramiento en los que la unión viga-soporte no es lo bastante rígida para considerarse un empotramiento pero sí que tiene una cierta capacidad para absorber momentos flectores. Estos casos no están contemplados en mi programa. 3.- Cuando hablamos de apoyos simples y con luces superiores a los 400 o 500 cm el factor "crítico" normalmente es la flecha. En estos casos normalmente hemos de aumentar el canto de la viga hasta que tenga suficiente rigidez (Ix) para cumplir con el límite de deformación impuesto (L/). 4.- En el caso de vigas biempotradas con carga repartida el mayor momento flector se produce en los extremos, justamente donde no se produce deformación. En estos casos el factor "crítico" es la tensión admisible en el acero (la sigma...) y habitualmente hemos de dimensionar la viga a partir del momento resistente (Wx). Si haces pruebas con el programa para una misma biga con los dos tipos de soporte confirmarás lo que he dicho en este apartado: para biga biempotradas la viga elegida es la que tiene un Wx justo por encima del Wx requerido. Para vigas simplemente apoyadas el perfil resultado es el que tiene el Ix justo por encima del Ix necesario segun el cálculo. Hasta aquí una explicación genérica de conceptos básicos de cálculo. En el problema que planteas: intuyo que hablas de una biga "empotrada" en una pared de medio pié... Este caso, segun he expuesto más arriba y menos con luces de orden de los 5 o 6 m, NO puede considerarse como biempotrada y deberias calcularla como un apoyo simple. En tu caso concreto, para ver que carga te aguanta una viga IPN-120 con una luz de 6 m (a primera vista muy poca viga para tanta luz...) deberias: 1º Elegir la opción Apoyo simple 2º Fijar la luz en 600 cm. y la flecha en 1/500 3º Ir disminuyendo la carga hasta encontrar un valor que, como solución te diera el perfil IPN-120 He hecho el cálculo y me da 48 K/ml (que, además incluye el peso propio: unos 12 Kp/ml) Para un forjado ligero, 600 K/m2 de peso propio + sobrecargas y con inter-ejes de 60 cm (carga por ml de biga = 600 x 0,6 = 360 Kp/ml) con una luz de 600 cm y en el caso de apoyo simple, el programa te dá como resultados a) IPN-220 cada 60 cm que pesa 205,3 kg. b) IPE-220 cada 60 cm que pesa 173 Kg. Espero haberte ayudado y, sobre todo, aclarado el concepto de empotramiento. Saludos |
| Respuesta |
Estás aquí
|
||||||
|
||||||
«
Tema Anterior
|
Siguiente tema
»
|
|
Hora actual: 00:38:09 (GMT +1)
HTCMania: líderes desde el 2007



Eso te pasa en la tarea Calcul Esforcos, en su acción A27, y también en la tarea Calcul IPN, en la acción A3. Para que el servidor no haga ese tipo de "interpretaciones", lo más oportuno es incluir las tareas dentro de etiquteas CODE (icono de una hoja con una almohadilla); aún estás a tiempo de editar el post, seleccionar la parte de las tareas y hacer un clic sobre ese icono que te digo.



