Sunteți pe pagina 1din 9

Universitatea Tehnic Gh.

Asachi din Iai Facultatea de Construcii i Instalaii Master: Inginerie Structural

Lucrarea nr.3

Masterand: ing. Zub Ciprian-Ionu

-2013-

Programare Avansat pentru Proiectare i Cercetare n Construcii

Lucrarea nr.3

1.

S se traseze diagramele de moment ncovoietor i for tietoare pentru grinda ncrcat ca n figur, folosind limbajul Fortran i procesorul de grafic Intel Visualizer.

Programarea problemei:

program Diagramedeeforturigrindasr use iflogm implicit none include 'resource.fd' type(dialog) numint logical rez character*40 text common a,b,c,d,e,f,q1,q2,M1,M2,P1,VA,VB,L,eroare real*8 a,b,c,d,e,f,q1,q2,M1,M2,P1,VA,VB,L,eroare external calb,trasare eroare=1 rez=dlginit(Fereastra5,numint) rez=dlgsetsub(numint,txta,calb) rez=dlgsetsub(numint,txtb,calb) rez=dlgsetsub(numint,txtc,calb) rez=dlgsetsub(numint,txtd,calb) rez=dlgsetsub(numint,txte,calb) rez=dlgsetsub(numint,txtf,calb) rez=dlgsetsub(numint,txtq1,calb) rez=dlgsetsub(numint,txtq2,calb) rez=dlgsetsub(numint,txtP1,calb) rez=dlgsetsub(numint,txtM1,calb) rez=dlgsetsub(numint,txtM2,calb) rez=dlgsetsub(numint,btras,trasare) rez=dlgmodal(numint) end program Diagramedeeforturigrindasr

Programare Avansat pentru Proiectare i Cercetare n Construcii

Lucrarea nr.3

subroutine calb(numint,bapel,ce) use iflogm implicit none include 'resource.fd' type(dialog) numint logical rez,st1,st2,st3,st4,st5,st6,st7,st8,st9,st10,st11,eroare character*40 text real*8 a,b,c,d,e,f,q1,q2,P1,M1,M2,VA,VB,L,verif integer bapel,ce common a,b,c,d,e,f,q1,q2,P1,M1,M2,VA,VB,L,eroare rez=dlgget(numint,txta,text) read(text,1,iostat=st1) a rez=dlgget(numint,txtb,text) read(text,1,iostat=st2) b rez=dlgget(numint,txtc,text) read(text,1,iostat=st3) c rez=dlgget(numint,txtd,text) read(text,1,iostat=st4) d rez=dlgget(numint,txte,text) read(text,1,iostat=st5) e rez=dlgget(numint,txtf,text) read(text,1,iostat=st6) f rez=dlgget(numint,txtq1,text) read(text,1,iostat=st7) q1 rez=dlgget(numint,txtq2,text) read(text,1,iostat=st8) q2 rez=dlgget(numint,txtP1,text) read(text,1,iostat=st9) P1 rez=dlgget(numint,txtM1,text) read(text,1,iostat=st10) M1 rez=dlgget(numint,txtM2,text) read(text,1,iostat=st11) M2 1 format(f15.0) if((st1==.false.).and.(a>0).and.(st2==.false.).and.(b>0).and.(st3==.false.).and. (c>0).and.(st4==.false.).and.(d>0).and.(st5==.false.).and.(e>0).and. (st6==.false.).and.(f>0).and.(st7==.false.).and.(st8==.false.).and. (st9==.false.).and.(st10==.false.).and.(st11==.false.)) then rez=dlgset(numint,txtmesaj,'Date corecte') eroare=0 L=a+b+c+d+e+f write(text,2)L 2 format(f5.2) rez=dlgset(numint,txtL,text) VB=(-q1*b*(0.5d0*b+a)+0.5d0*q2*d*(2./3.*d+a+b+c)-P1*(a+b+c+d+e)-M2+M1)/L write(text,2)VB rez=dlgset(numint,txtVB,text) VA=(0.5d0*q2*d*(1.d0/3.d0*d+e+f)-q1*b*(0.5d0*b+c+d+e+f)-M1+M2-P1*f)/L write(text,2)VA rez=dlgset(numint,txtVA,text)

Programare Avansat pentru Proiectare i Cercetare n Construcii

Lucrarea nr.3

verif=-VA-VB-q1*b+0.5d0*q2*d-P1 write(text,2)verif rez=dlgset(numint,txtverif,text) else rez=dlgset(numint,txtmesaj,'Eroare la citire date') eroare=1 rez=dlgset(numint,txtL,'') rez=dlgset(numint,txtVA,'') rez=dlgset(numint,txtVB,'') rez=dlgset(numint,txtverif,'') endif end subroutine calb

subroutine trasare() use AvFRT use AvObjMod use iflogm implicit none include 'resource.fd' type(dialog) numint logical rez character*40 text real*8 a,b,c,d,e,f,q1,q2,P1,M1,M2,VA,VB,L,verif integer bapel,ce,eroare common a,b,c,d,e,f,q1,q2,P1,M1,M2,VA,VB,L,eroare integer,parameter::im=1001 real px(im),py(im),pz(im),pl integer i,st,vid,hroot,hg if(eroare==0)then pl=L/(im-1) do i=1,im px(i)=(i-1)*pl if(px(i)<a)then py(i)=-VA pz(i)=-M1-VA*(px(i)) elseif(px(i)<(a+b))then py(i)=-VA-q1*(px(i)-a) pz(i)=-M1-VA*px(i)-(q1*(px(i)-a)**2/2.d0) elseif(px(i)<(a+b+c))then py(i)=-VA-q1*b pz(i)=-M1-VA*px(i)-q1*b*(px(i)-a-b/2.d0)

Programare Avansat pentru Proiectare i Cercetare n Construcii

Lucrarea nr.3

elseif(px(i)<(a+b+c+d))then py(i)=-VA-q1*b+0.5*(px(i)-a-b-c)*(q2*(px(i)-a-b-c)/d) pz(i)=-M1-VA*px(i)-q1*b*(px(i)-a-b/2.d0)+0.5d0*((q2*(px(i)-a-bc))/d)*(1.d0/3.d0)*(px(i)-a-b-c)**2.d0 elseif(px(i)<(a+b+c+d+e))then py(i)=-VA-q1*b+0.5*q2*d pz(i)=-M1-VA*px(i)-q1*b*(px(i)-a-b/2.d0)+0.5d0*d*q2*(px(i)-a-b-c2.d0/3.d0*d) else py(i)=-VA-q1*b+0.5*q2*d-P1 pz(i)=-M1-VA*px(i)-q1*b*(px(i)-a-b/2.d0)+0.5d0*d*q2*(px(i)-a-b-c2.d0/3.d0*d)-P1*(px(i)-a-b-c-d-e) endif pz(i)=-pz(i) enddo call AvStartWatch(loc(px),1,shape(px),AV_REAL4,'px',st) call AvStartWatch(loc(py),1,shape(py),AV_REAL4,'py',st) call AvStartWatch(loc(pz),1,shape(pz),AV_REAL4,'pz',st) call AvNewViewer(vid) hroot=AvGetObject('/') call AvCreateGraph2DObj(AvGraphs(hroot),'V| plot:xyplot,xsource:/px,ysource:/py',hg) call AvCreateGraph2DObj(AvGraphs(hroot),'M| plot:xyplot,xsource:/px,ysource:/pz',hg) call AvVisible(vid,1,st) call AvSaveImage('ft.jpg','graph:/V',1200,1600,72,st) call AvSaveImage('mi.jpg','graph:/M',1200,1600,72,st) endif end subroutine trasare

Programare Avansat pentru Proiectare i Cercetare n Construcii

Lucrarea nr.3

Rezultate:

Cazul1:

Programare Avansat pentru Proiectare i Cercetare n Construcii

Lucrarea nr.3

Cazul 2:

Programare Avansat pentru Proiectare i Cercetare n Construcii

Lucrarea nr.3

Cazul 3:

Programare Avansat pentru Proiectare i Cercetare n Construcii

Lucrarea nr.3

Diagramele de eforturi: Diagrama de for tietoare:

Diagrama de moment ncovoietor:

S-ar putea să vă placă și