**TI92P*mainR:6&40fR::V%aRcorrigCZCH() Prgm Corpo rigido isostatico Local Tit,Vers,Data *********************** Autori: ing. P.Benetti : prof.A.Carotti "Corpo rigido isostatico"Tit "02/07/2005"Data " 1.0.5"Vers *********************** 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 DrAste Define DrAste()=Prgm Local i,xf,yf,xi,yi For i,1,NA Nodi[Aste[i,1],1]xi Nodi[Aste[i,1],2]yi Nodi[Aste[i,2],1]xf Nodi[Aste[i,2],2]yf Line xi,yi,xf,yf EndFor EndPrgm Define DrVinc(Tipo,xv,yv,Ang)=Prgm Local ScDim, ScGr, ScEx 3*ScaleScDim 5*ScaleScGr If Tipo=1 Then If Ang=0 Then zLib\Triangle(xv,yv,xv-ScDim,yv-ScDim, xv+ScDim,yv-ScDim,1) Line xv-ScGr,yv-ScGr,xv+ScGr,yv-ScGr ElseIf Ang=/4 OR Ang=3/4 Then 4*ScaleScDim 6*ScaleScGr If Ang=/4 Then zlib\Triangle(xv,yv,xv,yv-ScDim, xv+ScDim,yv,1) Line xv,yv-ScGr,xv+ScGr,yv Else zLib\Triangle(xv,yv,xv,yv-ScDim, xv-ScDim,yv,1) Line xv,yv-ScGr,xv-ScGr,yv EndIf ElseIf abs(Ang)=/2 Then zLib\Triangle(xv,yv,xv+ScDim,yv-ScDim, xv+ScDim,yv+ScDim,1) Line xv+ScGr,yv-ScGr,xv+ScGr,yv+ScGr EndIf ElseIf Tipo=2 Then ZLib\Cross(xv,yv,ScGr) ZLib\Circ(xv,yv,ScGr/2,0) ElseIf Tipo=3 Then 1*ScaleScEx 4*ScaleScGr If Ang=0 Then PtOn xv,yv-ScEx Line xv-ScDim,yv-2*ScEx,xv+ScDim, yv-2*ScEx PtOn xv-ScDim-ScEx,yv-ScEx PtOn xv+ScDim+ScEx,yv-ScEx Line xv-ScDim,yv-ScGr,xv+ScDim,yv-ScGr ElseIf Ang=/4 OR Ang =3/4 Then 5*ScaleScGr If Ang=/4 Then PtOn xv+ScEx,yv-ScEx Line xv,yv-ScDim,xv+ScDim, yv PtOn xv-ScEx,yv-ScDim PtOn xv+ScDim,yv+ScEx Line xv,yv-ScGr,xv+ScGr,yv Else PtOn xv-ScEx,yv-ScEx Line xv-ScDim,yv,xv,yv-ScDim PtOn xv-ScDim,yv+ScEx PtOn xv+ScEx,yv-ScDim Line xv-ScGr,yv,xv,yv-ScGr EndIf ElseIf Ang=/2 Then PtOn xv+ScEx,yv Line xv+2*ScEx,yv-ScDim,xv+2*ScEx, yv+ScDim PtOn xv+ScEx,yv-ScDim-ScEx PtOn xv+ScEx,yv+ScDim+ScEx Line xv+ScGr,yv-ScDim,xv+ScGr,yv+ScDim EndIf ElseIf Tipo=4 Then Line xv+ScDim,yv-ScDim,xv+ScDim,yv+ScDim Line xv+ScDim,yv+ScDim,xv-ScDim,yv+ScDim Line xv-ScDim,yv-ScDim,xv+ScGr,yv-ScDim Line xv-ScDim,yv-ScDim,xv-ScDim,xv+ScGr EndIf EndPrgm Define RSolve()=Prgm Local i,Curr,Asta,Alfa,Tipo Local xp,yp,P1,P2 Local Csi,DCsi 0Curr:[0;0;0]MKL For i,1,NV Vinc[i,1]Tipo Vinc[i,2]Asta Vinc[i,3]Csi Vinc[i,4]Alfa Findxy(Vinc[1,2],Vinc[1,3],0) xstxp:ystyp Findxy(Asta,Csi,0) If Tipo=1 Then Curr+1Curr sin(Alfa)MK[1,Curr] cos(Alfa)MK[2,Curr] If i>1 Then MK[2,Curr]*(xst-xp)-MK[1,Curr]*(yst-yp) MK[3,Curr] EndIf ElseIf Tipo=2 Then Curr+2Curr 1MK[1,Curr-1] 1MK[2,Curr] if i>1 Then MK[1,Curr-1]*(yst-yp)MK[3,Curr-1] MK[2,Curr]*(xst-xp)MK[3,Curr] EndIf ElseIf Tipo=3 Then Curr+2Curr sin(Alfa)MK[1,Curr-1] cos(Alfa)MK[2,Curr-1] If i>1 Then MK[2,Curr-1]*(xst-xp)-MK[1,Curr-1]* (yst-yp)MK[3,Curr-1] EndIf 1MK[3,Curr] ElseIf Tipo=4 Then Curr+3Curr 1MK[1,1] 1MK[2,2] 1MK[3,3] EndIf EndFor For i,1,NL Load[i,2]Asta Load[i,3]Csi Load[i,5]P1 L_Beta(Asta) BetaAlfa Findxy(Vinc[1,2],Vinc[1,3],0) xstxp:ystyp If Load[i,1]=1 Then If Load[i,6]=2 Then Alfa+/2Alfa EndIf MKL[1]-P1*cos(Alfa)MKL[1] MKL[2]-P1*sin(Alfa)MKL[2] Findxy(Asta,Csi,0) if xstxp OR ystyp Then MKL[3]+P1*cos(Alfa)*(yst-yp)- P1*sin(Alfa)*(xst-xp)MKL[3] EndIf ElseIf Load[i,1]=2 Then MKL[3]-P1MKL[3] ElseIf Load[i,1]=3 Then Alfa+/2Alfa Load[i,4]DCsi (Load[i,5]+Load[i,6])/2P1 (Load[i,6]-Load[i,5])/2P2 MKL[1]-P1*DCsi*cos(Alfa)MKL[1] MKL[2]-P1*DCsi*sin(Alfa)MKL[2] Findxy(Asta,Csi,DCsi) if xstxp OR ystyp Then MKL[3]+(P1*DCsi*cos(Alfa))*(yst-yp)- (P1*DCsi*sin(Alfa))*(xst-xp)MKL[3] EndIf MKL[3]-P2*DCsi^2/3MKL[3] EndIf EndFor 1Run EndPrgm Define AZSolve()=Prgm Local i,j,k,Curr,Asta,Tipo,Alfa,Gam Local Csi,nCsi,Delta,xp,yp Local DCsi,P1,P2,Ext,DP,Pq1,Pq2,n1,n2 NewMat(NA,Discr+1)FN NewMat(NA,Discr+1)FT NewMat(NA,Discr+1)MF 0Curr 1/Discr*100Delta For i,1,NV Vinc[i,1]Tipo Vinc[i,2]Asta Vinc[i,3]Csi Vinc[i,4]Alfa L_Beta(Asta):BetaGam int(round(Csi/Delta+0.49,0)+1)nCsi Findxy(Asta,Csi,0) xstxp:ystyp Findxy(Asta,(nCsi-1)*Delta,0) ((yst-yp)^2+(xst-xp)^2)DCsi If Tipo=1 Then Curr+1Curr FN[Asta,nCsi]+RV[Curr,1]*sin(Alfa-Gam) FN[Asta,nCsi] FT[Asta,nCsi]+RV[Curr,1]*cos(Alfa-Gam) FT[Asta,nCsi] MF[Asta,nCsi]+RV[Curr,1]*cos(Alfa-Gam)* DCsiMF[Asta,nCsi] ElseIf Tipo=2 Then Curr+2Curr FN[Asta,nCsi]-RV[Curr-1,1]*cos(Gam)- RV[Curr,1]*sin(Gam)FN[Asta,nCsi] FT[Asta,nCsi]-RV[Curr-1,1]*sin(Gam)+ RV[Curr,1]*cos(Gam)FT[Asta,nCsi] MF[Asta,nCsi]+(RV[Curr,1]*cos(Gam)- RV[Curr-1,1]*sin(Gam))*DCsiMF[Asta,nCsi] ElseIf Tipo=3 Then Curr+2Curr FN[Asta,nCsi]+RV[Curr-1,1]*sin(Alfa-Gam) FN[Asta,nCsi] FT[Asta,nCsi]+RV[Curr-1,1]*cos(Alfa-Gam) FT[Asta,nCsi] MF[Asta,nCsi]+RV[Curr-1,1]*cos(Alfa-Gam) *DCsi-RV[Curr,1]MF[Asta,nCsi] Else Curr+3Curr FN[Asta,nCsi]-RV[Curr-2,1]*cos(Gam)- RV[Curr-1,1]*sin(Gam)FN[Asta,nCsi] FT[Asta,nCsi]-RV[Curr-2,1]*sin(Gam)+ RV[Curr-1,1]*cos(Gam)FT[Asta,nCsi] MF[Asta,nCsi]+(RV[Curr-1,1]*cos(Gam)- RV[Curr-2,1]*sin(Gam))*DCsi-RV[Curr,1] MF[Asta,nCsi] EndIf EndFor For i,1,NL Load[i,1]Tipo Load[i,2]Asta Load[i,3]Csi Load[i,5]P1 L_Beta(Asta):BetaGam int(round(Csi/Delta+0.49,0)+1)nCsi Findxy(Asta,Csi,0) xstxp:ystyp If Tipo=1 Then Findxy(Asta,(nCsi-1)*Delta,0) ((yst-yp)^2+(xst-xp)^2)DCsi Gam+(/2*(Load[i,6]-1))Alfa FN[Asta,nCsi]-P1*cos(Alfa-Gam) FN[Asta,nCsi] FT[Asta,nCsi]+P1*sin(Alfa-Gam) FT[Asta,nCsi] MF[Asta,nCsi]+P1*sin(alfa-Gam)*DCsi MF[Asta,nCsi] ElseIf Tipo=2 Then MF[Asta,nCsi]-P1MF[Asta,nCsi] Else Gam+/2Gam Load[i,4]Ext Load[i,6]P2 Ext/Lung*100Ext:Lung (P2-P1)/ExtDP nCsin1 round(Csi+Ext/Delta+0.49,0)+1n2 For j,n1,n2 (nCsi-1)*Delta-CsiDcsi P1+DP*DCsiP2 (P2+P1)/2PQ1 (P2-P1)/2PQ2 FT[Asta,j]+PQ1*(DCsi*Lung/100) FT[Asta,j] MF[Asta,j]+(DCsi*Lung/100)^2/6* (3*PQ1-PQ2)MF[Asta,j] (nCsi-1)*DeltaCsi P2P1 If nCsi+1>n2 Then n2nCsi Else nCsi+1nCsi EndIf EndFor EndIf EndFor Assemblaggio forze nodali Local NT1,NT2,A1,A2 NewMat(2,2)A1 NewMat(2,2)A2 NewMat(2,1)NT1 NewMat(2,1)NT2 For Asta,1,NA For j,1,Asta-1 For k,1,2 if Aste[Asta,1]=Aste[j,k] Then L_Beta(Asta) [cos(Beta),sin(Beta);sin(Beta), cos(Beta)]A2 L_Beta(j) [cos(Beta),sin(Beta);sin(Beta), cos(Beta)]A1 [FN[j,Discr+1];FT[j,Discr+1]] NT1 A2*A1*NT1NT2 NT2[1,1]+FN[Asta,1]FN[Asta,1] NT2[2,1]+FT[Asta,1]FT[Asta,1] MF[j,Discr+1]+MF[Asta,1]MF[Asta,1] EndIf EndFor EndFor L_Beta(Asta) For i,2,Discr+1 FN[Asta,i-1]+FN[Asta,i]FN[Asta,i] FT[Asta,i-1]+FT[Asta,i]FT[Asta,i] MF[Asta,i-1]+MF[Asta,i]+FT[Asta,i-1]* Delta/100*LungMF[Asta,i] EndFor EndFor EndPrgm Inizio del programma***************** Local Curr,i,j,Temp Local StAng,Alfa,Csi,Marg,PlMrg Local Asta,a,b,c,Delta,CoAng,xst1,yst1 Local Nodo1,Nodo2 Local Spc Define L_Beta(Asta)=Prgm Var.Glob: Lung,Beta Local Temp NewMat(2,2)Temp Nodi[Aste[Asta,1],1]Temp[1,1] Nodi[Aste[Asta,1],2]Temp[1,2] Nodi[Aste[Asta,2],1]Temp[2,1] Nodi[Aste[Asta,2],2]Temp[2,2] If Temp[2,1]=Temp[1,1] Then abs(Temp[2,2]-Temp[1,2])Lung If Temp[2,2]>Temp[1,2] Then /2Beta Else /2Beta EndIf ElseIf Temp[1,2]=Temp[2,2] Then abs(Temp[2,1]-Temp[1,1])Lung If Temp[2,1]>Temp[1,1] Then 0Beta Else Beta EndIf Else ((Temp[2,1]-Temp[1,1])^2 + (Temp[2,2]-Temp[1,2])^2)Lung tan((Temp[2,2]-Temp[1,2]) / (Temp[2,1]-Temp[1,1]))Beta EndIf EndPrgm Define Findxy(Asta,Csi,DCs)=Prgm Local Temp NewMat(1,2)Temp Nodi[Aste[Asta,1],1]Temp[1,1] Nodi[Aste[Asta,1],2]Temp[1,2] L_Beta(Asta) Temp[1,1]+(Csi/100*Lung+Dcs/2)*cos(Beta) xst Temp[1,2]+(Csi/100*Lung+DCs/2)*sin(Beta) yst EndPrgm Define Plot(AMrg,Az)=Prgm Local i,j,AzMax,PlSc Local xgo,ygo,xL,yL,xG,yG 0AzMax For i,1,NA For j,1,Discr+1 if abs(Az[i,j])>AzMax Then abs(Az[i,j])AzMax EndIf EndFor EndFor If AzMax=0 Then 1PlSc Else AzMax/(0.9*AMrg*Scale)PlSc EndIf For i,1,NA L_Beta(i) Nodi[Aste[i,1],1]xgo Nodi[Aste[i,1],2]ygo For j,1,Discr+1 Lung/Discr*(j-1)xL Az[i,j]/PlScyL xgo+xL*cos(Beta)+yL*sin(Beta)xG ygo+xL*sin(Beta)-yl*cos(Beta)yG PtOn xG,yG EndFor EndFor EndPrgm NewMat(1,2)Nodi NewMat(1,2)Aste NewMat(1,4)Vinc NewMat(1,6)Load NewMat(3,3)MK NewMat(3,1)MKL NewMat(3,1)RV 0i:0Curr 0Lung:0Alfa:0Beta 0NN:0NA:0NV:0NGDLV:0NL 0Scale:0Run:0xst:0yst 5Marg:15PlMrg:30Discr {"carrello","cerniera","pattino","incastro"}TVin {"0","/4","/2","3/4"}StAng {"F conc","Coppia","Carico dist"}TCar 0FN:0FT:0MF ZLib\Splash (Tit,Vers,Data) Lbl start Toolbar Title "File" Item "About...",blabout Item "Esci",blexit Title "Nodi" Item "Aggiungi",blna Item "Visualizza",blnv Item "Modifica",blnm Item "Disegna",blDN Title "Aste" Item "Inserisci",blast Item "Modifica",blam Title "Vincoli" Item "Inserisci",blVin Item "Disegna",blDV Title "Azioni" Item "Inserisci",blaz Item "Disegna",bldaz Title "Soluzione" Item "Reaz. vincolari",blrv Item "Momento flettente",blmf Item "Taglio",bltg Item "Azione assiale",blas EndTBar Goto Start Lbl blna If NN=0 Then 1curr Else nnCurr EndIf string(nodi[curr,1])xst string(nodi[curr,2])yst Dialog Title "Coordinate del nodo: "&string(nn+1) Request "Ascissa ",xst Request "Ordinata",yst EndDlog If ok=1 Then nn+1nn expr(xst)xst expr(yst)yst If NN=1 Then [[xst,yst]]nodi Else augment(nodi;[[xst,yst]])nodi EndIf 0Run Goto blDN EndIf Goto start Lbl blnv If NN>0 Then For Curr,1,nn Dialog Title "Nodo: "&string(curr) &" su " &string(nn) Text "Ascissa : "&string(nodi[curr,1]) Text "Ordinata: "&string(nodi[curr,2]) EndDlog If ok=0 Then Exit EndIf EndFor EndIf Goto start Lbl blnm if NN>0 Then newList(nn)Temp For i,1,nn string(i)Temp[i] EndFor 1Curr Dialog Title "Modifica di un nodo" DropDown "Num. nodo:",temp,Curr EndDlog 0Temp If ok=0 Then Goto start EndIf string(nodi[Curr,1])xst string(nodi[Curr,2])yst Dialog Title "Coordinate del Nodo: "&string(Curr) Request "Ascissa ",xst Request "Ordinata",yst EndDlog If ok=1 Then expr(xst)xst expr(yst)yst [[xst,yst]]nodi[Curr] 0Run Goto blDN EndIf EndIf Goto start Lbl blDN [[0,0][0,0]]MinMax For i,1,NN ZLib\ext(Nodi[i,1],Nodi[i,2]) EndFor ZLib\setscr(Marg) ClrDraw For i,1,NN ZLib\cross(Nodi[i,1],Nodi[i,2],5) PtText String(i),Nodi[i,1]+Scale, Nodi[i,2]-Scale EndFor Goto Start Lbl blast If nn1 Then Text "Inserire prima almeno due nodi" Goto start EndIf If na=0 Then 1Curr Else NaCurr EndIf Seq(String(i),i,1,nn)temp string(aste[curr,1])xst string(aste[curr,2])yst Dialog Title "Estremi dell'asta: "&string(na+1) DropDown "1 nodo:",temp,xst DropDown "2 nodo:",temp,yst EndDlog DelVar temp If ok=1 Then na+1na naCurr If na=1 Then [xst,yst]aste Else augment(aste;[xst,yst])aste EndIf 0Run ZLib\SetScr(Marg) ClrDraw DrAste() EndIf Goto start Lbl blam If Na<1 Then Text "Prima immetti almeno un'asta" Goto start EndIf 1curr Seq(String(i),i,1,Na)Temp Dialog Title "Modifica di un'asta" DropDown "Num. asta:",Temp,Curr EndDlog DelVar temp If ok=0 Then Goto Start EndIf Seq(String(i),i,1,nn)temp aste[curr,1]xst aste[curr,2]yst Dialog Title "Coordinate del nodo:"&string(curr) DropDown"Num 1o nodo:",Temp,xst DropDown"Num 2o nodo:",Temp,yst EndDlog If ok=1 Then [[xst,yst]]aste[curr] 0Run ZLib\SetScr(Marg) ClrDraw DrAste() EndIf Goto start Lbl blVin If NA<1 Then Text "Prima immetti almeno un'asta" Goto start EndIf if NGDLV3 Then Dialog Title "Attenzione" Text "Non ti sembra di esagerare?" Text "Hai gi inserito 3 gradi di" Text "vincolo" EndDlog Goto Start EndIf Seq(String(i),i,1,Na)temp "0"Csi:0Alfa Dialog Title "Immissione del Vincolo " & String(NV+1) DropDown "Tipo:",TVin,xst DropDown "Num. asta:",temp,yst Request "Ascissa (%)",Csi DropDown "Inclinaz.(sist.ass.):", StAng, Alfa EndDlog if ok=1 Then if xst=1 Then NGDLV+1NGDLV ElseIf (xst=2 OR xst=3) Then If NGDLV2 Then Text"Troppi vincoli,ripetere" Goto Start EndIf NGDLV+2NGDLV ElseIf xst=4 Then If NGDLV1 Then Text"Troppi vincoli,ripetere" Goto Start EndIf NGDLV+3NGDLV EndIf NV+1NV If (NV=1) Then [[xst,yst,Expr(Csi),Expr(StAng[Alfa]) ]]Vinc Else augment(Vinc;[[xst,yst,Expr(Csi), Expr(StAng[Alfa])]] )Vinc EndIf 0Run Goto blDV EndIf Goto Start Lbl blDV ClrDraw DrAste() For i,1,NV Findxy(Vinc[i,2],Vinc[i,3],0) DrVinc(Vinc[i,1],xst,yst,Vinc[i,4]) EndFor Goto Start Lbl blaz If Na>0 Then 1yst Seq(String(i),i,1,Na)temp Dialog Title "Immiss. carico num." &String(NL+1) DropDown "Asta:",Temp,Curr DropDown "Tipo di carico",TCar,yst EndDlog If ok=0 Then:Goto Start:EndIf "0"VL:"0"DCsi "0"xst:"0"Csi If yst=1 Then Dialog Title "Forza concentrata su asta " &String(Curr) Request "Ascissa (%)",Csi Request "Valore",VL DropDown "Inclin. rispetto asta:", {"Parall.", "Perpen."},xst EndDlog ElseIf yst=2 Then Dialog Title "Coppia su asta " &String(Curr) Request "Ascissa (%)",Csi Request "Valore",VL EndDlog 0xst ElseIf yst=3 Then Dialog Title "Car.distr. su asta " &String(Curr) Request "Ascissa iniz./L (%)",Csi Request "Estensione",DCsi Request "Valore iniz.",VL Request "Valore fin. ",xst EndDlog Expr(xst)xst EndIf if ok=1 Then NL+1NL if NL>1 Then Augment(Load;[yst,Curr,Expr(Csi), Expr(DCsi),Expr(VL),xst])Load Else [yst,Curr,Expr(Csi),Expr(DCsi),Expr(VL), xst]Load EndIf 0Run EndIf DelVar VL DelVar DCsi Goto bldaz EndIf Goto Start Lbl bldaz ClrDraw DrAste() For i,1,NL Load[i,2]Asta Load[i,3]Csi If Load[i,1]=1 Then FindXY(Asta,Csi,0) L_Beta(Asta) If Load[i,6]=1 Then tan(Beta)CoAng If Beta=0 OR Beta= Then 0CoAng EndIf ElseIf Load[i,6]=2 Then 1/Tan(Beta)CoAng If Beta=/2 OR Beta=3/2 Then 0CoAng EndIf EndIf 1a 2*xstb xst^2-(20*Scale)^2/(1+CoAng^2)c b^2-4*a*cDelta ZLib\cross(xst,yst,3) If CoAng=undef Then Aste[Asta,1]Nodo1 Aste[Asta,2]Nodo2 Forza verticale If Load[i,6]=1 Then If Nodi[Nodo1,2]/2 AND Beta OR Beta<0 Then (b+(Delta))/(2*a)xst1 EndIf yst+CoAng*(xst1-xst)yst1 ZLib\Arrow(xst,yst,xst1,yst1,0,Scale) EndIf ElseIf Load[i,1]=2 Then Coppia concentrata FindXY(Asta,Csi,0) Abs(Load[i,5])/Load[i,5]Temp ZLib\cross(xst,yst,3) ZLib\Arrow(xst,yst-10*Scale,xst,yst+10* Scale,Temp*5*Scale,Scale) Else Car. distribuiti: non disegnati FindXY(Asta,Csi,0) EndIf EndFor Goto Start Lbl blrv If Run=0 Then:RSolve():EndIf If det(MK)=0 Then Text"Matrice singolare" Goto Bldv Else " "Spc NewList(3)Temp MK^1*MKLRV Disp "Matrice reaz. vinc.",RV:Pause 1j For i,1,NV If Vinc[i,1]=1 Then " "&String(j)&Spc&String(Vinc[i,2])& Spc&"1"&Spc&String(RV[j,1])Temp[j] j+1j ElseIf Vinc[i,1]=2 Then " "&String(j)&Spc&String(Vinc[i,2])& Spc&"1"&Spc&String(RV[j,1])Temp[j] " "&String(j+1)&Spc&String(Vinc[i,2]) &Spc&"2"&Spc&String(RV[j+1,1])Temp[j+1] j+2j ElseIf Vinc[i,1]=3 Then " "&String(j)&Spc&String(Vinc[i,2]) &Spc&"1"&Spc&String(RV[j,1])Temp[j] " "&String(j+1)&Spc&String(Vinc[i,2]) &Spc&"3"&Spc&String(RV[j+1,1])Temp[j+1] j+2j ElseIf Vinc[i,1]=4 Then " "&String(j)&Spc&String(Vinc[i,2])& Spc&"1"&Spc&String(RV[j,1])Temp[j] " "&String(j+1)&Spc&String(Vinc[i,2]) &Spc&"2"&Spc&String(RV[j+1,1])Temp[j+1] " "&String(j+2)&Spc&String(Vinc[i,2]) &Spc&"3"&Spc&String(RV[j+2,1])Temp[j+2] j+3j EndIf EndFor Dialog Title "Reazioni vincolari" Text "Vinc Asta Dir. Valore" Text Temp[1] Text Temp[2] Text Temp[3] EndDlog ClrIo Output 30,35,"** Working... **" AZSolve() ClrIo EndIf Goto Start Lbl blmf ZLib\SetScr(PlMrg) ClrDraw DrAste() PxlText "M",68,1 Plot(PlMrg,MF) Goto Start Lbl bltg ZLib\SetScr(PlMrg) ClrDraw DrAste() PxlText "T",68,1 Plot(PlMrg,FT) Goto Start Lbl blas ZLib\SetScr(PlMrg) ClrDraw DrAste() PxlText "N",68,1 Plot(PlMrg,FN) 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 Findxy,L_Beta,Plot,DrVinc,RSolve DelVar AzSolve,Nodi,Aste,Vinc,Load DelVar NN,NA,NV,NL,NGDLV DelVar MK,MKL,RV DelVar MinMax,TVin,TCar,Scale,Run DelVar xst,yst DelVar Beta,Lung,OldMode DelVar FN,FT,MF,Discr setFold(#OldDir) DispHome EndPrgm5