**TI92P*mainS:6&4,S::V%x(RAccBull<Z<() Prgm Verifica di giunti bullonati in acciaio Local Vers,Data,Tit *********************** "Giunti bullonati in acciaio"Tit Autori: ing. P.Benetti : prof.A.Carotti "09/07/2005"Data " 1.0.4"Vers *********************** Global SFe,Fe,Fd,SClas,Clas,SDiam,Diam,x Global Sol,OldMode 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 Define ChooseFe()=Prgm PopUp SFe,Fe If ok=0 Then 0Fe Else Dialog Title "Caratteristiche di "& SFe[Fe] Text "Secondo il DM 9/1/96, per t40 mm" Text "f_d: "&String(Fd[Fe]) &" MPa" Text "f_d,V: "&String(round(Fd[Fe]/(3) ,2)) & " MPa" EndDlog EndIf EndPrgm Define ChooseCl()=Prgm Local Tmp ClasTmp PopUp matlist(SClas[1]),Clas If ok=0 Then TmpClas Else Dialog Title "Classe "& SClas[1,Clas] Text "Secondo il DM 9/1/96" Text "" Text "f_d,N: "&String(SClas[2,Clas]) &" MPa" Text "f_d,V: "& String(round(SClas[2,Clas]/(2) ,2)) & " MPa" EndDlog EndIf EndPrgm Define ChooseDi()=Prgm Restituisce 0 se viene premuto ESC Local Temp DiamTemp Dialog Title "Diametro bulloni" DropDown "in mm: ",SDiam,Temp EndDlog If ok=0 Then 0Diam Else TempDiam EndIf EndPrgm Inizio del programma***************** Local Rck,fcd,Temp,Calc,NewDat Local Sp,b,NF,Nb,NFil,i1,a,a1 Local Ti,Fi,ARes,Famm,Alfa,PMin Local e1,e2,k,Ji,iMax,HMax Local Verif,Fn,Ft,Mf,Ab Local e,Ec,m,SigC,Sigf,SigCR Local Veri_,DRos,DMin,tRMin,tRos,Eta Local MMax,q2,qm,Elle,Wx Local RTot,Area,SInf,Yg,Ix,SigS,TauM {"Fe 360","Fe 430","Fe 510"}SFe:1Fe {235,275,355}Fd ["4.6","5.6","6.8","8.8","10.9";240,300,360,560,700]SClas:1Clas {"= 12","= 14","= 16","= 18","= 20", "= 22","= 24","= 27"}SDiam 1Diam:0Sol 0Ti:0Fi:0ARes:0FAmm 25Rck:13fcd:0Temp:1Calc 0Sp:0b:1NF:0Nb:1NFil:0i1:0a:0a1 0Alfa:0PMin 0e1:0e2:0k:0Ji:0iMax:0HMax 0Fn:0Ft:0Mf ZLib\Splash(Tit,Vers,Data) Lbl Start PopUp {"Giunti a taglio","Squadrette", "Piastra di base","Esci"},Calc If Calc=1 Then Goto blcbt ElseIf Calc=2 Then Goto blcbs ElseIf Calc=3 Then Goto PiaIni ElseIf Calc=4 Then Goto blexit EndIf Goto Start ************************ Lbl blcbt Expr(right(SDiam[Diam],2))Fi ToolBar Title "File" Item "About...",blabout Item "Torna al menu",Start Title "Materiali" Item "Lamiere",cbt1 Item "Bulloni",cbt2 Title "Dimensioni" Item "Lamiere",cbt3 Item "Bulloni",cbt4 Title "Verifiche" Item "Inser. sollecit.",cbt5 Item "Taglio nei bulloni",cbt6 Item "Rifollamento",cbt7 Item "Taglio lamiera",cbt8 Item "Strappo lamiera",cbt9 EndTBar Goto blcbt Lbl cbt1 FeTemp ChooseFe() If TempFe Then 1NewDat EndIf Goto blcbt Lbl cbt2 ClasTemp ChooseCl() If TempClas Then 1NewDat EndIf Goto blcbt Lbl cbt3 {Sp,b,NF}Temp String(Sp)Sp String(b)b Dialog Title "Dimensioni lamiere in mm" Request "Spessore minimo",Sp Request "Larghezza minima",b DropDown "N. facce di contatto", {"Una","Due"},NF EndDlog If ok=0 Then Temp[1]Sp Temp[2]b Temp[3]NF Else Expr(Sp)Sp Expr(b)b 1NewDat EndIf Goto blcbt Lbl cbt4 DiamTemp ChooseDi() If Diam=0 Then TempDiam Goto blcbt EndIf If TempDiam Then 1NewDat EndIf {Nb,NFil,i1,a,a1}Temp String(Nb)Nb String(i1)i1 String(a)a String(a1)a1 Dialog Title "Disposizione bulloni "&SDiam[Diam] Request "Num. bulloni/fila",Nb DropDown "Numero di file",{"1","2"},NFil Request "Interasse [mm]",i1 Request "Distanza a [mm]",a Request "Distanza a1 [mm]",a1 EndDlog if ok=1 Then 1NewDat Expr(Nb)Nb Expr(i1)i1 Expr(a)a Expr(a1)a1 Else Temp[1]Nb Temp[2]NFil Temp[3]i1 Temp[4]a Temp[5]a1 EndIf Goto blcbt Lbl cbt5 FtTemp String (Ft)Ft Dialog Title "Sollecitazioni" Request "Forza agente [N]",Ft Text "(Convenz: positiva se trazione)" EndDlog If ok=0 Then TempFt Else Expr(Ft)Ft 1NewDat EndIf Goto blcbt Lbl cbt6 Ft/Nb/NFTi *Fi^2/4.ARes SClas[2,Clas]/(2.)*AResFAmm ZLib\Check(Ti,Famm)Verif Dialog Title "Verifica dei bulloni (udm: N)" Text "Forza su ogni bullone: " &String(Ti) Text "Forza di progetto: " &String(FAmm) Text "" Text Verif EndDlog Goto blcbt Lbl cbt7 Ft/Nb/NFilTi a/FiAlfa If Alfa>2.5 Then 2.5Alfa EndIf Alfa*Fd[Fe]*Fi*SpFamm ZLib\Check(Ti,Famm)Verif Dialog Title "Verifica al rifollamento" Text "Forza sulla lamiera: "&String(Ti)&" N" Text "Coeff. Alfa: "&String(Round(Alfa,3)) Text "Forza ammissibile: "&String(FAmm)&" N" Text "" Text Verif EndDlog Goto blcbt Lbl cbt8 Ft/NbTi NFil*((2.*a*(2)*Sp)-Fi)ARes Fd[Fe]/(3)*AResFamm ZLib\Check(Ti,Famm)Verif Dialog Title "Verifica a taglio lamiera" Text "Forza sulla lamiera: "&String(Ti) &" N" Text "Area di taglio: "&String (ARes)&" mm" Text "Forza ammissibile: "&String (FAmm)& " N" Text "" Text Verif EndDlog Goto blcbt Lbl cbt9 b-NFil*FiPMin PMinTemp String(PMin)PMin Dialog Title "Modificare il valore proposto" Text "Percorso minimo di strappo in mm" Request "depurato dei fori",PMin EndDlog If ok=0 Then TempPMin Goto blcbt Else Expr(PMin)PMin EndIf PMin*Sp*Fd[Fe]FAmm ZLib\Check (Ft/Nb,FAmm)Verif Dialog Title "Verifica a strappo lamiera" Text "Forza sulla lamiera: " &String(Ft/Nb) &" N" Text "Forza ammissibile: "&String(FAmm) &" N" Text "" Text Verif EndDlog Goto blcbt ***************************** Lbl blcbs Expr(right(SDiam[Diam],2))Fi (Nb-1)*i1iMax ToolBar Title "File" Item "About...",blabout Item "Torna al menu",Start Title "Materiali" Item "Lamiere",cbs1 Item "Bulloni",cbs2 Title "Dimensioni" Item "Lamiere",cbs3 Item "Bulloni",cbs4 Title "Verifiche" Item "Inser. sollecit.",cbs5 Item "Taglio nei bulloni",cbs6 Item "Fless. squadrette",cbs7 Item "Dimens. squadrette",cbs8 Item "Rifollamento",cbs9 EndTBar Goto blcbs Lbl cbs1 FeTemp ChooseFe() If TempFe Then 1NewDat EndIf Goto blcbs Lbl cbs2 ClasTemp ChooseCl() If TempClas Then 1NewDat EndIf Goto blcbs Lbl cbs3 {Sp,e1,e2}Temp String(Sp)Sp String(e1)e1 String(e2)e2 Dialog Title "Dimensioni lamiere in mm" Request "Spess. trave sec.",Sp Request "Eccentricit e1",e1 Request "Eccentricit e2",e2 EndDlog If ok=0 Then Temp[1]Sp Temp[2]e1 Temp[3]e2 Else Expr(Sp)Sp Expr(e1)e1 Expr(e2)e2 1NewDat EndIf Goto blcbs Lbl cbs4 DiamTemp ChooseDi() If Diam=0 Then TempDiam Goto blcbs EndIf If TempDiam Then 1NewDat EndIf {Nb,Nfil,i1,a,a1}Temp String(Nb)Nb String(i1)i1 String(a)a String(a1)a1 Dialog Title "Disposizione bulloni "&SDiam[Diam] Request "N. bulloni / fila",Nb DropDown "Numero di file",{"1","2"},NFil Request "Interasse [mm]",i1 Request "Distanza a [mm]",a Request "Distanza a1 [mm]",a1 EndDlog if ok=1 Then 1NewDat Expr(Nb)Nb Expr(i1)i1 Expr(a)a Expr(a1)a1 Else Temp[1]Nb Temp[2]NFil Temp[3]i1 Temp[4]a Temp[5]a1 EndIf Goto blcbs Lbl cbs5 FtTemp String (Ft)Ft Dialog Title "Sollecitazioni" Request "Taglio agente [N]",Ft Text "(Convenz: positivo verso il basso)" EndDlog If ok=0 Then TempFt Else Expr(Ft)Ft 1NewDat EndIf Goto blcbs Lbl cbs6 If Nb=0 Then Goto blcbs EndIf 0Ji For k,1,Nb Ji+(iMax/2-(k-1)*i1)^2Ji EndFor Ft*e1/(2.*Nfil)*iMax/JiHMax ((Ft/(Nb*NFil))^2+HMax^2)/2Ti abs(tan(Ft/(Nb*NFil)/HMax))Alfa *Fi^2/4.ARes SClas[2,Clas]/(2.)*AResFAmm ZLib\Check(Ti,Famm)Verif Dialog Title "Verifica dei bulloni (udm: N)" Text "H_Max: "&String(HMax) Text "Forza max sui bulloni: " &String(Ti) Text "Inclinazione: "&String(Alfa*180./) &" " Text "Forza di progetto: " &String(FAmm) Text "" Text Verif EndDlog Goto blcbs Lbl cbs7 If Nb=0 OR Sp=0 Then Goto blcbs EndIf 0Ji For k,1,Nb Ji-(iMax/2-(k-1)*i1)^2Ji EndFor 2.*Sp*((iMax+2*a)^3/12-Nb*Fi^3/12-FI*Ji)Ji Ft*e1/Ji*(iMax+2*a)/2HMax 2*Sp*((iMax+2*a)-Nb*Fi)ARes (HMax^2+3*(Ft/ARes)^2)Ti Fd[Fe]FAmm Zlib\Check(Ti,Famm)Verif Dialog Title"Verifica a flessione squadrette" Text "_max: "&String(HMax) &" MPa" Text "_med: "&String(round(Ft/ARes)) &" MPa" Text "_id : "&String(Ti) &" MPa" Text "f_d : "&String(FAmm) &" MPa" Text Verif EndDlog Goto blcbs Lbl cbs8 Dialog Title "Verificare manualmente" Text String(3*FI) &"mm interasse " & String(10*FI)&" mm" Text String(2*FI) &" mm a,a1 " & String(3*FI) &" mm" EndDlog Goto blcbs Lbl cbs9 If Nb=0 Then Goto blcbs EndIf 0Ji For k,1,Nb Ji+(iMax/2-(k-1)*i1)^2Ji EndFor Ft*e1/(2.*NFil)*iMax/JiHMax ((Ft/(Nb*NFil))^2+HMax^2)/2Ti 2.5*Fd[Fe]*Fi*SpFamm ZLib\Check (Ti,Famm)Verif Dialog Title "Rifollamento anima tr sec." Text "Forza di rifoll.: "&String(Ti)&" N" Text "Forza di progetto: "&String(FAmm)& " N" Text "" Text Verif EndDlog Goto blcbs *********************** Lbl PiaIni Local bCol,hCol,bPia,hPia,sPia,hBul Local bNerI,hNerI,sNerI,bNerS,hNerS,sNerS 0bCol:0hCol:0bPia:0hPia:0sPia 0bNerI:0hNerI:0sNerI 0bNerS:0hNerS:0sNerS 0hBul:""Verif 0Fn:0Ft:0Mf 0Ab:2.Nb:0DRos:0Sigf:0SigC 0DMin:0tRMin:0tRos 0MMax:0q2:0qm:0Elle:0Wx 0RTot:0Area:0SInf:0Yg:0Ix:0SigS 0TauM Lbl PiaBa 0.83*Rck/1.6fcd Expr(right(SDiam[Diam],2))Fi Toolbar Title "File" Item "About...",blabout Item "Torna al menu",Start Title "Materiali" Item "Calcestruzzo",blmc Item "Lamiere",blml Item "Bulloni",blmb Title "Dimensioni" Item "Colonna",bldc Item "Piastra di base",bldp Item "Nervature",bldn Item "Bulloni",bldb Title "Azioni" Item "Inserisci/modifica",blai Title "Verifiche" Item "Taglio",blvt Item "Presso-flessione",blvp Item "Rosette",blvr Item "Piastra",blvs Item "Nervature",blvn EndTBar Goto PiaBa Lbl blmc RckTemp String(Rck)Rck Dialog Title "Resistenza caratt. cls" Request "Rck [MPa]",Rck EndDlog If ok=0 Then TempRck Goto PiaBa EndIf Expr(Rck)Rck 0.83*Rck/1.6fcd Dialog Title "Resistenza di progetto (DM 9/1/96)" Text "fcd: "&String(fcd) &" MPa" EndDlog Goto PiaBa Lbl blml FeTemp ChooseFe() If Fe=0 Then TempFe EndIf Goto PiaBa Lbl blmb ClasTemp ChooseCl() If Clas=0 Then TempClas EndIf Goto PiaBa Lbl bldc {bCol,hCol}Temp String(hCol)hCol String(bCol)bCol Dialog Title "Dimensioni colonna (in mm)" Request "Altezza",hCol Request "Larghezza",bCol EndDlog If ok=0 Then Temp[1]bCol Temp[2]hCol Else Expr(bCol)bCol Expr(hCol)hCol EndIf Goto PiaBa Lbl bldp {bPia,hPia,sPia}Temp String(bPia)bPia String(hPia)hPia String(sPia)sPia Dialog Title "Dimensioni piastra di base (mm)" Request "Altezza",hPia Request "Larghezza",bPia Request "Spessore",sPia EndDlog If ok=0 Then Temp[1]bPia Temp[2]hPia Temp[3]sPia Else Expr(bPia)bPia Expr(hPia)hPia Expr(sPia)sPia EndIf Goto PiaBa Lbl bldn If bNerI=0 Then bPiabNerI EndIf {bNerI,hNerI,sNerI}Temp String(bNerI)bNerI String(hNerI)hNerI String(sNerI)sNerI Dialog Title "Nervatura inferiore" Request "Larghezza",bNerI Request "Profondit",hNerI Request "Spessore",sNerI EndDlog If Ok=0 Then Temp[1]bNerI Temp[2]hNerI Temp[3]sNerI Goto PiaBa Else Expr(bNerI)bNerI Expr(hNerI)hNerI Expr(sNerI)sNerI EndIf {bNerS,hNerS,sNerS}Temp String(bNerS)bNerS String(hNerS)hNerS String(sNerS)sNerS Dialog Title "Nervature superiori" Request "Lunghezza",bNerS Request "Altezza",hNerS Request "Spessore",sNerS EndDlog If ok=0 Then Temp[1]bNerS Temp[2]hNerS Temp[3]sNerS Else Expr(bNerS)bNerS Expr(hNerS)hNerS Expr(sNerS)sNerS EndIf Goto PiaBa Lbl bldb DiamTemp ChooseDi() If Diam=0 Then TempDiam Goto PiaBa EndIf Expr(right(SDiam[Diam],2))Fi *Fi^2/4Ab 0.75*AbARes {hBul,ARes}Temp String(hBul)hBul String(ARes)ARes Dialog Title "4 bulloni tirafondo" Text "Area gambo: " &String(Round(Ab,2))&" mm" Request "Area resist.[mm]",ARes Text "Distanza dal baric. della colonna" Request "in mm",hBul EndDlog If ok=0 Then Temp[1]hBul Temp[2]ARes Else Expr(hBul)hBul Expr(ARes)ARes EndIf Goto PiaBa Lbl blai {Fn,Ft,Mf}Temp String(Fn)Fn String(Ft)Ft String(Mf)Mf Dialog Title "Azioni sulla piastra [N e mm]" Request "Az. assiale",Fn Request "Taglio",Ft Request "Mom. flettente",Mf Text "Segni: convenzioni della tdc" EndDlog If ok=0 Then Temp[1]Fn Temp[2]Ft Temp[3]Mf Else Expr(Fn)Fn Expr(Ft)Ft Expr(Mf)Mf EndIf Goto PiaBa Lbl blvt Ft/(bNerI*hNerI)Ti ZLib\Check(Ti,Fcd)Verif Dialog Title "Verifica al taglio - Nerv.Inf." Text " laterale: "&String(Round(Ti,2))&" MPa" Text "_amm = f_cd: "&String(fcd)&" MPa" Text "" Text Verif EndDlog Goto PiaBa Lbl blvp Mf/Fne 5700*(Rck)Ec 206000/Ecm 15.m DelVar x Solve(x^3+3*(e-hPia/2)*x^2+6*m*Nb*ARes/bPia*(e+hBul)*(x-(hPia/2+hBul))=0,x)|x>0Sol Disp "Sol",Sol:Pause x|Solx Fn/(bPia*x/2.-m*(hPia/2+hBul-x)*Nb*ARes/x)SigC SigC*m/x*(hPia/2.+hBul-x)Sigf ZLib\Check(SigC,0.7*fcd)Verif ZLib\Check(Sigf,SClas[2,Clas])Veri_ Dialog Title "Verifica a pressoflessione" Text "Asse neutro: " & String(x) &" mm" Text "_c: "&String(SigC)&" MPa" Text Verif Text "_bul: "&String(Sigf)&" MPa" Text Veri_ EndDlog Goto PiaBa Lbl blvr If x=0 Then Text "Trovare prima l'asse neutro" Goto PiaBa EndIf DRosTemp (FI^2+(1.82*Sigf*ARes)/fcd)DMin If DRos