documenttt

11
Universitatea Tehnică “Gh. Asachi” din Iaşi Facultatea de Construcţii şi Instalaţii Master: Inginerie Structurală Lucrarea nr.3 -2013-

Upload: zubovschi-ciprian

Post on 08-Aug-2015

7 views

Category:

Documents


0 download

DESCRIPTION

ttt

TRANSCRIPT

Page 1: Documenttt

Universitatea Tehnică “Gh. Asachi” din IaşiFacultatea de Construcţii şi Instalaţii

Master: Inginerie Structurală

Lucrarea nr.3

Masterand: ing. Zub Ciprian-Ionuţ

-2013-

Page 2: Documenttt

Programare Avansată pentru Proiectare şi Cercetare în Construcţii Lucrarea nr.3

1. Să se traseze diagramele de moment încovoietor şi forţă tăietoare pentru grinda încărcată 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

2

Page 3: Documenttt

Programare Avansată pentru Proiectare şi Cercetare în Construcţii 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)

3

Page 4: Documenttt

Programare Avansată pentru Proiectare şi Cercetare în Construcţii 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)

4

Page 5: Documenttt

Programare Avansată pentru Proiectare şi Cercetare în Construcţii 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-b-c))/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-c-2.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-c-2.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

5

Page 6: Documenttt

Programare Avansată pentru Proiectare şi Cercetare în Construcţii Lucrarea nr.3

Rezultate:

Cazul1:

6

Page 7: Documenttt

Programare Avansată pentru Proiectare şi Cercetare în Construcţii Lucrarea nr.3

Cazul 2:

7

Page 8: Documenttt

Programare Avansată pentru Proiectare şi Cercetare în Construcţii Lucrarea nr.3

Cazul 3:

8

Page 9: Documenttt

Programare Avansată pentru Proiectare şi Cercetare în Construcţii Lucrarea nr.3

Diagramele de eforturi:

Diagrama de forţă tăietoare:

Diagrama de moment încovoietor:

9