Программа 5. Моменты инерции сечения
> | restart:with(plots):with(plottools): |
> | MminModule:=module() |
> | export SolvMMin,runMMin: |
> | SolvMMin:=proc() local i,x,y,Ris,N,F,xc,yc,Jxy, |
> | Jx,Jy,Jxc,Jyc,Jxyc,Jmax,Jmin,alf,T,Z: |
> | use Maplets[Tools] in |
> | x:=Get('Tx'::list); # координаты x |
> | y:=Get('Ty'::list); # координаты y |
> | x:=[op(x),x[1]]; |
> | y:=[op(y),y[1]]; |
> | N:=nops(x);#Число угловых точек |
> | T:=matrix(2,N,[x,y]); # Матрица координат |
> | Ris:=display(polygonplot(T,color="Yellow",scaling=constrained)): |
> | Z:=i->T[2,i]*T[1,i+1]-T[1,i]*T[2,i+1]: |
> | F:=add(Z(i),i=1..N-1)/2;#Площадь |
> | xc:=add(Z(i)*(T[1,i]+T[1,i+1]),i=1..N-1)/6/F;#Координаты центра т. |
> | yc:=add(Z(i)*(T[2,i]+T[2,i+1]),i=1..N-1)/6/F; |
> | Jx:=add(Z(i)*(T[2,i+1]^2+T[2,i+1]*T[2,i]+T[2,i]^2),i=1..N-1)/12;#Осевые моменты инерции |
> | Jy:=add(Z(i)*(T[1,i+1]^2+T[1,i+1]*T[1,i]+T[1,i]^2),i=1..N-1)/12; |
> | Jxy:=add(Z(i)*(T[1,i+1]*T[2,i+1]+(T[2,i+1]*T[1,i]+T[1,i+1]*T[2,i])/2 +T[1,i]*T[2,i]),i=1..N-1)/12; |
> | Jxc:=Jx-yc^2*F; Jyc:=Jy-xc^2*F; Jxyc:=Jxy-yc*xc*F;#Центральные моменты инерции |
Главные центральные моменты инерции
> | Jmax:=((Jxc+Jyc)/2+sqrt((Jxc-Jyc)^2/4+Jxyc^2)); |
> | Jmin:=((Jxc+Jyc)/2-sqrt((Jxc-Jyc)^2/4+Jxyc^2)); |
> | alf:=arctan(Jxyc/(Jyc-Jmax));#arctan(2*Jxyc/(Jyc-Jxc))/2; |
> | Set(TF=F): |
> | Set(Txc=xc): |
> | Set(Tyc=yc): |
> | Set(TJx=Jx): |
> | Set(TJy=Jy): |
> | Set(TJxy=Jxy): |
> | Set(TJxc=Jxc): |
> | Set(TJyc=Jyc): |
> | Set(TJxyc=Jxyc): |
> | Set(TJmax=Jmax): |
> | Set(TJmin=Jmin): |
> | Set(Talf=alf): |
> | end use; |
> | Ris; |
> | end proc;#SolMMin |
> |
> | runMMin:=proc() |
> | local a1,a2,t,z,c1,c2,p1,mplt; |
> | z:='width'=7,editable = false: |
> | use Maplets:-Elements in |
> | t[1]:=["F=",TextField['TF'](z,'tooltip'="Площадь")]: |
> | t[2]:=["xc=",TextField['Txc'](z)]: |
> | t[3]:=["yc=",TextField['Tyc'](z)]: |
> | t[4]:=["Jx=",TextField['TJx'](z)]: |
> | t[5]:=["Jy=",TextField['TJy'](z)]: |
> | t[6]:=["Jxy=",TextField['TJxy'](z)]: |
> | t[7]:=["Jxc=",TextField['TJxc'](z)]: |
> | t[8]:=["Jyc=",TextField['TJyc'](z)]: |
> | t[9]:=["Jxyc=",TextField['TJxyc'](z)]: |
> | t[10]:=["Jmax=",TextField['TJmax'](z)]: |
> | t[11]:=["Jmin=",TextField['TJmin'](z)]: |
> | t[12]:=["alpha=",TextField['Talf'](z)]: |
> | a1:=["[x]=",TextField['Tx'](30,'value'=[0,2,1.9,1.4,0.9,0,5,5,7,7,5,7,2,2,0],'tooltip'="Введите x, обход по часовой стрелке")]: |
> | a2:=["[y]=",TextField['Ty'](30,'value'=[4,4,4.8,5.4,5.8,6,6,7,7,4,4,0,0,2,0],'tooltip'="Координаты y")]: |
> | c1:=Button('width=90',"Run", Evaluate('PL1' = 'display(SolvMMin())')): |
> | c2:=Button("OK",Shutdown(['PL1'])): |
> | p1:=Plotter['PL1']('height=300'): |
> | mplt:=Maplet(Evaluate(function = 'SolvMMin()'), |
> | Window('title'="ГЕОМЕТРИЧЕСКИЕ ХАРАКТЕРИСТИКИ СЕЧЕНИЯ", |
> | ["ТЕОРЕТИЧЕСКАЯ МЕХАНИКА", |
> | [BoxColumn('spacing'=2,seq(t[i],i=1..12)),[a1,a2,p1]],[c1,c2] |
> | ] ) |
> | ):#Maplet |
> | Maplets:-Display(mplt): |
> | end use; |
> | end proc; |
> | end module: |
> | MminModule:-runMMin(): |
Initializing Java runtime environment.
> |