437 lines (371 with data), 18.3 kB
AnyFolder WristCal ={
AnyComponentDefinition obj = {};
AnyFolder &ThoraxSegs = ...BodyModel.Trunk.SegmentsThorax;
AnyFolder &CervicalSegs = ...BodyModel.Trunk.SegmentsCervicalSpine;
AnyFolder &LumbarSegs = ...BodyModel.Trunk.SegmentsLumbar;
AnyFolder &LumbarSpineJoints = ...BodyModel.Trunk.JointsLumbar;
AnyFolder &LumbarCervicalJoints = ...BodyModel.Trunk.JointsCervicalSpine;
AnyFolder &SegSideCal = .SideHumanFolderRef.ShoulderArm.Seg;
AnyFolder &JointsSideCal = .SideHumanFolderRef.ShoulderArm.Jnt;
AnyFolder &MusCalSide = .SideHumanFolderRef.ShoulderArm.Mus;
AnyFolder &MusParCalSide = .SideHumanFolderRef.ShoulderArm.MuscleModels;
AnyFixedRefFrame ground = {
AnyRefNode node = {
ARel=.....BodyModel.Trunk.SegmentsThorax.ThoraxSeg.Axes0;
sRel=.....BodyModel.Trunk.SegmentsThorax.ThoraxSeg.r0;
};
};
AnySphericalJoint ThoraxGround={
AnyRefFrame &Ground = .ground.node;
AnyRefFrame &Sacrum= ....BodyModel.Trunk.SegmentsThorax.ThoraxSeg;
};
AnyKinEqSimpleDriver ThoraxGroundDriver = {
AnySphericalJoint &Jnt = .ThoraxGround;
DriverPos = {0,0,0};
DriverVel = {0,0,0};
Reaction.Type = {Off,Off,Off};
};
#if BM_ARM_SHOULDER_RHYTHM == ON
#include "ExcludeShoulderRhythm.any"
#endif
AnyFloat ElbowFlexPosData = {150,150,150,150, 0, 0, 0, 0, 0, 0, 0, 0} * pi/180;
AnyFloat ElbowProPosData = {-90,-90,-90,-90,-90,-90,-90,-90, 90, 90, 90, 90} * pi/180;
AnyFloat WristFlexPosData = { 85, 0,-70, 0, 85, 0,-70, 0, 85, 0,-70, 0} * pi/180;
AnyFloat WristAbductPosData = { 0, 20, 0,-35, 0, 20, 0,-35, 0, 20, 0,-35} * pi/180;
//Neck driver
AnyKinEqSimpleDriver NeckJntDriver = {
AnyKinMeasure& fe = ....BodyModel.Interface.Trunk.SkullThoraxFlexion;
AnyKinMeasure& ar = ....BodyModel.Interface.Trunk.SkullThoraxRotation;
AnyKinMeasure& lb = ....BodyModel.Interface.Trunk.SkullThoraxLateralBending;
DriverPos = pi/180*{0,0,0};
DriverVel = pi/180*{0,0,0};
Reaction.Type = {Off, Off, Off};
};
AnyKinEqSimpleDriver ThoraxDriver ={
AnyKinMeasure& Ref3 = ....BodyModel.Interface.Trunk.PelvisThoraxRotation;
AnyKinMeasure& Ref1 = ....BodyModel.Interface.Trunk.PelvisThoraxExtension;
AnyKinMeasure& Ref2 = ....BodyModel.Interface.Trunk.PelvisThoraxLateralBending;
DriverPos = pi/180*{0,0,0};
DriverVel = pi/180*{0,0,0};
Reaction.Type = {On,On,On};
};
AnyKinEqInterPolDriver WristFlexionDriver ={
AnyKinMeasure& WF = ..SideInterfaceFolderRef.WristFlexion;
Type = PiecewiseLinear;
T = linspace(0,1,SizesOf(Data)[1]);
Data = {.WristFlexPosData};
Reaction.Type={On};
};
AnyKinEqInterPolDriver WristAbductionDriver ={
AnyKinMeasure& WA = ..SideInterfaceFolderRef.WristAbduction;
Type = PiecewiseLinear;
T = linspace(0,1,SizesOf(Data)[1]);
Data = {.WristAbductPosData};
Reaction.Type={On};
};
AnyKinEqInterPolDriver FEDriver ={
AnyKinMeasure& FE = ..SideInterfaceFolderRef.ElbowFlexion;
Type = PiecewiseLinear;
T = linspace(0,1,SizesOf(Data)[1]);
Data = {.ElbowFlexPosData};
Reaction.Type = {Off};
};
AnyKinEqInterPolDriver PSDriver ={
AnyKinMeasure& PS = ..SideInterfaceFolderRef.ElbowPronation;
Type = PiecewiseLinear;
T = linspace(0,1,SizesOf(Data)[1]);
Data = {.ElbowProPosData};
Reaction.Type = {Off};
};
AnyKinEqInterPolDriver GHDriver ={
AnyKinMeasure& GHAbduction = ..SideInterfaceFolderRef.GlenohumeralAbduction;
AnyKinMeasure& GHFlexion = ..SideInterfaceFolderRef.GlenohumeralFlexion;
AnyKinMeasure& GHExtRot = ..SideInterfaceFolderRef.GlenohumeralExternalRotation;
AnyKinMeasure& SCProtraction = ..SideInterfaceFolderRef.SternoClavicularProtraction;
AnyKinMeasure& SCElevation = ..SideInterfaceFolderRef.SternoClavicularElevation;
Type = PiecewiseLinear;
T = {0.0, 1.0};
Data = {{0, 0},
{0, 0},
{0, 0},
{-23,-23},
{12, 12}
}*pi/180;
Reaction.Type = repmat(nDim,{Off});
};
//---------------------------------------------------------------------
//Finger drivers
#if BM_ARM_DETAILED_HAND
//finger1
AnyKinEqSimpleDriver CMC1Flexion={
AnyRevoluteJoint &ref= ..SideHumanFolderRef.ShoulderArm.Seg.Hand.Finger1.Jnt.CMCFlexion;
DriverPos={0}*pi/180;
DriverVel={0};
};
AnyKinEqSimpleDriver CMC1Abduction={
AnyRevoluteJoint &ref= ..SideHumanFolderRef.ShoulderArm.Seg.Hand.Finger1.Jnt.CMCAbduction;
DriverPos={0}*pi/180;
DriverVel={0};
};
AnyKinEqSimpleDriver MCP1Flexion=
{
AnyRevoluteJoint &ref=..SideHumanFolderRef.ShoulderArm.Seg.Hand.Finger1.Jnt.MCPFlexion;
DriverPos={0}*pi/180;
DriverVel={0};
};
AnyKinEqSimpleDriver MCP1Abduction=
{
AnyRevoluteJoint &ref=..SideHumanFolderRef.ShoulderArm.Seg.Hand.Finger1.Jnt.MCPAbduction;
DriverPos={0}*pi/180;
DriverVel={0};
};
AnyKinEqSimpleDriver DIP1={
AnyRevoluteJoint &ref= ..SideHumanFolderRef.ShoulderArm.Seg.Hand.Finger1.Jnt.DIP;
DriverPos={0}*pi/180;
DriverVel={0};
};
// finger2
// AnyKinEqSimpleDriver CMC2={
// AnyUniversalJoint &ref= ..SideHumanFolderRef.ShoulderArm.Seg.Hand.Finger2.Jnt.CMC;
// DriverPos={0,0};
// DriverVel={0,0};
// };
AnyKinEqSimpleDriver MCP2={
AnyRevoluteJoint &ref= ..SideHumanFolderRef.ShoulderArm.Seg.Hand.Finger2.Jnt.MCP;
DriverPos={0}*pi/180;
DriverVel={0};
};
AnyKinEqSimpleDriver PIP2={
AnyRevoluteJoint &ref= ..SideHumanFolderRef.ShoulderArm.Seg.Hand.Finger2.Jnt.PIP;
DriverPos={0}*pi/180;
DriverVel={0};
};
AnyKinEqSimpleDriver DIP2={
AnyRevoluteJoint &ref= ..SideHumanFolderRef.ShoulderArm.Seg.Hand.Finger2.Jnt.DIP;
DriverPos={0};
DriverVel={0};
};
// finger3
// AnyKinEqSimpleDriver CMC3={
// AnyUniversalJoint &ref= ..SideHumanFolderRef.ShoulderArm.Seg.Hand.Finger3.Jnt.CMC;
// DriverPos={0,0};
// DriverVel={0,0};
// };
AnyKinEqSimpleDriver MCP3={
AnyRevoluteJoint &ref= ..SideHumanFolderRef.ShoulderArm.Seg.Hand.Finger3.Jnt.MCP;
DriverPos={0}*pi/180;
DriverVel={0};
};
AnyKinEqSimpleDriver PIP3={
AnyRevoluteJoint &ref= ..SideHumanFolderRef.ShoulderArm.Seg.Hand.Finger3.Jnt.PIP;
DriverPos={0}*pi/180;
DriverVel={0};
};
AnyKinEqSimpleDriver DIP3={
AnyRevoluteJoint &ref= ..SideHumanFolderRef.ShoulderArm.Seg.Hand.Finger3.Jnt.DIP;
DriverPos={0};
DriverVel={0};
};
//finger4
// AnyKinEqSimpleDriver CMC4={
// AnyUniversalJoint &ref= ..SideHumanFolderRef.ShoulderArm.Seg.Hand.Finger4.Jnt.CMC;
// DriverPos={0,0}*pi/180;
// DriverVel={0,0};
// };
AnyKinEqSimpleDriver MCP4={
AnyRevoluteJoint &ref= ..SideHumanFolderRef.ShoulderArm.Seg.Hand.Finger4.Jnt.MCP;
DriverPos={0}*pi/180;
DriverVel={0};
};
AnyKinEqSimpleDriver PIP4={
AnyRevoluteJoint &ref= ..SideHumanFolderRef.ShoulderArm.Seg.Hand.Finger4.Jnt.PIP;
DriverPos={0}*pi/180;
DriverVel={0};
};
AnyKinEqSimpleDriver DIP4={
AnyRevoluteJoint &ref= ..SideHumanFolderRef.ShoulderArm.Seg.Hand.Finger4.Jnt.DIP;
DriverPos={0}*pi/180;
DriverVel={0};
};
// finger5
// AnyKinEqSimpleDriver CMC5={
// AnyUniversalJoint &ref= ..SideHumanFolderRef.ShoulderArm.Seg.Hand.Finger5.Jnt.CMC;
// DriverPos={0,0};
// DriverVel={0,0};
// };
AnyKinEqSimpleDriver MCP5={
AnyRevoluteJoint &ref= ..SideHumanFolderRef.ShoulderArm.Seg.Hand.Finger5.Jnt.MCP;
DriverPos={0}*pi/180;
DriverVel={0};
};
AnyKinEqSimpleDriver PIP5={
AnyRevoluteJoint &ref= ..SideHumanFolderRef.ShoulderArm.Seg.Hand.Finger5.Jnt.PIP;
DriverPos={0}*pi/180;
DriverVel={0};
};
AnyKinEqSimpleDriver DIP5={
AnyRevoluteJoint &ref= ..SideHumanFolderRef.ShoulderArm.Seg.Hand.Finger5.Jnt.DIP;
DriverPos={0};
DriverVel={0};
};
#endif
AnyString MusPrefix = CompleteNameOf(&.SideHumanFolderRef.ShoulderArm.Mus);
AnyObjectPtrArray AbductorPollicisMuscles = ObjSearch(MusPrefix+".Abductor_Pollicis*", "AnyMuscle");
AnyFloat AbductorPollicisRmin = repmat(NumElemOf(AbductorPollicisMuscles), ..RMin);
AnyFloat AbductorPollicisRmax = repmat(NumElemOf(AbductorPollicisMuscles), ..RMax);
AnyObjectPtrArray ExtensorCarpiRadialisMuscles = ObjSearch(MusPrefix+".Extensor_Carpi_Radi*", "AnyMuscle");
AnyFloat ExtensorCarpiRadialisRmin = repmat(NumElemOf(ExtensorCarpiRadialisMuscles), ..RMin);
AnyFloat ExtensorCarpiRadialisRmax = repmat(NumElemOf(ExtensorCarpiRadialisMuscles), ..RMax);
AnyObjectPtrArray ExtensorCarpiUlnarisMuscles = ObjSearch(MusPrefix+".Extensor_Carpi_Ulna*", "AnyMuscle");
AnyFloat ExtensorCarpiUlnarisRmin = repmat(NumElemOf(ExtensorCarpiUlnarisMuscles), ..RMin);
AnyFloat ExtensorCarpiUlnarisRmax = repmat(NumElemOf(ExtensorCarpiUlnarisMuscles), ..RMax);
AnyObjectPtrArray ExtensorDigitiMinimiMuscles = ObjSearch(MusPrefix+".Extensor_Digiti_Min*", "AnyMuscle");
AnyFloat ExtensorDigitiMinimiRmin = repmat(NumElemOf(ExtensorDigitiMinimiMuscles), ..RMin);
AnyFloat ExtensorDigitiMinimiRmax = repmat(NumElemOf(ExtensorDigitiMinimiMuscles), ..RMax);
AnyObjectPtrArray ExtensorDigitorumMuscles = ObjSearch(MusPrefix+".Extensor_Digit*", "AnyMuscle");
AnyFloat ExtensorDigitorumRmin = repmat(NumElemOf(ExtensorDigitorumMuscles), ..RMin);
AnyFloat ExtensorDigitorumRmax = repmat(NumElemOf(ExtensorDigitorumMuscles), ..RMax);
AnyObjectPtrArray ExtensorIndicisMuscles = ObjSearch(MusPrefix+".Extensor_Indi*", "AnyMuscle");
AnyFloat ExtensorIndicisRmin = repmat(NumElemOf(ExtensorIndicisMuscles), ..RMin);
AnyFloat ExtensorIndicisRmax = repmat(NumElemOf(ExtensorIndicisMuscles), ..RMax);
AnyObjectPtrArray ExtensorPollicisMuscles = ObjSearch(MusPrefix+".Extensor_Pollicis*", "AnyMuscle");
AnyFloat ExtensorPollicisRmin = repmat(NumElemOf(ExtensorPollicisMuscles), ..RMin);
AnyFloat ExtensorPollicisRmax = repmat(NumElemOf(ExtensorPollicisMuscles), ..RMax);
AnyObjectPtrArray FlexorCarpiRadialisMuscles = ObjSearch(MusPrefix+".Flexor_Carpi_Radi*", "AnyMuscle");
AnyFloat FlexorCarpiRadialisRmin = repmat(NumElemOf(FlexorCarpiRadialisMuscles), ..RMin);
AnyFloat FlexorCarpiRadialisRmax = repmat(NumElemOf(FlexorCarpiRadialisMuscles), ..RMax);
AnyObjectPtrArray FlexorCarpiUlnarisMuscles = ObjSearch(MusPrefix+".Flexor_Carpi_Ulna*", "AnyMuscle");
AnyFloat FlexorCarpiUlnarisRmin = repmat(NumElemOf(FlexorCarpiUlnarisMuscles), ..RMin);
AnyFloat FlexorCarpiUlnarisRmax = repmat(NumElemOf(FlexorCarpiUlnarisMuscles), ..RMax);
AnyObjectPtrArray FlexorDigitorumProfundusMuscles = ObjSearch(MusPrefix+".Flexor_Digitorum_Prof*", "AnyMuscle");
AnyFloat FlexorDigitorumProfundusRmin = repmat(NumElemOf(FlexorDigitorumProfundusMuscles), ..RMin);
AnyFloat FlexorDigitorumProfundusRmax = repmat(NumElemOf(FlexorDigitorumProfundusMuscles), ..RMax);
AnyObjectPtrArray FlexorDigitorumSuperficialisMuscles = ObjSearch(MusPrefix+".Flexor_Digitorum_Superfic*", "AnyMuscle");
AnyFloat FlexorDigitorumSuperficialisRmin = repmat(NumElemOf(FlexorDigitorumSuperficialisMuscles), ..RMin);
AnyFloat FlexorDigitorumSuperficialisRmax = repmat(NumElemOf(FlexorDigitorumSuperficialisMuscles), ..RMax);
AnyObjectPtrArray FlexorPollicisLongusMuscles = ObjSearch(MusPrefix+".Flexor_Pollicis_Long*", "AnyMuscle");
AnyFloat FlexorPollicisLongusRmin = repmat(NumElemOf(FlexorPollicisLongusMuscles), ..RMin);
AnyFloat FlexorPollicisLongusRmax = repmat(NumElemOf(FlexorPollicisLongusMuscles), ..RMax);
AnyObjectPtrArray PalmarisLongusMuscles = ObjSearch(MusPrefix+".Palmaris_Long*", "AnyMuscle");
AnyFloat PalmarisLongusRmin = repmat(NumElemOf(PalmarisLongusMuscles), ..RMin);
AnyFloat PalmarisLongusRmax = repmat(NumElemOf(PalmarisLongusMuscles), ..RMax);
AnyObjectPtrArray biceps_brachii_caput_breveMuscles = ObjSearch(MusPrefix+".biceps_brachii_caput_bre*", "AnyMuscle");
AnyFloat biceps_brachii_caput_breveRmin = repmat(NumElemOf(biceps_brachii_caput_breveMuscles), ..RMin);
AnyFloat biceps_brachii_caput_breveRmax = repmat(NumElemOf(biceps_brachii_caput_breveMuscles), ..RMax);
AnyObjectPtrArray biceps_brachii_caput_longumMuscles = ObjSearch(MusPrefix+".biceps_brachii_caput_long*", "AnyMuscle");
AnyFloat biceps_brachii_caput_longumRmin = repmat(NumElemOf(biceps_brachii_caput_longumMuscles), ..RMin);
AnyFloat biceps_brachii_caput_longumRmax = repmat(NumElemOf(biceps_brachii_caput_longumMuscles), ..RMax);
AnyObjectPtrArray BrachialisMuscles = ObjSearch(MusPrefix+".Brachialis*", "AnyMuscle");
AnyFloat BrachialisRmin = repmat(NumElemOf(BrachialisMuscles), ..RMin);
AnyFloat BrachialisRmax = repmat(NumElemOf(BrachialisMuscles), ..RMax);
AnyObjectPtrArray TricepsMuscles = ObjSearch(MusPrefix+".Triceps*", "AnyMuscle");
AnyFloat TricepsRmin = repmat(NumElemOf(TricepsMuscles), ..RMin);
AnyFloat TricepsRmax = repmat(NumElemOf(TricepsMuscles), ..RMax);
AnyObjectPtrArray Brach_radMuscles = ObjSearch(MusPrefix+".Brach_rad*", "AnyMuscle");
AnyFloat Brach_radRmin = repmat(NumElemOf(Brach_radMuscles), ..RMin);
AnyFloat Brach_radRmax = repmat(NumElemOf(Brach_radMuscles), ..RMax);
AnyObjectPtrArray AnconeusMuscles = ObjSearch(MusPrefix+".Anconeus*", "AnyMuscle");
AnyFloat AnconeusRmin = repmat(NumElemOf(AnconeusMuscles), ..RMin);
AnyFloat AnconeusRmax = repmat(NumElemOf(AnconeusMuscles), ..RMax);
AnyObjectPtrArray Pronator_teres_caput_humeralMuscles = ObjSearch(MusPrefix+".Pronator_teres_caput_humeral*", "AnyMuscle");
AnyFloat Pronator_teres_caput_humeralRmin = repmat(NumElemOf(Pronator_teres_caput_humeralMuscles), ..RMin);
AnyFloat Pronator_teres_caput_humeralRmax = repmat(NumElemOf(Pronator_teres_caput_humeralMuscles), ..RMax);
AnyObjectPtrArray Pronator_teres_caput_ulnareMuscles = ObjSearch(MusPrefix+".Pronator_teres_caput_ulnare*", "AnyMuscle");
AnyFloat Pronator_teres_caput_ulnareRmin = repmat(NumElemOf(Pronator_teres_caput_ulnareMuscles), ..RMin);
AnyFloat Pronator_teres_caput_ulnareRmax = repmat(NumElemOf(Pronator_teres_caput_ulnareMuscles), ..RMax);
AnyObjectPtrArray Supinator_humerusMuscles = ObjSearch(MusPrefix+".Supinator_humerus*", "AnyMuscle");
AnyFloat Supinator_humerusRmin = repmat(NumElemOf(Supinator_humerusMuscles), ..RMin);
AnyFloat Supinator_humerusRmax = repmat(NumElemOf(Supinator_humerusMuscles), ..RMax);
AnyObjectPtrArray Supinator_ulnaMuscles = ObjSearch(MusPrefix+".Supinator_ulna*", "AnyMuscle");
AnyFloat Supinator_ulnaRmin = repmat(NumElemOf(Supinator_ulnaMuscles), ..RMin);
AnyFloat Supinator_ulnaRmax = repmat(NumElemOf(Supinator_ulnaMuscles), ..RMax);
AnyObjectPtrArray Pron_quadrMuscles = ObjSearch(MusPrefix+".Pron_quadr*", "AnyMuscle");
AnyFloat Pron_quadrRmin = repmat(NumElemOf(Pron_quadrMuscles), ..RMin);
AnyFloat Pron_quadrRmax = repmat(NumElemOf(Pron_quadrMuscles), ..RMax);
};
// The study: Operations to be performed on the model
AnyBodyCalibrationStudy ArmCalibrationStudyWrist = {
AnyFolder &ref=.WristCal;
nStep = 12;
Kinematics.SmallStepAssumptionOnOff = Off;
Kinematics.PosAnalysisOnlyOnOff = On;
InitialConditions.PosAnalysisOnlyOnOff = On;
MuscleArr = arrcat(arrcat(arrcat(
ref.AbductorPollicisMuscles,
ref.ExtensorCarpiRadialisMuscles,
ref.ExtensorCarpiUlnarisMuscles,
ref.ExtensorDigitiMinimiMuscles,
ref.ExtensorDigitorumMuscles,
ref.ExtensorIndicisMuscles,
ref.ExtensorPollicisMuscles,
ref.FlexorCarpiRadialisMuscles,
ref.FlexorCarpiUlnarisMuscles),
ref.FlexorDigitorumProfundusMuscles,
ref.FlexorDigitorumSuperficialisMuscles,
ref.FlexorPollicisLongusMuscles,
ref.PalmarisLongusMuscles,
ref.biceps_brachii_caput_breveMuscles,
ref.biceps_brachii_caput_longumMuscles,
ref.BrachialisMuscles,
ref.TricepsMuscles,
ref.Brach_radMuscles),
ref.AnconeusMuscles,
ref.Pronator_teres_caput_humeralMuscles,
ref.Pronator_teres_caput_ulnareMuscles,
ref.Supinator_humerusMuscles,
ref.Supinator_ulnaMuscles,
ref.Pron_quadrMuscles
);
RminMuscleFiber = arrcat(arrcat(arrcat(
ref.AbductorPollicisRmin,
ref.ExtensorCarpiRadialisRmin,
ref.ExtensorCarpiUlnarisRmin,
ref.ExtensorDigitiMinimiRmin,
ref.ExtensorDigitorumRmin,
ref.ExtensorIndicisRmin,
ref.ExtensorPollicisRmin,
ref.FlexorCarpiRadialisRmin,
ref.FlexorCarpiUlnarisRmin),
ref.FlexorDigitorumProfundusRmin,
ref.FlexorDigitorumSuperficialisRmin,
ref.FlexorPollicisLongusRmin,
ref.PalmarisLongusRmin,
ref.biceps_brachii_caput_breveRmin,
ref.biceps_brachii_caput_longumRmin,
ref.BrachialisRmin,
ref.TricepsRmin,
ref.Brach_radRmin),
ref.AnconeusRmin,
ref.Pronator_teres_caput_humeralRmin,
ref.Pronator_teres_caput_ulnareRmin,
ref.Supinator_humerusRmin,
ref.Supinator_ulnaRmin,
ref.Pron_quadrRmin
);
RmaxMuscleFiber = arrcat(arrcat(arrcat(
ref.AbductorPollicisRmax,
ref.ExtensorCarpiRadialisRmax,
ref.ExtensorCarpiUlnarisRmax,
ref.ExtensorDigitiMinimiRmax,
ref.ExtensorDigitorumRmax,
ref.ExtensorIndicisRmax,
ref.ExtensorPollicisRmax,
ref.FlexorCarpiRadialisRmax,
ref.FlexorCarpiUlnarisRmax),
ref.FlexorDigitorumProfundusRmax,
ref.FlexorDigitorumSuperficialisRmax,
ref.FlexorPollicisLongusRmax,
ref.PalmarisLongusRmax,
ref.biceps_brachii_caput_breveRmax,
ref.biceps_brachii_caput_longumRmax,
ref.BrachialisRmax,
ref.TricepsRmax,
ref.Brach_radRmax),
ref.AnconeusRmax,
ref.Pronator_teres_caput_humeralRmax,
ref.Pronator_teres_caput_ulnareRmax,
ref.Supinator_humerusRmax,
ref.Supinator_ulnaRmax,
ref.Pron_quadrRmax
);
};