356 lines (314 with data), 16.3 kB
BodyModelRef.Left.Leg = {
// Create a folder with references to the necessary muscles.
AnyFolder EvaluateJointStrengthMusRef = {
#if BM_LEG_MUSCLES_LEFT
AnyFolder &LegMuscles = .Mus;
#if BM_TRUNK_LUMBAR_MUSCLES
AnyFolder &SpineMuscles = ...Trunk.MusclesSpineLeft.PsoasMajor;
#else
AnyFolder &SpineMuscles = ...Trunk.JointMuscles;
#endif
#else
AnyFolder &LegMuscles = .JointMuscles;
#if BM_TRUNK_LUMBAR_MUSCLES
AnyFolder &SpineMuscles = ...Trunk.MusclesSpineLeft.PsoasMajor;
#else
AnyFolder &SpineMuscles = ...Trunk.JointMuscles;
#endif
#endif
};
};
Left = {
AnyFolder Leg = {
AnyFolder HipFlexion={
// Change the following variables to adjust the joint strength study
AnyVector RangeOfMotion = DesignVar({-20,90});
AnyVar HipAbduction = DesignVar(0);
AnyVar HipExternalRotation = DesignVar(0);
AnyVar KneeFlexion = DesignVar(0);
AnyVar AnklePlantarFlexion = DesignVar(0);
AnyVar AnkleEversion = DesignVar(0);
/////////////////////////////////////////
// The following should not be changed
AnyFolder &SideBodyModelRef=...BodyModelRef.Left;
AnyFolder &SideBodyInterfaceRef = ...BodyModelRef.Interface.Left;
#include "EvaluateJointStrengthStudy.any"
AnyString OutputFileName = "JointStrength_Leg_Left_HipFlexion.csv";
Model.Drivers = {
AnyKinEqSimpleDriver LegDriver= {
AnyKinMeasure& ref = .LegMeasure;
DriverPos = {...RangeOfMotion[0],...HipAbduction ,...HipExternalRotation ,...KneeFlexion, ...AnklePlantarFlexion ,...AnkleEversion }*pi/180;
DriverVel = {...RangeOfMotion[1]-...RangeOfMotion[0],0,0,0,0,0}*pi/180/...Study.tEnd;
Reaction.Type = {Off,On,On,On, On, On};
};
};
};
AnyFolder HipExtension={
// Change the following variables to adjust the joint strength study
AnyVector RangeOfMotion = DesignVar({90,-20});
AnyVar HipAbduction = DesignVar(0);
AnyVar HipExternalRotation = DesignVar(0);
AnyVar KneeFlexion = DesignVar(0);
AnyVar AnklePlantarFlexion = DesignVar(0);
AnyVar AnkleEversion = DesignVar(0);
/////////////////////////////////////////
// The following should not be changed
AnyFolder &SideBodyModelRef=...BodyModelRef.Left;
AnyFolder &SideBodyInterfaceRef = ...BodyModelRef.Interface.Left;
#include "EvaluateJointStrengthStudy.any"
AnyString OutputFileName = "JointStrength_Leg_Left_HipExtension.csv";
Model.Drivers = {
AnyKinEqSimpleDriver LegDriver= {
AnyKinMeasure& ref = .LegMeasure;
DriverPos = {...RangeOfMotion[0],...HipAbduction ,...HipExternalRotation ,...KneeFlexion, ...AnklePlantarFlexion ,...AnkleEversion }*pi/180;
DriverVel = {...RangeOfMotion[1]-...RangeOfMotion[0],0,0,0,0,0}*pi/180/...Study.tEnd;
Reaction.Type = {Off,On,On,On, On, On};
};
};
};
AnyFolder HipAbduction={
// Change the following variables to adjust the joint strength study
AnyVector RangeOfMotion = DesignVar({-30,50});
AnyVar HipFlexion = DesignVar(0);
AnyVar HipExternalRotation = DesignVar(0);
AnyVar KneeFlexion = DesignVar(0);
AnyVar AnklePlantarFlexion = DesignVar(0);
AnyVar AnkleEversion = DesignVar(0);
/////////////////////////////////////////
// The following should not be changed
AnyFolder &SideBodyModelRef=...BodyModelRef.Left;
AnyFolder &SideBodyInterfaceRef = ...BodyModelRef.Interface.Left;
#include "EvaluateJointStrengthStudy.any"
AnyString OutputFileName = "JointStrength_Leg_Left_HipAbduction.csv";
Model.Drivers = {
AnyKinEqSimpleDriver LegDriver= {
AnyKinMeasure& ref = .LegMeasure;
DriverPos = {...HipFlexion,...RangeOfMotion[0],...HipExternalRotation ,...KneeFlexion, ...AnklePlantarFlexion ,...AnkleEversion }*pi/180;
DriverVel = {0,...RangeOfMotion[1]-...RangeOfMotion[0],0,0,0,0}*pi/180/...Study.tEnd;
Reaction.Type = {On,Off,On,On, On, On};
};
};
};
AnyFolder HipAdduction={
// Change the following variables to adjust the joint strength study
AnyVector RangeOfMotion = DesignVar({50,-30});
AnyVar HipFlexion = DesignVar(0);
AnyVar HipExternalRotation = DesignVar(0);
AnyVar KneeFlexion = DesignVar(0);
AnyVar AnklePlantarFlexion = DesignVar(0);
AnyVar AnkleEversion = DesignVar(0);
/////////////////////////////////////////
// The following should not be changed
AnyFolder &SideBodyModelRef=...BodyModelRef.Left;
AnyFolder &SideBodyInterfaceRef = ...BodyModelRef.Interface.Left;
#include "EvaluateJointStrengthStudy.any"
AnyString OutputFileName = "JointStrength_Leg_Left_HipAdduction.csv";
Model.Drivers = {
AnyKinEqSimpleDriver LegDriver= {
AnyKinMeasure& ref = .LegMeasure;
DriverPos = {...HipFlexion, ...RangeOfMotion[0],...HipExternalRotation ,...KneeFlexion, ...AnklePlantarFlexion ,...AnkleEversion }*pi/180;
DriverVel = {0,...RangeOfMotion[1]-...RangeOfMotion[0],0,0,0,0}*pi/180/...Study.tEnd;
Reaction.Type = {On,Off,On,On, On, On};
};
};
};
AnyFolder HipExternalRotation ={
// Change the following variables to adjust the joint strength study
AnyVector RangeOfMotion = DesignVar({-40,40});
AnyVar HipFlexion = DesignVar(0);
AnyVar HipAbduction = DesignVar(0);
AnyVar KneeFlexion = DesignVar(0);
AnyVar AnklePlantarFlexion = DesignVar(0);
AnyVar AnkleEversion = DesignVar(0);
/////////////////////////////////////////
// The following should not be changed
AnyFolder &SideBodyModelRef=...BodyModelRef.Left;
AnyFolder &SideBodyInterfaceRef = ...BodyModelRef.Interface.Left;
#include "EvaluateJointStrengthStudy.any"
AnyString OutputFileName = "JointStrength_Leg_Left_HipExternalRotation.csv";
Model.Drivers = {
AnyKinEqSimpleDriver LegDriver= {
AnyKinMeasure& ref = .LegMeasure;
DriverPos = {...HipFlexion,...HipAbduction,...RangeOfMotion[0],...KneeFlexion, ...AnklePlantarFlexion ,...AnkleEversion }*pi/180;
DriverVel = {0,0,...RangeOfMotion[1]-...RangeOfMotion[0],0,0,0}*pi/180/...Study.tEnd;
Reaction.Type = {On,On,Off,On, On, On};
};
};
};
AnyFolder HipInternalRotation ={
// Change the following variables to adjust the joint strength study
AnyVector RangeOfMotion = DesignVar({40,-40});
AnyVar HipFlexion = DesignVar(0);
AnyVar HipAbduction = DesignVar(0);
AnyVar KneeFlexion = DesignVar(0);
AnyVar AnklePlantarFlexion = DesignVar(0);
AnyVar AnkleEversion = DesignVar(0);
/////////////////////////////////////////
// The following should not be changed
AnyFolder &SideBodyModelRef=...BodyModelRef.Left;
AnyFolder &SideBodyInterfaceRef = ...BodyModelRef.Interface.Left;
#include "EvaluateJointStrengthStudy.any"
AnyString OutputFileName = "JointStrength_Leg_Left_HipInternalRotation.csv";
Model.Drivers = {
AnyKinEqSimpleDriver LegDriver= {
AnyKinMeasure& ref = .LegMeasure;
DriverPos = {...HipFlexion,...HipAbduction,...RangeOfMotion[0],...KneeFlexion, ...AnklePlantarFlexion ,...AnkleEversion }*pi/180;
DriverVel = {0,0,...RangeOfMotion[1]-...RangeOfMotion[0],0,0,0}*pi/180/...Study.tEnd;
Reaction.Type = {On,On,Off,On, On, On};
};
};
};
AnyFolder KneeFlexion={
// Change the following variables to adjust the joint strength study
AnyVector RangeOfMotion = DesignVar({0,90});
AnyVar HipFlexion = DesignVar(0);
AnyVar HipAbduction = DesignVar(0);
AnyVar HipExternalRotation = DesignVar(0);
AnyVar AnklePlantarFlexion = DesignVar(0);
AnyVar AnkleEversion = DesignVar(0);
/////////////////////////////////////////
// The following should not be changed
AnyFolder &SideBodyModelRef=...BodyModelRef.Left;
AnyFolder &SideBodyInterfaceRef = ...BodyModelRef.Interface.Left;
#include "EvaluateJointStrengthStudy.any"
AnyString OutputFileName = "JointStrength_Leg_Left_KneeFlexion.csv";
Model.Drivers = {
AnyKinEqSimpleDriver LegDriver= {
AnyKinMeasure& ref = .LegMeasure;
DriverPos = {...HipFlexion,...HipAbduction ,...HipExternalRotation ,...RangeOfMotion[0], ...AnklePlantarFlexion ,...AnkleEversion }*pi/180;
DriverVel = {0,0,0,...RangeOfMotion[1]-...RangeOfMotion[0],0,0}*pi/180/...Study.tEnd;
Reaction.Type = {On,On,On,Off, On, On};
};
};
};
AnyFolder KneeExtension={
// Change the following variables to adjust the joint strength study
AnyVector RangeOfMotion = DesignVar({90,0});
AnyVar HipFlexion = DesignVar(0);
AnyVar HipAbduction = DesignVar(0);
AnyVar HipExternalRotation = DesignVar(0);
AnyVar AnklePlantarFlexion = DesignVar(0);
AnyVar AnkleEversion = DesignVar(0);
/////////////////////////////////////////
// The following should not be changed
AnyFolder &SideBodyModelRef=...BodyModelRef.Left;
AnyFolder &SideBodyInterfaceRef = ...BodyModelRef.Interface.Left;
#include "EvaluateJointStrengthStudy.any"
AnyString OutputFileName = "JointStrength_Leg_Left_KneeExtension.csv";
Model.Drivers = {
AnyKinEqSimpleDriver LegDriver= {
AnyKinMeasure& ref = .LegMeasure;
DriverPos = {...HipFlexion,...HipAbduction ,...HipExternalRotation ,...RangeOfMotion[0], ...AnklePlantarFlexion ,...AnkleEversion }*pi/180;
DriverVel = {0,0,0,...RangeOfMotion[1]-...RangeOfMotion[0],0,0}*pi/180/...Study.tEnd;
Reaction.Type = {On,On,On,Off, On, On};
};
};
};
AnyFolder AnklePlantarFlexion ={
// Change the following variables to adjust the joint strength study
AnyVector RangeOfMotion = DesignVar({-30,45});
AnyVar HipFlexion = DesignVar(0);
AnyVar HipAbduction = DesignVar(0);
AnyVar HipExternalRotation = DesignVar(0);
AnyVar KneeFlexion = DesignVar(0);
AnyVar AnkleEversion = DesignVar(0);
/////////////////////////////////////////
// The following should not be changed
AnyFolder &SideBodyModelRef=...BodyModelRef.Left;
AnyFolder &SideBodyInterfaceRef = ...BodyModelRef.Interface.Left;
#include "EvaluateJointStrengthStudy.any"
AnyString OutputFileName = "JointStrength_Leg_Left_AnklePlantarFlexion.csv";
Model.Drivers = {
AnyKinEqSimpleDriver LegDriver= {
AnyKinMeasure& ref = .LegMeasure;
DriverPos = {...HipFlexion,...HipAbduction ,...HipExternalRotation ,...KneeFlexion,...RangeOfMotion[0],...AnkleEversion }*pi/180;
DriverVel = {0,0,0,0,...RangeOfMotion[1]-...RangeOfMotion[0],0}*pi/180/...Study.tEnd;
Reaction.Type = {On,On,On,On, Off, On};
};
};
};
AnyFolder AnkleDorsiFlexion ={
// Change the following variables to adjust the joint strength study
AnyVector RangeOfMotion = DesignVar({45,-30});
AnyVar HipFlexion = DesignVar(0);
AnyVar HipAbduction = DesignVar(0);
AnyVar HipExternalRotation = DesignVar(0);
AnyVar KneeFlexion = DesignVar(0);
AnyVar AnkleEversion = DesignVar(0);
/////////////////////////////////////////
// The following should not be changed
AnyFolder &SideBodyModelRef=...BodyModelRef.Left;
AnyFolder &SideBodyInterfaceRef = ...BodyModelRef.Interface.Left;
#include "EvaluateJointStrengthStudy.any"
AnyString OutputFileName = "JointStrength_Leg_Left_AnkleDorsiFlexion.csv";
Model.Drivers = {
AnyKinEqSimpleDriver LegDriver= {
AnyKinMeasure& ref = .LegMeasure;
DriverPos = {...HipFlexion,...HipAbduction ,...HipExternalRotation ,...KneeFlexion,...RangeOfMotion[0],...AnkleEversion }*pi/180;
DriverVel = {0,0,0,0,...RangeOfMotion[1]-...RangeOfMotion[0],0}*pi/180/...Study.tEnd;
Reaction.Type = {On,On,On,On, Off, On};
};
};
};
AnyFolder AnkleEversion ={
// Change the following variables to adjust the joint strength study
AnyVector RangeOfMotion = DesignVar({-30,30});
AnyVar HipFlexion = DesignVar(0);
AnyVar HipAbduction = DesignVar(0);
AnyVar HipExternalRotation = DesignVar(0);
AnyVar KneeFlexion = DesignVar(0);
AnyVar AnklePlantarFlexion = DesignVar(0);
/////////////////////////////////////////
// The following should not be changed
AnyFolder &SideBodyModelRef=...BodyModelRef.Left;
AnyFolder &SideBodyInterfaceRef = ...BodyModelRef.Interface.Left;
#include "EvaluateJointStrengthStudy.any"
AnyString OutputFileName = "JointStrength_Leg_Left_SubTalarEversion.csv";
Model.Drivers = {
AnyKinEqSimpleDriver LegDriver= {
AnyKinMeasure& ref = .LegMeasure;
DriverPos = {...HipFlexion,...HipAbduction ,...HipExternalRotation ,...KneeFlexion,...AnklePlantarFlexion,...RangeOfMotion[0]}*pi/180;
DriverVel = {0,0,0,0,0,...RangeOfMotion[1]-...RangeOfMotion[0]}*pi/180/...Study.tEnd;
Reaction.Type = {On,On,On,On, On, Off};
};
};
};
AnyFolder AnkleInversion ={
// Change the following variables to adjust the joint strength study
AnyVector RangeOfMotion = DesignVar({30,-30});
AnyVar HipFlexion = DesignVar(0);
AnyVar HipAbduction = DesignVar(0);
AnyVar HipExternalRotation = DesignVar(0);
AnyVar KneeFlexion = DesignVar(0);
AnyVar AnklePlantarFlexion = DesignVar(0);
/////////////////////////////////////////
// The following should not be changed
AnyFolder &SideBodyModelRef=...BodyModelRef.Left;
AnyFolder &SideBodyInterfaceRef = ...BodyModelRef.Interface.Left;
#include "EvaluateJointStrengthStudy.any"
AnyString OutputFileName = "JointStrength_Leg_Left_SubTalarInversion.csv";
Model.Drivers = {
AnyKinEqSimpleDriver LegDriver= {
AnyKinMeasure& ref = .LegMeasure;
DriverPos = {...HipFlexion,...HipAbduction ,...HipExternalRotation ,...KneeFlexion,...AnklePlantarFlexion,...RangeOfMotion[0]}*pi/180;
DriverVel = {0,0,0,0,0,...RangeOfMotion[1]-...RangeOfMotion[0]}*pi/180/...Study.tEnd;
Reaction.Type = {On,On,On,On, On, Off};
};
};
};
};//Leg
};//Rigth
Run_all_studies ={
AnyOperation &LHipFlexion= .Left.Leg.HipFlexion.Run;
AnyOperation &LHipExtension= .Left.Leg.HipExtension.Run;
AnyOperation &LHipAbduction= .Left.Leg.HipAbduction.Run;
AnyOperation &LHipAdduction= .Left.Leg.HipAdduction.Run;
AnyOperation &LHipExternalRotation = .Left.Leg.HipExternalRotation.Run;
AnyOperation &LHipInternalRotation = .Left.Leg.HipInternalRotation.Run;
AnyOperation &LKneeFlexion = .Left.Leg.KneeFlexion.Run;
AnyOperation &LKneeExtension = .Left.Leg.KneeExtension.Run;
AnyOperation &LAnklePlantarFlexion = .Left.Leg.AnklePlantarFlexion.Run;
AnyOperation &LAnkleDorsiFlexion = .Left.Leg.AnkleDorsiFlexion.Run;
AnyOperation &LAnkleEversion = .Left.Leg.AnkleEversion.Run;
AnyOperation &LAnkleInversion = .Left.Leg.AnkleInversion.Run;
};