**TI92P*mainQ:åoøä6&§ä}4/Qo:å:åoåV%§+Rarchi°¥ZV() Prgm ©Archi parabolici: reaz. e az.interne Local tit,vers,data ©*********************** ©Autori: ing. P.Benetti © : dott.sa M.V.Latella © : prof.A.Carotti "Archi parabolici"tit "02/07/2005"data " 1.0.2"vers ©*********************** ©Global OldMode ©Inizio del programma**** Local olddir 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 svinc,vinc,temp,ldim,i Local l,f,ac,jc,nl,load,ma,mb Local mc,mx,a,b,va,vb,h,alfa Local beta,ic,k,j,m,c0,p,x,y,’,Nu {"Arco 3 cerniere","2 cern + 1 app.","2 cerniere","2 incastri"}svinc 1vinc:0temp:0i:0l:0f:0ac:0jc {0,0,0,0}ldim:0nl:0alfa:0beta 0ic:0k:0j:0m [[0,0,0]]load:1c0:0p 0x:0Nu zlib\splash(tit,vers,data) Lbl start Toolbar Title "File" Item "About...",blabout Item "Esci",blexit Title "Arco" Item "Vincoli",blav Item "Dimensioni",blad Title "Carichi" Item "Inserisci",blci Item "Modifica",blcm Title "Reaz. e az.interne" Item "Valori estremi",blze Item "Valori in un punto",blzp EndTBar Goto start Lbl blav vinctemp Dialog Title "Scelta dei vincoli" Text "Arco parabolico. Vincoli a terra" Text "alla stessa quota" Text "" DropDown "Vincoli:",svinc,vinc EndDlog If ok=0 Then tempvinc Goto Start EndIf Goto blad Lbl blad ldimtemp string(ldim[1])l string(ldim[2])f string(1•4*ldim[3])ac string(1•8*ldim[4])jc Dialog Title "Dimensioni caratteristiche" Request "Luce [m]",l Request "freccia [m]",f Request "Area sez. perp [cm²]",ac Request "Jx sez. perp. [cm^4]",jc EndDlog If ok=0 Then templdim Else {expr(l),expr(f),expr(ac)/1•4, expr(jc)/1•8}ldim EndIf Goto start Lbl blci Dialog Title "Inserimento carico n."&string(nl+1) DropDown "Carico: ", {"Concentrato","Distribuito"},i EndDlog If ok=1 Then nl+1nl Else Goto start EndIf "0"f:"0"l If i=1 Then Dialog Title "Carico concentrato" Request "Valore [N]",f Request "Ascissa [m]",l EndDlog Else Dialog Title "Carico distribuito" Request "Valore [N/m]",f EndDlog EndIf If ok=1 Then If nl>1 Then augment(load;[[i,expr(f),expr(l)]]) load Else [[i,expr(f),expr(l)]]load EndIf Else nl-1nl EndIf Goto start Lbl blcm newList(nl)temp For i,1,nl If load[i,1]=1 Then string(i)&" Concentrato"temp[i] Else string(i)&" Distribuito"temp[i] EndIf EndFor Dialog Title "Carico da modificare" DropDown "Carico n.",temp,i EndDlog If ok=0 Then Goto start EndIf string(load[i,2])p string(load[i,3])l If i=1 Then Dialog Title "Carico concentrato" Request "Valore [N]",p Request "Ascissa [m]",l EndDlog Else Dialog Title "Carico distribuito" Request "Valore [N/m]",p EndDlog EndIf If ok=1 Then [[i,expr(p),expr(l)]]load[i] EndIf Goto start Lbl blze 0ma:0mb:0mc 0va:0vb:0h ldim[1]l:ldim[2]f ldim[3]ac:ldim[4]jc If vinc=1 or vinc=2 Then For i,1,nl load[i,3]a load[i,2]p l-ab If load[i,1]=1 Then va+p*b/lva vb+p*(1-b/l)vb h+p*a/(2*f)h Else va+p*l/2va vb+p*l/2vb h+p*l^2/(8*f)h EndIf EndFor ElseIf vinc=3 Then For i,1,nl load[i,3]a load[i,2]p l-ab ¨(jc/ac)ic 5/4*(b/l+a*b^2/l^3)alfa 1/(1+15/8*(ic/f)^2)beta If load[i,1]=1 Then va+p*b/lva vb+p*(1-b/l)vb h+p*a*alfa*beta/(2*f)h If aœl/2 Then mc+vb*l/2-h*fmc Else mc+va*l/2-h*fmc EndIf Else va+p*l/2va vb+p*l/2vb h+p*l^2*beta/(8*f)h mc+p*l^2/8*(1-beta)mc EndIf EndFor ElseIf vinc=4 Then For i,1,nl load[i,3]a load[i,2]p l-ab ¨(jc/ac)ic a/lalfa:b/lbeta 45/4*(ic/f)^2Nu If load[i,1]=1 Then H+15/4*(P*a/f)*Alfa*Beta^2/(1+Nu)H {­P*a/2*Beta^2*(5*Beta-3)-2/3*H*f*Nu, ­P*b/2*Alfa^2*(5*Alfa-3)-2/3*H*f*Nu}Temp ma+Temp[1]ma mb+Temp[2]mb Va+(p*b-(Temp[1]-Temp[2]))/lVa Vb+(p*a+(Temp[1]-Temp[2]))/lVb If aœl/2 Then Mc+Temp[2]+(p*a+(Temp[1]-Temp[2]))/2 -f*15/4*(P*a/f)*Alfa*Beta^2/(1+Nu)Mc Else Mc+Temp[1]+(p*b-(Temp[1]-Temp[2]))/2 -f*15/4*(P*a/f)*Alfa*Beta^2/(1+Nu)Mc EndIf Else Va+p*l/2Va Vb+p*l/2Vb H+p*l^2/(8*f)/(1+Nu)H Ma-p*l^2/12*Nu/(1+Nu)Ma Mb-p*l^2/12*Nu/(1+Nu)Mb Mc+p*l^2/24*Nu/(1+Nu)Mc EndIf EndFor EndIf Dialog Title "Valori caratteristici" Text svinc[vinc] Text "Ma,Mb: "&string(Round(Ma))&", "&string(Round(Mb))&" N*m" Text "Mc: "&string(Round(Mc))&" N*m" Text "Va,Vb: "&String(Round(Va))&", "&string(vb)&" N" Text "H: "&String(H)&" N" EndDlog Goto start Lbl blzp "0"temp:0Mx:1y:0’ Dialog Title "Calcolo azioni interne" Request "Ascissa da B [m]",temp EndDlog If ok=0 Then Goto start EndIf expr(temp)x 4*f/L^2*(L*x-x^2)y tan´((L/2-x)/y)’ If vinc=1 or vinc=2 Then For i,1,NL load[i,2]p load[i,3]a L-ab If load[i,1]=1 Then if (L-x)ža Then Mx+(P*a/L)*x-(P*a/(2f))*yMx Else Mx+(P*b/L)*(L-x)-(P*a/(2f))*yMx EndIf Else Mx+(p*L/2)*x-(p*L^2/(8f))*y-p*x^2/2Mx EndIf EndFor ElseIf vinc=3 Then For i,1,NL load[i,2]P load[i,3]a L-ab ¨(Jc/Ac)ic 5/4*(b/L+a*b^2/L^3)Alfa 1/(1+15/8*(ic/f)^2)Beta If load[i,1]=1 Then If (L-x)>a Then Mx+(P*(a/L))*x-(P*a*Alfa*Beta/(2f))*y Mx Else Mx+(P*(b/L))*(L-x)-(P*a*Alfa*Beta/(2f))* yMx EndIf Else Mx+p*L/2*x-(p*L^2*Beta/(8f))*y-p*x^2/2 Mx EndIf EndFor ElseIf vinc=4 Then For i,1,NL load[i,2]P load[i,3]a L-ab ¨(jc/ac)ic a/lAlfa b/lBeta 45/4*(ic/f)^2Nu If load[i,1]=1 Then 15/4*(P*a/f)*Alfa*Beta^2/(1+Nu)H ­P*a/2*Beta^2*(5*Beta-3)-2/3*H*f*NuMa ­P*b/2*Alfa^2*(5*Alfa-3)-2/3*H*f*NuMb (p*b-(Ma-Mb))/lVa (p*a+(Ma-Mb))/lVb If (L-x)ža Then Mx+Mb+Vb*x-H*yMx Else Mx+Ma+Va*(L-x)-H*yMx EndIf Else Mx+(p*L^2/12*c0)+p*(L/2)^2- (p*L^2/(8f)*Beta)*f-p*l^2/8Mx EndIf EndFor EndIf Dialog Title "Momento in x="& string (Round(x)) &" m" Text "Mx: "&String(Round(Mx))&" N*m" EndDlog 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 oldmode setFold(#olddir) DispHome EndPrgm äåÜâ