196 lines (141 with data), 4.4 kB
#class_template OptimizeAnthropometricsOnOff (PelvisWidthOnOff,PelvisDepthOnOff, ThighLengthOnOff,ShankLengthOnOff,FootLengthOnOff,HeadHeightOnOff,TrunkHeightOnOff ,UpperArmLengthOnOff,LowerArmLengthOnOff ,Model1, Model2 ){
#if Model1 == 1
AnyFolder &ref= Main.Studies.ParameterIdentification ;
ref={
AnyFolder &Lengths = Main.Studies.HumanModel.Anthropometrics.SegmentDimensions;
#if PelvisWidthOnOff=="On"
AnyDesVar PelvisWidth = {
Val = .Lengths.PelvisWidth;
Min = 0.05; Max = 1;
};
#endif
#if PelvisDepthOnOff=="On"
AnyDesVar PelvisDepth = {
Val = .Lengths.PelvisDepth;
Min = 0.05; Max = 0.5;
};
#endif
#if ThighLengthOnOff =="On"
AnyDesVar ThighLengths = {
Val =.Lengths.Right.ThighLength;
Min = 0.05; Max = 1;
};
#endif
#if ShankLengthOnOff =="On"
AnyDesVar ShankLengths = {
Val = .Lengths.Right.ShankLength;
Min = 0.05; Max = 1;
};
#endif
#if FootLengthOnOff =="On"
AnyDesVar FootLengths = {
Val = .Lengths.Right.FootLength;
Min = 0.05; Max = 1;
};
#endif
// #if VarusValgusOnOff =="On"
//
//
// AnyDesVar VarusValgusRight = {
// Val = Main.Studies.KinematicStudyForParameterIdentification.HumanModel.BodyModel.Right.Leg.Seg.Thigh.KneeJoint.AxisRot;
// };
//
// AnyDesVar VarusValgusLeft = {
// Val = Main.Studies.KinematicStudyForParameterIdentification.HumanModel.BodyModel.Left.Leg.Seg.Thigh.KneeJoint.AxisRot;
// };
//
// //This ensures the legs varus valgus is the same for left and right side
// AnyDesMeasure VarusValgusEquality = {
// Val = .VarusValgusRight.Val-.VarusValgusLeft.Val ;
// Type= EqualToZero;
// };
//
//
// #endif
#if HeadHeightOnOff =="On"
AnyDesVar HeadHeight = {
Val = .Lengths.HeadHeight;
Min = 0.05; Max = 0.5;
};
#endif
#if TrunkHeightOnOff =="On"
AnyDesVar TrunkHeight = {
Val = .Lengths.TrunkHeight;
Min = 0.2; Max = 1;
};
#endif
#if UpperArmLengthOnOff=="On"
AnyDesVar UpperArmLength = {
Val = .Lengths.Right.UpperArmLength ;
Min = 0.1; Max = 1;
};
#endif
#if LowerArmLengthOnOff =="On"
AnyDesVar LowerArmLength = {
Val = .Lengths.Right.LowerArmLength ;
Min = 0.1; Max = 1;
};
#endif
};
#endif
#if Model2 == 1
AnyFolder &ref2= Main.Studies.LoadParametersOptimizationResults ;
ref2={
AnyFolder &Lengths=Main.Studies.HumanModel.Anthropometrics.SegmentDimensions;
#if PelvisWidthOnOff=="On"
AnyDesVar PelvisWidth = {
Val = .Lengths.PelvisWidth;
Min = 0.05; Max = 0.5;
};
#endif
#if PelvisDepthOnOff=="On"
AnyDesVar PelvisDepth = {
Val = .Lengths.PelvisDepth;
Min = 0.05; Max = 0.5;
};
#endif
#if ThighLengthOnOff =="On"
AnyDesVar ThighLengths = {
Val =.Lengths.Right.ThighLength;
Min = 0.1; Max = 1;
};
#endif
#if ShankLengthOnOff =="On"
AnyDesVar ShankLengths = {
Val = .Lengths.Right.ShankLength;
Min = 0.1; Max = 1;
};
#endif
#if FootLengthOnOff =="On"
AnyDesVar FootLengths = {
Val = .Lengths.Right.FootLength;
Min = 0.05; Max = 0.5;
};
#endif
#if HeadHeightOnOff =="On"
AnyDesVar HeadHeight = {
Val = .Lengths.HeadHeight;
Min = 0.05; Max = 0.5;
};
#endif
#if TrunkHeightOnOff =="On"
AnyDesVar TrunkHeight = {
Val = .Lengths.TrunkHeight;
Min = 0.1; Max = 1.5;
};
#endif
#if UpperArmLengthOnOff=="On"
AnyDesVar UpperArmLength = {
Val = .Lengths.Right.UpperArmLength ;
Min = 0.1; Max = 1;
};
#endif
#if LowerArmLengthOnOff =="On"
AnyDesVar LowerArmLength = {
Val = .Lengths.Right.LowerArmLength ;
Min = 0.1; Max = 1;
};
#endif
};
#endif
}; // End of InsertSegmentClass