Программа 4. Растяжение бруса c.137
> | restart; |
> | BRUSModule:=module() |
> | export Udlin,runBRUS: |
> | Udlin:=proc() local P,N,l,F,DL,gmma,dl,sigma,n,i,j,E1,G,eps: |
> | use Maplets[Tools] in |
> | l:=Get('TL'::list); # Длины, м |
> | F:=Get('TF'::list)/1e4;# Площади, см2 |
> | P:=Get('TP'::list); # Силы, кН |
> | gmma:=Get('Tgm'::integer);# Удельный вес, Н/м3 |
> | E1:=Get('TE'::float)*1e9; # Модуль упругости 1ГПа=1e9Н/м2 |
> | n:=nops(l): # Число нагрузок |
> | N[0,2]:=0: |
> | DL:=0: |
> | for i to n do |
> | G:=gmma*l[i]*F[i]: #Вес |
> | N[i,1]:=N[i-1,2]+P[i]*1000:#Усилие в нижнем конце участка |
> | N[i,2]:=N[i,1]+G: #Усилие в верхнем конце |
> | for j to 2 do |
> | sigma[j]:=N[i,j]/(F[i]): #Напр |
> | eps[j]:=sigma[j]/E1: #Деформац |
> | od; |
> | dl[i]:=(eps[1]+eps[2])/2*l[i]:#Удлинение |
> | DL:=DL+dl[i]: #Общее удлинение |
> | od: |
> | DL*1000;# Общее удлинение в мм |
> | end use: |
> | end proc: |
> |
> | runBRUS:=proc() |
> | local a,c1,mplt; |
> | use Maplets:-Elements in |
> | a[1]:=["[L ]=",TextField['TL']('value'=[3,2,3],'tooltip'="Введите длины, м")]: |
> | a[2]:=["[F ]=",TextField['TF']('value'=[24,29,31],'tooltip'="Введите площади, см2")]: |
> | a[3]:=["[P]=",TextField['TP']('value'=[-63,108,-42],'tooltip'="Введите силы, кН")]: |
> | a[4]:=[" g =",TextField['Tgm']('value'=78000,'tooltip'="gamma, Н/м3")]: |
> | a[5]:=[" E =",TextField['TE']('value'=200.,'tooltip'="E, ГПа")]: |
> | c1:=Button("Run",Evaluate(sigm=Udlin)): |
> | mplt:= Maplet(Window('title'="РАСТЯЖЕНИЕ бруса", |
> | ["Сопротивление материалов", |
> | [ BoxColumn(seq(a[i],i=1..5)), |
> | [c1,["Перемещение=",TextField['sigm']()," мм"]] |
> | ] #BoxColumn |
> | ] |
> | ) #Window |
> | ):#Maplet |
> | Maplets:-Display(mplt): |
> | end use; |
> | end proc; |
> | end module: |
> | BRUSModule:-runBRUS(): |
> |