[770c98]: / Application / Examples / LegPressMachine / Model / LowerBodySupport.any

Download this file

342 lines (282 with data), 18.5 kB

/// Support conditions between the seat and the human body
AnyFolder SeatSupport = {
  
  AnyVar   Strength=....Parameters.SupportSettings.LowerbodySupportStrength;
  AnyVar   StaticFrictionCoefficient=....Parameters.SupportSettings.StaticFrictionSeat;
  
  AnyFolder &Pelvis =...BodyModel.Trunk.SegmentsLumbar.PelvisSeg;
  Pelvis = {
    AnyRefNode Seat_contact1R={
      sRel=.Seat_contactR.sRel+{0.085,0.01,0};
      AnyDrawNode  drw={ScaleXYZ=0.005*{1,1,1};RGB={0,0,1};};
    }; 
    
    AnyRefNode Seat_contact1L={
      sRel=.Seat_contactL.sRel+{0.085,0.01,0};
      AnyDrawNode  drw={ScaleXYZ=0.005*{1,1,1};RGB={0,0,1};};	
    }; 
    
    AnyRefNode Seat_contact2R={
      sRel=.Seat_contactR.sRel+{0.065,0.005,0};
      AnyDrawNode  drw={ScaleXYZ=0.005*{1,1,1};RGB={0,0,1};};	
    }; 
    
    AnyRefNode Seat_contact2L={
      sRel=.Seat_contactL.sRel+{0.065,0.005,0};
      AnyDrawNode  drw={ScaleXYZ=0.005*{1,1,1};RGB={0,0,1};};	
    }; 
    
    AnyRefNode Seat_contact3R={
      sRel=.Seat_contactR.sRel+{0.025,0,0};
      AnyDrawNode  drw={ScaleXYZ=0.005*{1,1,1};RGB={0,0,1};};	
    }; 
    
    AnyRefNode Seat_contact3L={
      sRel=.Seat_contactL.sRel+{0.025,0,0};
      AnyDrawNode  drw={ScaleXYZ=0.005*{1,1,1};RGB={0,0,1};};	
    }; 
    
    AnyRefNode Seat_contact4R={
      sRel=.Seat_contactR.sRel+{-0.015,0.01,0};
      AnyDrawNode  drw={ScaleXYZ=0.005*{1,1,1};RGB={0,0,1};};	
    }; 
    
    AnyRefNode Seat_contact4L={
      sRel=.Seat_contactL.sRel+{-0.015,0.01,0};
      AnyDrawNode  drw={ScaleXYZ=0.005*{1,1,1};RGB={0,0,1};};	
    }; 
  };   
  
//  AnyFolder &ThighR = ...BodyModel.Right.Leg.Seg.Thigh;
//  ThighR={
//    AnyRefNode SupportNodeFront = 
//    {      
//        sRel = {-0.05000, -0.1000, -0.028000};
//        AnyDrawNode  drw={ScaleXYZ=0.005*{1,1,1};RGB={0,0,1};};
//    };
//    AnyRefNode SupportNodeBack = 
//    {      
//        sRel = {-0.05000,  0.1000, -0.028000};
//        AnyDrawNode  drw={ScaleXYZ=0.005*{1,1,1};RGB={0,0,1};};
//    };
//  };
//  
//  AnyFolder &ThighL = ...BodyModel.Left.Leg.Seg.Thigh;
//  ThighL={
//    AnyRefNode SupportNodeFront = 
//    {      
//        sRel = {-0.05000, -0.1000, 0.028000};
//        AnyDrawNode  drw={ScaleXYZ=0.005*{1,1,1};RGB={0,0,1};};
//    };
//    AnyRefNode SupportNodeBack = 
//    {      
//        sRel = {-0.05000,  0.1000, 0.028000};
//        AnyDrawNode  drw={ScaleXYZ=0.005*{1,1,1};RGB={0,0,1};};
//    }; 
//  };
  
  AnyFolder &ref=...BodyModel.Trunk;  

  
  AnyVar CC_Radius = max({Main.Parameters.DesignParameters.Hip_Rest_Height/2,
                          Main.Parameters.DesignParameters.Hip_Rest_Width/2}) ; 
  AnyVar CC_LimitLow = -Main.Parameters.DesignParameters.Hip_Rest_Thick/2;
  AnyVar CC_LimitHigh = Main.Parameters.DesignParameters.Hip_Rest_Thick/2; 
  AnyRefFrame& CC_Base_Frame = Main.Model.EnvironmentModel.Segs.Hip_Rest.cc_base_node;
  AnyIntArray CC_Direction = {1,2,0};
  
//  AnyFolder ThighSupportFrontR={
//    AnyRefFrame &BaseObject = .CC_Base_Frame;
//    AnyRefFrame &TargetObject =....BodyModel.Right.Leg.Seg.Thigh.SupportNodeFront;
//    
//    AnyRefFrame &StrengthObject=TargetObject; //Node used for strength measurement, occasionally this is different from the target object
//    
//    AnyFolder &DrawRef=Main.DrawSettings; //reference to the folder which contains drawsettings
//    //low limit for the strength measure function, if the distance measured along Direction[0] is below this val. the strength will be zero (negative)
//    AnyVar UserDefinedLimitLow=.CC_LimitLow; 
//    //high limit for the strength measure function, if the distance measured along Direction[0] is above this val. the strength will be zero
//    AnyVar UserDefinedLimitHigh=.CC_LimitHigh;
//    //high limit for the strength measure function, if the radius measured along the plane with Direction[0] as normal is above this val. the strength will be zero
//    AnyVar UserDefinedRadiusLimit=.CC_Radius;
//    
//    AnyVar Strength =.Strength;  //strength of muscles
//    AnyVar StaticFrictionCoefficient=.StaticFrictionCoefficient; //Friction coefficient
//    AnyVar ScaleFactor =1; //scale factor for draw vectors it can be set differently than by the drawsettings
//    
//    AnyIntArray Direction= .CC_Direction; //first element gives normal direction
//    #include  "<ANYBODY_PATH_MODELUTILS>\FrictionContactMuscles\ContactSurfaceLinPush.any"
//  };
//  
//  AnyFolder ThighSupportBackR={
//    AnyRefFrame &BaseObject = .CC_Base_Frame;
//    AnyRefFrame &TargetObject =....BodyModel.Right.Leg.Seg.Thigh.SupportNodeBack;
//    
//    AnyRefFrame &StrengthObject=TargetObject; //Node used for strength measurement, occasionally this is different from the target object
//    
//    AnyFolder &DrawRef=Main.DrawSettings; //reference to the folder which contains drawsettings
//    //low limit for the strength measure function, if the distance measured along Direction[0] is below this val. the strength will be zero (negative)
//    AnyVar UserDefinedLimitLow=.CC_LimitLow; 
//    //high limit for the strength measure function, if the distance measured along Direction[0] is above this val. the strength will be zero
//    AnyVar UserDefinedLimitHigh=.CC_LimitHigh;
//    //high limit for the strength measure function, if the radius measured along the plane with Direction[0] as normal is above this val. the strength will be zero
//    AnyVar UserDefinedRadiusLimit=.CC_Radius;
//    
//    AnyVar Strength =.Strength;  //strength of muscles
//    AnyVar StaticFrictionCoefficient=.StaticFrictionCoefficient; //Friction coefficient
//    AnyVar ScaleFactor =1; //scale factor for draw vectors it can be set differently than by the drawsettings
//    
//    AnyIntArray Direction= .CC_Direction; //first element gives normal direction
//    #include  "<ANYBODY_PATH_MODELUTILS>\FrictionContactMuscles\ContactSurfaceLinPush.any"
//  };  
//  
//  AnyFolder ThighSupportFrontL={
//    AnyRefFrame &BaseObject = .CC_Base_Frame;
//    AnyRefFrame &TargetObject =....BodyModel.Left.Leg.Seg.Thigh.SupportNodeFront;
//    
//    AnyRefFrame &StrengthObject=TargetObject; //Node used for strength measurement, occasionally this is different from the target object
//    
//    AnyFolder &DrawRef=Main.DrawSettings; //reference to the folder which contains drawsettings
//    //low limit for the strength measure function, if the distance measured along Direction[0] is below this val. the strength will be zero (negative)
//    AnyVar UserDefinedLimitLow=.CC_LimitLow; 
//    //high limit for the strength measure function, if the distance measured along Direction[0] is above this val. the strength will be zero
//    AnyVar UserDefinedLimitHigh=.CC_LimitHigh;
//    //high limit for the strength measure function, if the radius measured along the plane with Direction[0] as normal is above this val. the strength will be zero
//    AnyVar UserDefinedRadiusLimit=.CC_Radius;
//    
//    AnyVar Strength =.Strength;  //strength of muscles
//    AnyVar StaticFrictionCoefficient=.StaticFrictionCoefficient; //Friction coefficient
//    AnyVar ScaleFactor =1; //scale factor for draw vectors it can be set differently than by the drawsettings
//    
//    AnyIntArray Direction= .CC_Direction; //first element gives normal direction
//    #include  "<ANYBODY_PATH_MODELUTILS>\FrictionContactMuscles\ContactSurfaceLinPush.any"
//  };
//  
//  AnyFolder ThighSupportBackL={
//    AnyRefFrame &BaseObject = .CC_Base_Frame;
//    AnyRefFrame &TargetObject =....BodyModel.Left.Leg.Seg.Thigh.SupportNodeBack;
//    
//    AnyRefFrame &StrengthObject=TargetObject; //Node used for strength measurement, occasionally this is different from the target object
//    
//    AnyFolder &DrawRef=Main.DrawSettings; //reference to the folder which contains drawsettings
//    //low limit for the strength measure function, if the distance measured along Direction[0] is below this val. the strength will be zero (negative)
//    AnyVar UserDefinedLimitLow=.CC_LimitLow; 
//    //high limit for the strength measure function, if the distance measured along Direction[0] is above this val. the strength will be zero
//    AnyVar UserDefinedLimitHigh=.CC_LimitHigh;
//    //high limit for the strength measure function, if the radius measured along the plane with Direction[0] as normal is above this val. the strength will be zero
//    AnyVar UserDefinedRadiusLimit=.CC_Radius;
//    
//    AnyVar Strength =.Strength;  //strength of muscles
//    AnyVar StaticFrictionCoefficient=.StaticFrictionCoefficient; //Friction coefficient
//    AnyVar ScaleFactor =1; //scale factor for draw vectors it can be set differently than by the drawsettings
//    
//    AnyIntArray Direction= .CC_Direction; //first element gives normal direction
//    #include  "<ANYBODY_PATH_MODELUTILS>\FrictionContactMuscles\ContactSurfaceLinPush.any"
//  };
  
  AnyFolder Seat_contact1R={
    AnyRefFrame &BaseObject = .CC_Base_Frame;
    AnyRefFrame &TargetObject =....BodyModel.Trunk.SegmentsLumbar.PelvisSeg.Seat_contact1R;  
    
    AnyRefFrame &StrengthObject=TargetObject; //Node used for strength measurement, occasionally this is different from the target object
    
    AnyFolder &DrawRef=Main.DrawSettings; //reference to the folder which contains drawsettings
    AnyVar UserDefinedLimitLow=.CC_LimitLow; 
    AnyVar UserDefinedLimitHigh=.CC_LimitHigh;
    AnyVar UserDefinedRadiusLimit=.CC_Radius;
    
    AnyVar Strength =.Strength;  //strength of muscles
    AnyVar StaticFrictionCoefficient=.StaticFrictionCoefficient; //Friction coefficient
    AnyVar ScaleFactor =1; //scale factor for draw vectors it can be set differently than by the drawsettings
    
    AnyIntArray Direction= .CC_Direction; //first element gives normal direction
    #include  "<ANYBODY_PATH_MODELUTILS>\FrictionContactMuscles\ContactSurfaceLinPush.any"
  };
  
  AnyFolder Seat_contact1L={
    AnyRefFrame &BaseObject =.CC_Base_Frame;
    AnyRefFrame &TargetObject =....BodyModel.Trunk.SegmentsLumbar.PelvisSeg.Seat_contact1L;
    
    AnyRefFrame &StrengthObject=TargetObject; //Node used for strength measurement, occasionally this is different from the target object
    
    AnyFolder &DrawRef=Main.DrawSettings; //reference to the folder which contains drawsettings
    
    AnyVar UserDefinedLimitLow=.CC_LimitLow; 
    AnyVar UserDefinedLimitHigh=.CC_LimitHigh;
    AnyVar UserDefinedRadiusLimit=.CC_Radius;
    
    AnyVar Strength =.Strength;  //strength of muscles
    AnyVar StaticFrictionCoefficient=.StaticFrictionCoefficient; //Friction coefficient
    AnyVar ScaleFactor =1; //scale factor for draw vectors it can be set differently than by the drawsettings
    
    AnyIntArray Direction= .CC_Direction; //first element gives normal direction
    #include  "<ANYBODY_PATH_MODELUTILS>\FrictionContactMuscles\ContactSurfaceLinPush.any"
  };
  
  AnyFolder Seat_contact2R={
    AnyRefFrame &BaseObject = .CC_Base_Frame;
    AnyRefFrame &TargetObject =....BodyModel.Trunk.SegmentsLumbar.PelvisSeg.Seat_contact2R;  
    
    AnyRefFrame &StrengthObject=TargetObject; //Node used for strength measurement, occasionally this is different from the target object
    
    AnyFolder &DrawRef=Main.DrawSettings; //reference to the folder which contains drawsettings
    
    AnyVar UserDefinedLimitLow=.CC_LimitLow; 
    AnyVar UserDefinedLimitHigh=.CC_LimitHigh;
    AnyVar UserDefinedRadiusLimit=.CC_Radius;
    
    AnyVar Strength =.Strength;  //strength of muscles
    AnyVar StaticFrictionCoefficient=.StaticFrictionCoefficient; //Friction coefficient
    AnyVar ScaleFactor =1; //scale factor for draw vectors it can be set differently than by the drawsettings
    
    AnyIntArray Direction= .CC_Direction; //first element gives normal direction
    #include  "<ANYBODY_PATH_MODELUTILS>\FrictionContactMuscles\ContactSurfaceLinPush.any"
  };
  
  AnyFolder Seat_contact2L={
    AnyRefFrame &BaseObject = .CC_Base_Frame;
    AnyRefFrame &TargetObject =....BodyModel.Trunk.SegmentsLumbar.PelvisSeg.Seat_contact2L;
    
    AnyRefFrame &StrengthObject=TargetObject; //Node used for strength measurement, occasionally this is different from the target object
    
    AnyFolder &DrawRef=Main.DrawSettings; //reference to the folder which contains drawsettings
    AnyVar UserDefinedLimitLow=.CC_LimitLow; 
    AnyVar UserDefinedLimitHigh=.CC_LimitHigh;
    AnyVar UserDefinedRadiusLimit=.CC_Radius;
    
    AnyVar Strength =.Strength;  //strength of muscles
    AnyVar StaticFrictionCoefficient=.StaticFrictionCoefficient; //Friction coefficient
    AnyVar ScaleFactor =1; //scale factor for draw vectors it can be set differently than by the drawsettings
    
    AnyIntArray Direction= .CC_Direction; //first element gives normal direction
    #include  "<ANYBODY_PATH_MODELUTILS>\FrictionContactMuscles\ContactSurfaceLinPush.any"
  };
  
  AnyFolder Seat_contact3R={
    AnyRefFrame &BaseObject = .CC_Base_Frame;
    AnyRefFrame &TargetObject =....BodyModel.Trunk.SegmentsLumbar.PelvisSeg.Seat_contact3R;  
    
    AnyRefFrame &StrengthObject=TargetObject; //Node used for strength measurement, occasionally this is different from the target object
    
    AnyFolder &DrawRef=Main.DrawSettings; //reference to the folder which contains drawsettings
    AnyVar UserDefinedLimitLow=.CC_LimitLow; 
    AnyVar UserDefinedLimitHigh=.CC_LimitHigh;
    AnyVar UserDefinedRadiusLimit=.CC_Radius;
    
    AnyVar Strength =.Strength;  //strength of muscles
    AnyVar StaticFrictionCoefficient=.StaticFrictionCoefficient; //Friction coefficient
    AnyVar ScaleFactor =1; //scale factor for draw vectors it can be set differently than by the drawsettings
    
    AnyIntArray Direction= .CC_Direction; //first element gives normal direction
    #include  "<ANYBODY_PATH_MODELUTILS>\FrictionContactMuscles\ContactSurfaceLinPush.any"
  };
  
  AnyFolder Seat_contact3L={
    AnyRefFrame &BaseObject = .CC_Base_Frame;
    AnyRefFrame &TargetObject =....BodyModel.Trunk.SegmentsLumbar.PelvisSeg.Seat_contact3L;
    
    AnyRefFrame &StrengthObject=TargetObject; //Node used for strength measurement, occasionally this is different from the target object
    
    AnyFolder &DrawRef=Main.DrawSettings; //reference to the folder which contains drawsettings
    //low limit for the strength measure function, if the distance measured along Direction[0] is below this val. the strength will be zero (negative)
    AnyVar UserDefinedLimitLow=.CC_LimitLow; 
    //high limit for the strength measure function, if the distance measured along Direction[0] is above this val. the strength will be zero
    AnyVar UserDefinedLimitHigh=.CC_LimitHigh;
    //high limit for the strength measure function, if the radius measured along the plane with Direction[0] as normal is above this val. the strength will be zero
    AnyVar UserDefinedRadiusLimit=.CC_Radius;
    
    AnyVar Strength =.Strength;  //strength of muscles
    AnyVar StaticFrictionCoefficient=.StaticFrictionCoefficient; //Friction coefficient
    AnyVar ScaleFactor =1; //scale factor for draw vectors it can be set differently than by the drawsettings
    
    AnyIntArray Direction= .CC_Direction; //first element gives normal direction
    #include  "<ANYBODY_PATH_MODELUTILS>\FrictionContactMuscles\ContactSurfaceLinPush.any"
  }; 
  
  AnyFolder Seat_contact4R={
    AnyRefFrame &BaseObject = .CC_Base_Frame;
    AnyRefFrame &TargetObject =....BodyModel.Trunk.SegmentsLumbar.PelvisSeg.Seat_contact4R;  
    
    AnyRefFrame &StrengthObject=TargetObject; //Node used for strength measurement, occasionally this is different from the target object
    
    AnyFolder &DrawRef=Main.DrawSettings; //reference to the folder which contains drawsettings
    //low limit for the strength measure function, if the distance measured along Direction[0] is below this val. the strength will be zero (negative)
    AnyVar UserDefinedLimitLow=.CC_LimitLow; 
    //high limit for the strength measure function, if the distance measured along Direction[0] is above this val. the strength will be zero
    AnyVar UserDefinedLimitHigh=.CC_LimitHigh;
    //high limit for the strength measure function, if the radius measured along the plane with Direction[0] as normal is above this val. the strength will be zero
    AnyVar UserDefinedRadiusLimit=.CC_Radius;
    
    AnyVar Strength =.Strength;  //strength of muscles
    AnyVar StaticFrictionCoefficient=.StaticFrictionCoefficient; //Friction coefficient
    AnyVar ScaleFactor =1; //scale factor for draw vectors it can be set differently than by the drawsettings
    
    AnyIntArray Direction= .CC_Direction; //first element gives normal direction
    #include  "<ANYBODY_PATH_MODELUTILS>\FrictionContactMuscles\ContactSurfaceLinPush.any"
  };
  
  AnyFolder Seat_contact4L = {
    AnyRefFrame &BaseObject = .CC_Base_Frame;
    AnyRefFrame &TargetObject =....BodyModel.Trunk.SegmentsLumbar.PelvisSeg.Seat_contact4L;
    
    AnyRefFrame &StrengthObject=TargetObject; //Node used for strength measurement, occasionally this is different from the target object
    
    AnyFolder &DrawRef=Main.DrawSettings; //reference to the folder which contains drawsettings
    //low limit for the strength measure function, if the distance measured along Direction[0] is below this val. the strength will be zero (negative)
    AnyVar UserDefinedLimitLow=.CC_LimitLow; 
    //high limit for the strength measure function, if the distance measured along Direction[0] is above this val. the strength will be zero
    AnyVar UserDefinedLimitHigh=.CC_LimitHigh;
    //high limit for the strength measure function, if the radius measured along the plane with Direction[0] as normal is above this val. the strength will be zero
    AnyVar UserDefinedRadiusLimit=.CC_Radius;
    
    AnyVar Strength =.Strength;  //strength of muscles
    AnyVar StaticFrictionCoefficient=.StaticFrictionCoefficient; //Friction coefficient
    AnyVar ScaleFactor =1; //scale factor for draw vectors it can be set differently than by the drawsettings
    
    AnyIntArray Direction= .CC_Direction; //first element gives normal direction
    #include  "<ANYBODY_PATH_MODELUTILS>\FrictionContactMuscles\ContactSurfaceLinPush.any"
  };

  
};