[38ba34]: / Tools / ModelUtilities / Mocap / OptimizeAnthropometricsOnOffNew.any

Download this file

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