[770c98]: / Tools / AnyMocap / SaveLoadParameters.any

Download this file

95 lines (78 with data), 4.3 kB

  Main.ModelSetup.Macros = {   
   
   #ifndef MOCAP_PARAMETER_FILE_PREFIX
   #define MOCAP_PARAMETER_FILE_PREFIX MOCAP_TEST_FILENAME_PREFIX + MOCAP_OUTPUT_FILENAME_PREFIX
   #endif
      
   #if (ANYBODY_V1 > 7)|(ANYBODY_V1 == 7 & ANYBODY_V2 > 2)
   AnyOperationMacro Save_parameters = {
     AnyFileVar SavePath = TEMP_PATH;
     MacroStr  = {"classoperation Main" + strquote("Save Values") +"--file=" + 
       strquote(FilePathCompleteOf(SavePath) +"/"+  MOCAP_PARAMETER_FILE_PREFIX + Main.ModelSetup.TrialSpecificData.TrialFileName +".anyset" )    
     };
   };
   #else
   AnyOperationSequence Save_parameters= {
     OPERATION_DISPLAY_PRIORITY(PriorityLow);
     // This operation uses `AnyOperationSetValue` to mark all values that must be saved 
      AnyOperationSetValue TouchMarkers = {
        Source = ObjSearch("Main.ModelSetup.MocapDrivers.*.sRelOptEdit");
        Target = Source;
      };     
      AnyOperationSetValue TouchSegLength =  {
        Source = arrcat(
          ObjSearch("Main.HumanModel.Anthropometrics.SegmentDimensions.*","AnyValue"),
          ObjSearch("Main.HumanModel.Anthropometrics.SegmentDimensions.Right.*","AnyValue"),
          ObjSearch("Main.HumanModel.Anthropometrics.SegmentDimensions.Left.*","AnyValue"),
          ObjSearchRecursive("Main.HumanModel.Anthropometrics.SegmentScaleFactors", "LengthScale", "AnyValue"),
          ObjSearchRecursive("Main.HumanModel.Anthropometrics.SegmentScaleFactors", "DepthScale", "AnyValue"),
          ObjSearchRecursive("Main.HumanModel.Anthropometrics.SegmentScaleFactors", "WidthScale", "AnyValue")
        );
        Target = Source;
      };   
      
      AnyOperationSetValue TouchOtherValues =  {
        Source = arrcat(
          ObjSearch("Main.HumanModel.BodyModel.Left.Leg.Seg.Thigh.KneeJoint.VarusValgusRotation", "AnyValue"),
          ObjSearch("Main.HumanModel.BodyModel.Right.Leg.Seg.Thigh.KneeJoint.VarusValgusRotation", "AnyValue"),
          ObjSearch("Main.HumanModel.BodyModel.Left.Leg.Seg.Shank.AnkleJoint.TibialTorsionOffset", "AnyValue"),
          ObjSearch("Main.HumanModel.BodyModel.Right.Leg.Seg.Shank.AnkleJoint.TibialTorsionOffset", "AnyValue")
         );
          
        Target = Source;
      };   
            
      AnyOperationMacro SaveToFile = {
        AnyFileVar SavePath = TEMP_PATH;
        MacroStr  = {"classoperation Main" + strquote("Save Values") +"--file=" + 
          strquote(FilePathCompleteOf(SavePath) +"/"+  MOCAP_PARAMETER_FILE_PREFIX + Main.ModelSetup.TrialSpecificData.TrialFileName +".anyset" )
        };
      };
    };
    #endif
      
    #if MOCAP_CREATE_PARAMETER_ID_SHORTCUT
    Main.RunParameterIdentification.SaveParameters = {
      AnyOperation &Save_parameters_to_anyset = Main.ModelSetup.Macros.Save_parameters;
    };
    #endif
  };
 
 
Main.ModelSetup.Macros = {
  
  #define _GET_VALID_INDEX(X) iffun(gtfun(NumElemOf(Main.ModelSetup.TrialSpecificData.LoadParametersFrom), X), X, 0)
  #define _LOAD_MACRO(X) iffun( andfun(gtfun(NumElemOf(Main.ModelSetup.TrialSpecificData.LoadParametersFrom), X) , neqfun(Main.ModelSetup.TrialSpecificData.LoadParametersFrom[ _GET_VALID_INDEX(X)],"")),\
                                  "classoperation Main " + strquote("Load Values") +" --file=" + strquote( FilePathCompleteOf(LoadPath)+ "/" + MOCAP_PARAMETER_FILE_PREFIX + Main.ModelSetup.TrialSpecificData.LoadParametersFrom[ _GET_VALID_INDEX(X)]+".anyset") ,\
                                  "")
 

  AnyOperationMacro Load_parameters = {
    OPERATION_DISPLAY_PRIORITY(PriorityLow);
     
    AnyFileVar LoadPath = TEMP_PATH;
    MacroStr  = { _LOAD_MACRO(0),
                  _LOAD_MACRO(1),
                  _LOAD_MACRO(2),
                  _LOAD_MACRO(3),
                  _LOAD_MACRO(4),
                  _LOAD_MACRO(5),
                  _LOAD_MACRO(6),
                  _LOAD_MACRO(7),
                  _LOAD_MACRO(8),
                  iffun(neqfun( Main.ModelSetup.TrialSpecificData.LoadParametersFrom[0], "" ),"classoperation Main " + strquote("Update Values"),"")   };   
  };
  #undef _LOAD_MACRO
  #undef _GET_VALID_INDEX
  
  Main.RunAnalysis.LoadParameters = {
    AnyOperation &Load_parameters_from_anyset = Main.ModelSetup.Macros.Load_parameters;
  };
  
};