186 lines (150 with data), 4.6 kB
AnyFolder EnvironmentModel = {
/* **********************************************************
This folder contains the definition of the Environment
- GlobalRefFrame
********************************************************** */
AnyFixedRefFrame GlobalRef = {
//Origin = {2.765751, 1.287964, 0.8484217};
#include "drawcoorsystem.any"
AnyRefNode Seat = {
ARel= {{1,0,0},{0,0,-1},{0,1,0}};
sRel = {2.965751, 1.287964, 0.6484217 };
AnyDrawSurf seat = {
FileName = "../Input/CAD/seat";
ScaleXYZ = {0.5, 1, 0.4};
RGB = {0.1,0.1,0.1};
};
AnyDrawSurf back = {
FileName = "../Input/CAD/backrest";
ScaleXYZ = {0.4, 0.5, 0.3};
RGB = {0.1,0.1,0.1};
};
AnyRefNode BackrestSupportNode ={
sRel={-0.35,0.4,0};
};
// These points define the hubs of the wheels
AnyRefNode HubRight = {
sRel = {
0.015,
-0.1,
Main.ChairParameters.AxleZ
};
};
AnyRefNode HubLeft = {
sRel = {
-0.015,
-0.1,
-Main.ChairParameters.AxleZ
};
};
};
// AnyDrawRefFrame drw = {};
};//GlobalRef
AnySeg WheelRight = {
Mass = 2.5;
Jii = {1,1,2}*0.1;
AnyRefNode PushRim = {
sRel = {0,Main.ChairParameters.PushRimRad,Main.ChairParameters.PushRimDist};
};
Axes0=.GlobalRef.Seat.ARel;
r0 ={.GlobalRef.Seat.sRel[0],
.GlobalRef.Seat.sRel[1]+ Main.ChairParameters.AxleZ,
.GlobalRef.Seat.sRel[2]
};
AnyDrawSurf Wheel = {
FileName = "../Input/CAD/wheel";
RGB = {0.5, 0.5, 0.5};
ScaleXYZ = {1,1,1}*Main.ChairParameters.WheelRad;
};// AnyDrawSeg drw = {};
AnyRefNode PushRimHub = {
sRel = {
0,
0,
Main.ChairParameters.PushRimDist
};
AnyDrawSurf Wheel = {
FileName = "../Input/CAD/wheel";
RGB = {0,0,1};
ScaleXYZ = {1,1,1}*Main.ChairParameters.PushRimRad;
};
};
};
AnySeg WheelLeft = {
Mass = 2.5;
Jii = {1,1,2}*0.1;
AnyRefNode PushRim = {
sRel = {0,Main.ChairParameters.PushRimRad,-Main.ChairParameters.PushRimDist};
};
Axes0=.GlobalRef.Seat.ARel;
r0 ={.GlobalRef.Seat.sRel[0],
.GlobalRef.Seat.sRel[1]- Main.ChairParameters.AxleZ,
.GlobalRef.Seat.sRel[2]
};
AnyDrawSurf Wheel = {
FileName = "../Input/CAD/wheel";
RGB = {0.5, 0.5, 0.5};
ScaleXYZ = {1,1,-1}*Main.ChairParameters.WheelRad;
};// AnyDrawSeg drw = {};
AnyRefNode PushRimHub = {
sRel = {
0,
0,
-Main.ChairParameters.PushRimDist
};
AnyDrawSurf Wheel = {
FileName = "../Input/CAD/wheel";
RGB = {0,0,1};
ScaleXYZ = {1,1,-1}*Main.ChairParameters.PushRimRad;
};
};
};
// Join the wheels to the chair (ground, actually)
AnyRevoluteJoint HubRight = {
AnyRefNode &Chair = .GlobalRef.Seat.HubRight;
AnySeg &Wheel = .WheelRight;
Axis = z;
};
AnyRevoluteJoint HubLeft = {
AnyRefNode &Chair = .GlobalRef.Seat.HubLeft;
AnySeg &Wheel = .WheelLeft;
Axis = z;
};
// Drive the wheels. This in turn determines the hand movement
AnyKinEqSimpleDriver WheelRightDr = {
AnyRevoluteJoint &Joint = .HubRight;
DriverPos = {0};
DriverVel = {0};
Reaction.Type = {On};
};
AnyKinEqSimpleDriver WheelLeftDr = {
AnyRevoluteJoint &Joint = .HubLeft;
DriverPos = {0};
DriverVel = {0};
Reaction.Type = {On};
};
AnyForce3D ForceOnHand ={
AnyFunInterpol force={
//Type=PiecewiseLinear;
//Type=Bezier;
T=Main.C3DFileData.ANALOG.TimingChann.Frames/Main.C3DFileData.HeaderInformation.VideoFrameRate;
Data={
-Main.C3DFileData.ANALOG.WHLCHRFX.Frame1,
Main.C3DFileData.ANALOG.WHLCHRFY.Frame1,
-Main.C3DFileData.ANALOG.WHLCHRFZ.Frame1};
Type=Bspline;
BsplineOrder = 8;
};
AnyRefNode &ref1=Main.Model.BodyModel.Right.ShoulderArm.Seg.Hand.Ref.Hand;
F=force(t);
};
AnyDrawVector DrawSupport1 = {
AnyRefFrame &ref = Main.Model.BodyModel.Right.ShoulderArm.Seg.Hand.Ref.Hand;
Vec = 0.005*.ForceOnHand.F;
PointAway = Off;
DrawCoord = Off;
Line.RGB = {0,0,1};
Line.Thickness =0.0075;
Line.End.Thickness = 2*0.0075;
Line.End.Length = 4*0.0075;
};
};