P50.mws

Программа 50. Задача 68. Устойчивость. Маплет

>      restart:

>      BucklModule:=module()

>      export SolvP,runB1:

>      SolvP:=proc() local sigma,a,

>            b,E,F,rho,l,mu,lambda:

>      E:=2e5:

>      use Maplets[Tools] in

>         a:=Get('Ta'::float); #Константы материала   

>         b:=Get('Tb'::float); #Константы материала   

>       rho:=Get('Tr'::float); #Радиус инерции   

>       l:=Get('Tl'::float);   #Длина   

>       F:=Get('TF'::float);#площадь   

>        if Get('C1') then mu:=1;

>      elif Get('C2') then mu:=0.7;

>      elif Get('C3') then mu:=0.5;  

>                     else mu:=2;   fi;

>       lambda:=mu*l/rho: #Гибкость

>       Set(Tlambda=lambda):

>    if lambda>100 then #Критич.напр

>            sigma:=evalf((Pi/lambda)^2*E); Set(T10="Эйлера"):  

>       else sigma:=a-b*lambda: Set(T10="Ясинского"):

>    fi;

>      Set(Pkr=sigma*F/10):

>     end use;

>    sigma;

>    end proc;

>    runB1:=proc()

>    local mplt,I,R,W,GB,i,l;

>    use Maplets:-Elements in

>    GB:=ButtonGroup[GG]();

>    I[1]:=Image[im1]("1.GIF"):

>    I[2]:=Image[im2]("2.GIF"):

>    I[3]:=Image[im3]("3.GIF"):

>    I[4]:=Image[im4]("4.GIF"):

>    R[1]:=RadioButton['C1']("1",group='GG'):

>    R[2]:=RadioButton['C2']("0.7",group='GG'):

>    R[3]:=RadioButton['C3']("0.5",group='GG'):

>    R[4]:=RadioButton['C4']("2",group='GG'):

>    for i to 4 do  l[i]:=Label(image=im||i): od:

>    W:=width=9:

>    mplt:=Maplet(seq(I[i],i=1..4),Window("Устойчивость",

>    [[ BoxColumn(["a=",TextField['Ta'](W,'value'=310.0),"МПа,"],

>      ["b=",TextField['Tb'](W,'value'=1.14),"МПа"],

>      ["i=",TextField['Tr'](W,'value'=3.77),"см,"],

>      ["l=",TextField['Tl'](W,'value'=380.0),"см"],

>      ["F=",TextField['TF'](W,'value'=58.2),"см2"]),

>    BoxColumn(BoxRow("lambda=",TextField['Tlambda'](W),"     "),

>    BoxRow("sigma=    ",TextField['sigm'](W),"МПа"),

>    BoxRow("P=            ",TextField['Pkr'](W),"кН"),

>    BoxRow("Формула ",TextField['T10'](W)," "))],

>    [seq(l[i],i=1..4)],

>    [seq(R[i],i=1..4)],Button("Run",Evaluate(sigm=SolvP))]

>                                         ),#Window

>              GB):#Maplet

>        Maplets:-Display(mplt):

>    end use;

>    end proc;

>    end module:

>    BucklModule:-runB1():

Warning, imaginary unit `I` used as a local variable in procedure BucklModule:-runB1

>