> restart: libname := libname, "C:/libs/MBSymba.mla": with(MBSymba_r6):
In MBSymba, a rigid body is defined with the command
> Describe(make_BODY);
# Create a BODY rigidly attached to the <[frame]> having center of mass
# origin(<frame>) and mass <m>, with optional parameters are principal inertia
# moments <Ix,Iy,Iz> and composite inertia moments <Cyz,Cxz,Cxy>. The first
# argument <T> may be optionally a <POINT> that should be the body CoM.
make_BODY( T::{POINT, frame}, m::scalar, Ix::scalar := 0, Iy::scalar := 0,
Iz::scalar := 0, Cyz::scalar := 0, Cxz::scalar := 0,
Cxy::scalar := 0, $ )
Hence, to create a rigid body you should follow the steps below:
1 - Define the body reference frame, having origin in the body center of mass
> TG := translate(x(t),0,z(t)) * rotate('Y',mu(t)) * rotate('Z',psi(t));
Maple display variables in a more compact form if you use the following declaration:
> PDEtools[declare](x(t),z(t),mu(t),psi(t),prime=t,quiet);
> TG;
Define the rigid body as follows
> body := make_BODY (TG , m , Ix,Iy,Iz, Cyz,Cxz,Cxy): show(body);
for coinciseness, you may assign a shor name to the body frame
> set_frame_name(TG,'TG'): show(body);
There is a short form for simmetric bodies
> simmetric_body := make_BODY (TG,m , Ix,Iy,Iz): show(simmetric_body);
and even shorter for mass point
> mass_point := make_BODY (TG,m): show(mass_point);
Alternatively, you may define first the body center of mass
> G2 := make_POINT(TG,xg,yg,zg): show(G2);
and then the inertia
body2 := make_BODY (G2 , m , Ix,Iy,Iz, Cyz,Cxz,Cxy): show(body2);
Once again, you may assign a short name to the body frame
> set_frame_name(body2[frame],'TG2'): show(body2);