**TI92P*mainS:å§øä6&§¦RŸ$)¯S§:å:å§ŸåV%§®"Rc_ca_gc”¥Z:() Prgm ©Gusci assial-simmetrici Local Vers,Data,Tit ©*********************** "c_ca_gc"Tit ©Autori: ing. P.Benetti © : prof.A.Carotti "25/06/2005"Data " 0.0.1"Vers ©*********************** ©Global OldMode ©Inizio del programma*** Local choice, index Local OldDir Local strMnu Local w,Nfmax,Ntmin,sfmax,stmin Local sccamm,sctamm:©sf amm cls Local strVer © Subroutines Local EmiVer,EmiDes,EmiDef,ParVer ©Verify Emispherical domes define EmiVer() = Prgm Local bRetry truebRetry while (bRetry) ClrIo String(width)strWid String(radius)strRad String(load)strLoa String(weight)strWei String(rck)strRck Dialog Title "Dati geometria e carico q" Request "Spessore (cm)", strWid Request "Raggio (m)",strRad Request "Carico q (daN/m²)",strLoa Request "Peso cls (daN/m³)",strWei Request "Rck (N/mm²)",strRck EndDlog If ok=0 Then Return EndIf ©ok=1 expr(strWid)width expr(strRad)radius expr(strLoa)load expr(strWei)weight expr(strRck)rck if (IsNum(width) AND IsNum(radius) AND IsNum(load) AND IsNum(weight) AND IsNum(rck)) Then falsebRetry EndIf EndWhile ©Starts computation weight*width/100w: ©daN/m² (w + .5*load)*radiusNfmax:©daN/m ­(w + .5*load)*radiusNtmin 10*Nfmax/(width/100)sfmax:©N/m² 10*Ntmin/(width/100)stmin sfmax/1•6sfmax:©N/mm² stmin/1•6stmin sccamm92(rck)sccamm sctamm92(rck)sctamm © Results ZLib\OutputEx(1,"SFORZI MAX COMPR.","L") ZLib\OutputEx(3,"N‘max= "&String(Nfmax) & " daN/m","L") GrOrLess(sfmax,sccamm)strVer ZLib\OutputEx(4,"‘max: " & String(sfmax)& strVer & String(sccamm) & " N/mm²","L") If sfmaxœsccamm Then ZLib\OutputEx(5,"VERIFICA SODDISFATTA", "C") Else ZLib\OutputEx(5,"VERIFICA NON SODDISFATTA", "C") EndIf ZLib\OutputEx(7,"ENTER: Prossima pagina","R") Pause ClrIo ZLib\OutputEx(1,"SFORZI MIN TRAZ.","L") ZLib\OutputEx(3,"Nˆmin= " & String(Ntmin)& " daN/m","L") GrOrLess(stmin,sctamm)strVer ZLib\OutputEx(4,"ˆmin: " & String(stmin)& strVer & String(sctamm) & " N/mm²","L") If stminžsctamm Then ZLib\OutputEx(5,"VERIFICA SODDISFATTA", "C") Else ZLib\OutputEx(5,"VERIFICA NON SODDISFATTA", "C") EndIf EndPrgm ©Design emispherical domes Define EmiDes() = Prgm Local bRetry truebRetry while (bRetry) ClrIo String(width)strWid String(weight)strWei String(rck)strRck Dialog Title "Dati geometria e materiali" Request "Spessore (cm)", strWid Request "Peso cls (daN/m³)",strWei Request "Rck (N/mm²)",strRck EndDlog If ok=0 Then return EndIf ©ok=1 expr(strWid)width expr(strWei)weight expr(strRck)rck if (IsNum(width) AND IsNum(weight) AND IsNum(rck)) Then falsebRetry EndIf EndWhile ©Starts computation weight*width/100w: ©daN/m² sccamm92(rck)sccamm sctamm92(rck)sctamm ©Set Ntmin to sctamm*h ­1•6*sctamm*1•­2*width/(10*w)radius: ©m © Results ZLib\OutputEx(1,"RAGGIO MASSIMO","L") ZLib\OutputEx(3,"R œ " & String(radius) & "m","L") EndPrgm ©Deformations emispherical domes Define EmiDef() = Prgm Local bRetry Local delta0,delta,alfa,Ec truebRetry while (bRetry) ClrIo String(width)strWid String(radius)strRad String(weight)strWei String(rck)strRck Dialog Title "Dati geometria e materiali" Request "Spessore (cm)", strWid Request "Raggio (m)",strRad Request "Peso cls (daN/m³)",strWei Request "Rck (N/mm²)",strRck EndDlog If ok=0 Then return EndIf ©ok=1 expr(strWid)width expr(strRad)radius expr(strWei)weight expr(strRck)rck if (IsNum(width) AND IsNum(radius) AND IsNum(weight) AND IsNum(rck)) Then falsebRetry EndIf EndWhile ©Starts computation weight*width/100w: ©daN/m² 5700¨(Rck)Ec: ©N/mm² ©(1•­5*w)*(1•6*radius^2)/(Ec*(10*width))delta w*radius^2/(Ec*width)delta 1.76*deltadelta0 2*(1•­2*w*radius)/(Ec*(10*width))alfa © Results ZLib\OutputEx(1,"Deformata","L") ZLib\OutputEx(3,"…0: " & String(delta0) & " mm","L") ZLib\OutputEx(4,"…: "& String(delta) & " mm","L") ZLib\OutputEx(5,"€: " & String(alfa) & " rad","L") EndPrgm ©Verify parabolic domes Define ParVer() = Prgm Local c,K,K2 Local bRetry truebRetry while (bRetry) ClrIo String(width)strWid String(radius)strRad String(height)strHei String(load)strLoa String(weight)strWei String(rck)strRck Dialog Title "Dati geometrici e carico q" Request "Spessore (cm)", strWid Request "R_imposta (m)",strRad Request "Altezza (m)",strHei Request "Carico q (daN/m²)",strLoa Request "Peso cls (daN/m³)",strWei Request "Rck (N/mm²)",strRck EndDlog If ok=0 Then return EndIf ©ok=1 expr(strWid)width expr(strRad)radius expr(strHei)height expr(strLoa)load expr(strWei)weight expr(strRck)rck If(IsNum(width) AND IsNum(radius) AND IsNum(height) AND IsNum(load) AND IsNum(weight) AND IsNum(rck)) Then falsebRetry EndIf EndWhile ©Starts computation radius^2/heightc: ©m 2*radius/cK K^2K2 ClrIo ZLib\OutputEx(1,"VALORI DI CALCOLO","L") ZLib\OutputEx(3,"c = "&String(c) & " m","L") ZLib\OutputEx(4,"K² = "&String(K2),"L") ZLib\OutputEx(7,"ENTER: prossima pagina","R") Pause weight*width/100w: ©daN/m² w*c/(6*K2)*((1+K2)^2-¨(1+K2))+load*c/4*¨(1+K2)Nfmax: ©daN/m w*c/2-Nfmax/¨(1+K2)+load*c/(4*¨(1+K2))Ntmin: ©daN/m 10*Nfmax/(width/100)sfmax:©N/m² 10*Ntmin/(width/100)stmin sfmax/1•6sfmax:©N/mm² stmin/1•6stmin sccamm92(rck)sccamm sctamm92(rck)sctamm © Results ClrIo ZLib\OutputEx(1,"SFORZI MAX","L") ZLib\OutputEx(3,"N‘max= "&String(Nfmax)& " daN/m","L") GrOrLess(sfmax,sccamm)strVer ZLib\OutputEx(4,"‘max: "&String(sfmax)& strVer & String(sccamm) & " N/mm²","L") ZLib\OutputEx(7,"ENTER: prossima pagina","R") Pause ClrIo ZLib\OutputEx(1,"SFORZI MIN","L") ZLib\OutputEx(3,"Nˆmin= "&String(Ntmin)& " daN/m","L") GrOrLess(stmin,sctamm)strVer ZLib\OutputEx(4,"ˆmin: " & String(stmin)& strVer & String(sctamm) & " N/mm²","L") EndPrgm ©Create and set the Temp Folder getFold()OldDir try ZLib\ChngFold("Temp") ZLib\ChngMode() Else Dialog Title "Errore" Text "L'installazione non e' stata" Text "eseguita correttamente oppure" Text "e' corrotta." Text "Copiare il programma Setup_IA" Text "sulla TI-89 ed eseguirlo." EndDlog Return EndTry ©Create the subfuncs in the temp folder Define GrOrLess(p1,p2) = Func If p1 " EndIf EndFunc Define IsNum(checkVar) = Func If GetType(checkVar)="NUM" Then return true Else return false EndIf EndFunc Define sccamm92(rck) = Func return 6+(rck-15)/4 EndFunc Define sctamm92(rck) = Func return ­.27*(rck^(2/3)) EndFunc ©Initialization of variables ClrIo Disp ZLib\Splash(Tit,Vers,Data) 0index If NOT IsNum(width) 8width If NOT IsNum(radius) 10radius If NOT IsNum(load) 150load If NOT IsNum(weight) 2400weight If NOT IsNum(rck) 25rck 30height Lbl start ClrIo ZLib\OutputEx (1, "GUSCI ASSIALSIMMETRICI", "C") ZLib\OutputEx (7, "Seleziona la tipologia", "C") {"Emisferici","Paraboloidi","Esci"}strMnu if index=0 Then 1choice Else indexchoice EndIf PopUp strMnu, choice if choice = Dim(strMnu) Goto blExit choiceindex 0choice: ©Ready for submenus If index = 1 Then Goto blSphere Else Goto blParab Endif ©--------------------------------------- Lbl blSphere ClrIo ZLib\OutputEx (7, "Seleziona il calcolo", "C") {"Verifica","Progetto","Deformazioni","Menu"}strMnu if choice=0 1choice PopUp strMnu, choice if choice = Dim(strMnu) Goto start If choice=1 Then EmiVer() ElseIf choice=2 Then EmiDes() Else EmiDef() EndIf ZLib\OutputEx (7, "Premi ENTER", "R") Pause Goto blSphere ©--------------------------------------- Lbl blParab ClrIo ZLib\OutputEx (7, "Seleziona il calcolo", "C") {"Verifica","Menu"}strMnu if choice = 0 1choice PopUp strMnu, choice If choice = Dim(strMnu) Goto start ©This stuff is redundant, but easily expansible If choice = 1 Then ParVer() EndIf ZLib\OutputEx (7, "Premi ENTER", "R") Pause Goto blParab ©--------------------------------------- Lbl blExit Dialog Title "fine programma" Text " " EndDlog If ok=0 Then Goto start EndIf SetMode(OldMode) DelVar OldMode SetFold(#OldDir) EndPrgm äåÜüæ