**TI92P*mainS:6&~S::V%$RSezioneZs() Prgm Stati elementari di sollecit. Local Vers,Data,Tit,OldDir *********************** Autori: ing. P.Benetti Prof.A.Carotti "Sezione di de S.Venant"Tit "02/07/2005"Data " 1.0.2"Vers *********************** Global Area,MomIn,MinMax,Scale,Mf,Ft,Fn Global Mt,SigUp,SigIn,TauzM,Bet_ab Global OldMode 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 NewProb Local StrScr Define StrScr(Marg,Clr,Alt)=Prgm Prepara lo schermo per gli sforzi Local Dx,Dy if Clr=1 Then ClrDraw EndIf Marg*Scaleymin Alt+Marg*Scaleymax abs(ymax-ymin)Dy int(Dy*159/77)Dx Dx/2xmin xmin+Dxxmax Line Alt/10,Alt,0,Alt Line 0,Alt,0,0 Line 0,0,Alt/10,0 EndPrgm Define CompStr(Shape,EDim)=Prgm Calcolo degli sforzi Local b,h,Ratio,i,Found,Beta EDim[1]b:EDim[2]h:0i CompGeo(Shape,EDim) if Shape=1 Then Mf/MomIn*h/2SigMf Fn/AreaSigAs Ft*(b*h^2/8)/((b*h^3/12)*b)TauM Max({b,h})/Min({b,h})Ratio Disp "a/b",Ratio:Pause 0i:falseFound While Not(Found) i+1i If Ratio0 Then zlib\Arrow((xmin+Marg*Scale)/3,0,(xmin+Marg*Scale)/3,ymax-Marg*Scale,0,Scale) ElseIf Ft<0 Then zlib\Arrow((xmin+Marg*Scale)/3,ymax-Marg*Scale,(xmin+Marg*Scale)/3,0,0,Scale) EndIf if Fn>0 Then zlib\Arrow(Marg*Scale,h/2,xmin+Marg*Scale,h/2,0,Scale) ElseIf Fn<0 Then zlib\Arrow(xmin+Marg*Scale,h/2,Marg*Scale,h/2,0,Scale) EndIf if Mf>0 Then zlib\Arrow((xmin+Marg*Scale)*2/3,0,(xmin+Marg*Scale)*2/3,h,(xmin+Marg*Scale)/6,Scale) ElseIf Mf<0 Then zlib\Arrow((xmin+Marg*Scale)*2/3,0,(xmin+Marg*Scale)*2/3,h,(xmin+Marg*Scale)/6,Scale) EndIf Goto start Lbl blgeo CompGeo(Shape,ElDim) Dialog Title "Geometria" Text "Area: "& string(round(Area,2)) Text "Momento d'inerzia: "& String(round(MomIn,2)) Text "Ascissa baricentro : " & String(round(CBar[1],2)) Text "Ordinata baricentro: " & String(round(CBar[2],2)) EndDlog Goto start Lbl blsfo If b0 OR h0 Then Dialog Title "Attenzione" Text "Errore nelle dimensioni" EndDlog Goto Start EndIf CompStr(Shape,ElDim) Dialog Title "Sforzi caratteristici" Text "Sezione "&SShape[Shape] Text "Sigma sup: "&String(round(SigUp)) Text "Sigma inf: "&String(round(SigIn)) Text "Asse neutro: "&String(round(NeuAx)) Text "Tau max (G): "&String(round(TauM)) EndDlog If ok=0 Then Goto Start EndIf If Mt0 Then Dialog Title "Sforzi tangenziali per torsione" Text "Sezione "&SShape[Shape] Text "" Text "Tau_z_max: "&String(round(TauzM)) EndDlog EndIf Goto bldsfo Goto Start Lbl bldsfo If b0 OR h0 Then Dialog Title "Attenzione" Text "Errore nelle dimensioni" EndDlog Goto Start EndIf StrScr(Marg,0,h) (xmax-3*Marg*Scale)/2Dx CompStr(Shape,ElDim) if (SigIn*SigUp<0) Then (abs(SigIn)+abs(SigUp))/DxSigScale Else max(abs(SigIn),abs(SigUp))/DxSigScale EndIf if (SigUp0 and Sigin0) Then Marg*Scaleasse Else Marg*Scale+(abs(min(SigIn,SigUp))/ SigScale)asse EndIf if (Scale=0) Then Marg*Scalexi Marg*Scalexs Else (asse+Sigin/SigScale)xi (asse+Sigup/SigScale)xs EndIf Line (asse),0,(asse),h Line (asse),0,xi,0 Line (asse),h,xs,h Line xi,0,xs,h Diagramma del taglio If Ft=0 Then Goto Start EndIf 2*Marg*Scale+Dxasse Line asse,0,asse,h abs(TauM)/DxSigScale abs(TauM)*h/(CBar[2]^2)b_ b_/ha For i,0,69 h/69*ixi (a*xi^2+b_*xi)/SigScalexs PtOn (asse+xs),xi EndFor If TauM<0 Then ZLib\Arrow(asse+6*Scale,0+6*Scale,asse+ 6*Scale,h-6*Scale,0,Scale) ElseIf TauM>0 Then ZLib\Arrow(asse+6*Scale,h-6*Scale,asse+ 6*Scale,0+6*Scale,0,Scale) EndIf Goto start Lbl blAbout zlib\about(Vers,Data) Goto Start Lbl blexit Dialog Title "fine programma" Text " " EndDlog If ok=0 Then Goto Start EndIf SetMode (OldMode) DelVar CompGeo,CompStr DelVar Scala,MinMax,cbar,Area,Mf,Ft,Fn,Mt DelVar dx,momin,Scale,a,Bet_ab DelVar neuax,sigas,sigin,sigmf,sigup,taum DelVar OldMode SetFold (#OldDir) DispHome EndPrgm