cace0353
01/04/14, 19:51:22
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.
https://dl.dropboxusercontent.com/u/13481585/Sigma/Esquema.png
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/13481585/Sigma/Sigma-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)
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 ]
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.
https://dl.dropboxusercontent.com/u/13481585/Sigma/Esquema.png
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/13481585/Sigma/Sigma-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)
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 ]