VIGASENT
DownloadTélécharger
Actions
Vote :
ScreenshotAperçu

Informations
Catégorie :Category: nCreator TI-Nspire
Auteur Author: danterftpro
Type : Classeur 3.0.1
Page(s) : 1
Taille Size: 5.06 Ko KB
Mis en ligne Uploaded: 29/04/2025 - 20:14:29
Uploadeur Uploader: danterftpro (Profil)
Téléchargements Downloads: 0
Visibilité Visibility: Archive publique
Shortlink : http://ti-pla.net/a4610940
Type : Classeur 3.0.1
Page(s) : 1
Taille Size: 5.06 Ko KB
Mis en ligne Uploaded: 29/04/2025 - 20:14:29
Uploadeur Uploader: danterftpro (Profil)
Téléchargements Downloads: 0
Visibilité Visibility: Archive publique
Shortlink : http://ti-pla.net/a4610940
Description
Fichier Nspire généré sur TI-Planet.org.
Compatible OS 3.0 et ultérieurs.
<<
-- VigaT_ACI.lua - Programa para diseño de vigas T en TI-Nspire -- Norma ACI adaptada al reglamento peruano Pantalla local = 1 -- Datos geométricos y de material local datos = { b = 0, bf = 0, h = 0, hf = 0, fc = 0, fy = 0 } local datos_extra = { Mu = 0 -- Momento último en tonf·m } local campos = {"b", "bf", "h", "hf", "fc", "fy"} etiquetas locales = { b = "b (ancho del alma en cm)", bf = "bf (ancho del ala en cm)", h = "h (altura total en cm)", hf = "hf (espesor del ala en cm)", fc = "f'c (kg/cm²)", fy = "fy (kg/cm²)" } Índice local = 1 entrada local = "" calculo_realizado local = falso resultado_texto local = "" Función draw_input(GC) gc:drawString("INGRESO DE DATOS", 10, 10, "top") gc:drawString(etiquetas[campos[índice]] .. ":", 10, 50, "arriba") gc:drawString(entrada, 10, 80, "top") fin función calcular_estructura() local b = datos.b bf local = datos.bf local h = datos.h local hf = datos.hf fc local = datos.fc fy local = datos.fy local Mu = datos_extra. Mu * 100000 Beta local1 = 0,85 Si FC > 280, entonces beta1 = math.max(0,65, 0,85 - 0,05 * ((fc - 280) / 70)) fin Local A = 0.85 * FC * BF * HF / (FY * B) local c = a / beta1 local d = h - 5 local As = 0.85 * fc * bf * hf / fy Mn local = 0,85 * fc * bf * hf * (d - hf/2) / 100000 PHI local = 0,9 phiMn local = phi * Mn local cumple = phiMn >= datos_extra. Mu resultado_texto = cadena.formato( "SECCIÓN: %snfc = %.0f | fy = %.0fnbf = %.1f, b = %.1f, hf = %.1f, h = %.1fnnc = %.2f cm, a = %.2f cmnAs = %.2f cm²nMn = %.2f tonf·mnÆMn = %.2fnMu = %.2fnn%s", (a <= hf) y "RECTANGULAR" o "T", FC, FY, BF, B, HF, H, c, a, As, Mn, phiMn, datos_extra. Mu cumple y "CUMPLE (ÆMn e Mu)" o "NO CUMPLE" ) calculo_realizado = verdadero fin función diseño_flexion() local b = datos.b bf local = datos.bf local h = datos.h local hf = datos.hf local fc = datos.fc local fy = datos.fy local Mu = datos_extra.Mu * 100000 local phi = 0.9 local Mu_phi = Mu / phi local d = h - 5 local As_req = 0.85 * fc * bf * hf / fy local rho_req = As_req / (b * d) local rho_min = math.max((3 * math.sqrt(fc)) / fy, 1.4 / fy) local rho_max = 0.75 * 0.85 * fc / (fy * (600 / (600 + fy))) local cumple_rho = (rho_req >= rho_min and rho_req <= rho_max) resultado_texto = string.format( "DISEÑO A FLEXIÓNnnAs = %.2f cm²nÁ = %.4fnÁmin = %.4fnÁmax = %.4fnn%s", As_req, rho_req, rho_min, rho_max, cumple_rho and "CUMPLE CUANTÍAS" or "NO CUMPLE CUANTÍAS" ) calculo_realizado = true end function dibujar_seccion(gc) gc:setFont("sansserif", "r", 9) local bf, b, h, hf = datos.bf, datos.b, datos.h, datos.hf local d = h - 5 local escala = 150 / h local x0, y0 = 160, 20 local ala_w = bf * escala local ala_h = hf * escala local alma_w = b * escala local alma_h = (h - hf) * escala gc:drawRect(x0 - ala_w/2, y0, ala_w, ala_h) gc:drawRect(x0 - alma_w/2, y0 + ala_h, alma_w, alma_h) local bar_rad = 3 local y_steel = y0 + h * escala - 5 gc:fillArc(x0 - 20, y_steel, bar_rad, bar_rad) gc:fillArc(x0, y_steel, bar_rad, bar_rad) gc:fillArc(x0 + 20, y_steel, bar_rad, bar_rad) gc:drawString(string.format("bf=%.0f cm", bf), x0 - ala_w/2, y0 - 15, "top") gc:drawString(string.format("b=%.0f", b), x0 - alma_w/2, y0 + ala_h + alma_h + 5, "top") gc:drawString(string.format("h=%.0f", h), x0 + alma_w/2 + 10, y0 + alma_h / 2, "top") gc:drawString(string.format("hf=%.0f", hf), x0 + ala_w/2 + 10, y0 + 5, "top") end function on.paint(gc) gc:setFont("sansserif", "b", 12) if screen == 1 then gc:drawString("DISEÑO DE VIGAS T - ACI PERÚ", 10, 30, "top") gc:setFont("sansserif", "r", 10) gc:drawString("Presiona 'enter' para iniciar", 10, 70, "top") elseif screen == 2 then gc:drawString("MENÚ PRINCIPAL", 10, 20, "top") gc:drawString("1. Ingresar datos", 20, 50, "top") gc:drawString("2. Cálculo estructural", 20, 70, "top") gc:drawString("3. Diseño a flexión", 20, 90, "top") gc:drawString("4. Dibujo de sección", 20, 110, "top") gc:drawString("5. Salir", 20, 130, "top") elseif screen == 3 then draw_input(gc) elseif screen == 4 then gc:drawString("INGRESE Mu (tonf·m):", 10, 30, "top") gc:drawString(input, 10, 60, "top") if calculo_realizado then gc:setFont("sansserif", "r", 9) local y = 100 for line in resultado_texto:gmatch("[^n]+") do gc:drawString(line, 10, y, "top") y = y + 15 end end elseif screen == 5 then gc:drawString("DISEÑO A FLEXIÓN", 10, 20, "top") if not calculo_realizado then diseño_flexion() end local y = 60 gc:setFont("sansserif", "r", 9) for line in resultado_texto:gmatch("[^n]+") do gc:dr
[...]
>>
Compatible OS 3.0 et ultérieurs.
<<
-- VigaT_ACI.lua - Programa para diseño de vigas T en TI-Nspire -- Norma ACI adaptada al reglamento peruano Pantalla local = 1 -- Datos geométricos y de material local datos = { b = 0, bf = 0, h = 0, hf = 0, fc = 0, fy = 0 } local datos_extra = { Mu = 0 -- Momento último en tonf·m } local campos = {"b", "bf", "h", "hf", "fc", "fy"} etiquetas locales = { b = "b (ancho del alma en cm)", bf = "bf (ancho del ala en cm)", h = "h (altura total en cm)", hf = "hf (espesor del ala en cm)", fc = "f'c (kg/cm²)", fy = "fy (kg/cm²)" } Índice local = 1 entrada local = "" calculo_realizado local = falso resultado_texto local = "" Función draw_input(GC) gc:drawString("INGRESO DE DATOS", 10, 10, "top") gc:drawString(etiquetas[campos[índice]] .. ":", 10, 50, "arriba") gc:drawString(entrada, 10, 80, "top") fin función calcular_estructura() local b = datos.b bf local = datos.bf local h = datos.h local hf = datos.hf fc local = datos.fc fy local = datos.fy local Mu = datos_extra. Mu * 100000 Beta local1 = 0,85 Si FC > 280, entonces beta1 = math.max(0,65, 0,85 - 0,05 * ((fc - 280) / 70)) fin Local A = 0.85 * FC * BF * HF / (FY * B) local c = a / beta1 local d = h - 5 local As = 0.85 * fc * bf * hf / fy Mn local = 0,85 * fc * bf * hf * (d - hf/2) / 100000 PHI local = 0,9 phiMn local = phi * Mn local cumple = phiMn >= datos_extra. Mu resultado_texto = cadena.formato( "SECCIÓN: %snfc = %.0f | fy = %.0fnbf = %.1f, b = %.1f, hf = %.1f, h = %.1fnnc = %.2f cm, a = %.2f cmnAs = %.2f cm²nMn = %.2f tonf·mnÆMn = %.2fnMu = %.2fnn%s", (a <= hf) y "RECTANGULAR" o "T", FC, FY, BF, B, HF, H, c, a, As, Mn, phiMn, datos_extra. Mu cumple y "CUMPLE (ÆMn e Mu)" o "NO CUMPLE" ) calculo_realizado = verdadero fin función diseño_flexion() local b = datos.b bf local = datos.bf local h = datos.h local hf = datos.hf local fc = datos.fc local fy = datos.fy local Mu = datos_extra.Mu * 100000 local phi = 0.9 local Mu_phi = Mu / phi local d = h - 5 local As_req = 0.85 * fc * bf * hf / fy local rho_req = As_req / (b * d) local rho_min = math.max((3 * math.sqrt(fc)) / fy, 1.4 / fy) local rho_max = 0.75 * 0.85 * fc / (fy * (600 / (600 + fy))) local cumple_rho = (rho_req >= rho_min and rho_req <= rho_max) resultado_texto = string.format( "DISEÑO A FLEXIÓNnnAs = %.2f cm²nÁ = %.4fnÁmin = %.4fnÁmax = %.4fnn%s", As_req, rho_req, rho_min, rho_max, cumple_rho and "CUMPLE CUANTÍAS" or "NO CUMPLE CUANTÍAS" ) calculo_realizado = true end function dibujar_seccion(gc) gc:setFont("sansserif", "r", 9) local bf, b, h, hf = datos.bf, datos.b, datos.h, datos.hf local d = h - 5 local escala = 150 / h local x0, y0 = 160, 20 local ala_w = bf * escala local ala_h = hf * escala local alma_w = b * escala local alma_h = (h - hf) * escala gc:drawRect(x0 - ala_w/2, y0, ala_w, ala_h) gc:drawRect(x0 - alma_w/2, y0 + ala_h, alma_w, alma_h) local bar_rad = 3 local y_steel = y0 + h * escala - 5 gc:fillArc(x0 - 20, y_steel, bar_rad, bar_rad) gc:fillArc(x0, y_steel, bar_rad, bar_rad) gc:fillArc(x0 + 20, y_steel, bar_rad, bar_rad) gc:drawString(string.format("bf=%.0f cm", bf), x0 - ala_w/2, y0 - 15, "top") gc:drawString(string.format("b=%.0f", b), x0 - alma_w/2, y0 + ala_h + alma_h + 5, "top") gc:drawString(string.format("h=%.0f", h), x0 + alma_w/2 + 10, y0 + alma_h / 2, "top") gc:drawString(string.format("hf=%.0f", hf), x0 + ala_w/2 + 10, y0 + 5, "top") end function on.paint(gc) gc:setFont("sansserif", "b", 12) if screen == 1 then gc:drawString("DISEÑO DE VIGAS T - ACI PERÚ", 10, 30, "top") gc:setFont("sansserif", "r", 10) gc:drawString("Presiona 'enter' para iniciar", 10, 70, "top") elseif screen == 2 then gc:drawString("MENÚ PRINCIPAL", 10, 20, "top") gc:drawString("1. Ingresar datos", 20, 50, "top") gc:drawString("2. Cálculo estructural", 20, 70, "top") gc:drawString("3. Diseño a flexión", 20, 90, "top") gc:drawString("4. Dibujo de sección", 20, 110, "top") gc:drawString("5. Salir", 20, 130, "top") elseif screen == 3 then draw_input(gc) elseif screen == 4 then gc:drawString("INGRESE Mu (tonf·m):", 10, 30, "top") gc:drawString(input, 10, 60, "top") if calculo_realizado then gc:setFont("sansserif", "r", 9) local y = 100 for line in resultado_texto:gmatch("[^n]+") do gc:drawString(line, 10, y, "top") y = y + 15 end end elseif screen == 5 then gc:drawString("DISEÑO A FLEXIÓN", 10, 20, "top") if not calculo_realizado then diseño_flexion() end local y = 60 gc:setFont("sansserif", "r", 9) for line in resultado_texto:gmatch("[^n]+") do gc:dr
[...]
>>