|
a |
|
b/Tools/AnyMocap/SaveLoadParameters.any |
|
|
1 |
Main.ModelSetup.Macros = { |
|
|
2 |
|
|
|
3 |
#ifndef MOCAP_PARAMETER_FILE_PREFIX |
|
|
4 |
#define MOCAP_PARAMETER_FILE_PREFIX MOCAP_TEST_FILENAME_PREFIX + MOCAP_OUTPUT_FILENAME_PREFIX |
|
|
5 |
#endif |
|
|
6 |
|
|
|
7 |
#if (ANYBODY_V1 > 7)|(ANYBODY_V1 == 7 & ANYBODY_V2 > 2) |
|
|
8 |
AnyOperationMacro Save_parameters = { |
|
|
9 |
AnyFileVar SavePath = TEMP_PATH; |
|
|
10 |
MacroStr = {"classoperation Main" + strquote("Save Values") +"--file=" + |
|
|
11 |
strquote(FilePathCompleteOf(SavePath) +"/"+ MOCAP_PARAMETER_FILE_PREFIX + Main.ModelSetup.TrialSpecificData.TrialFileName +".anyset" ) |
|
|
12 |
}; |
|
|
13 |
}; |
|
|
14 |
#else |
|
|
15 |
AnyOperationSequence Save_parameters= { |
|
|
16 |
OPERATION_DISPLAY_PRIORITY(PriorityLow); |
|
|
17 |
// This operation uses `AnyOperationSetValue` to mark all values that must be saved |
|
|
18 |
AnyOperationSetValue TouchMarkers = { |
|
|
19 |
Source = ObjSearch("Main.ModelSetup.MocapDrivers.*.sRelOptEdit"); |
|
|
20 |
Target = Source; |
|
|
21 |
}; |
|
|
22 |
AnyOperationSetValue TouchSegLength = { |
|
|
23 |
Source = arrcat( |
|
|
24 |
ObjSearch("Main.HumanModel.Anthropometrics.SegmentDimensions.*","AnyValue"), |
|
|
25 |
ObjSearch("Main.HumanModel.Anthropometrics.SegmentDimensions.Right.*","AnyValue"), |
|
|
26 |
ObjSearch("Main.HumanModel.Anthropometrics.SegmentDimensions.Left.*","AnyValue"), |
|
|
27 |
ObjSearchRecursive("Main.HumanModel.Anthropometrics.SegmentScaleFactors", "LengthScale", "AnyValue"), |
|
|
28 |
ObjSearchRecursive("Main.HumanModel.Anthropometrics.SegmentScaleFactors", "DepthScale", "AnyValue"), |
|
|
29 |
ObjSearchRecursive("Main.HumanModel.Anthropometrics.SegmentScaleFactors", "WidthScale", "AnyValue") |
|
|
30 |
); |
|
|
31 |
Target = Source; |
|
|
32 |
}; |
|
|
33 |
|
|
|
34 |
AnyOperationSetValue TouchOtherValues = { |
|
|
35 |
Source = arrcat( |
|
|
36 |
ObjSearch("Main.HumanModel.BodyModel.Left.Leg.Seg.Thigh.KneeJoint.VarusValgusRotation", "AnyValue"), |
|
|
37 |
ObjSearch("Main.HumanModel.BodyModel.Right.Leg.Seg.Thigh.KneeJoint.VarusValgusRotation", "AnyValue"), |
|
|
38 |
ObjSearch("Main.HumanModel.BodyModel.Left.Leg.Seg.Shank.AnkleJoint.TibialTorsionOffset", "AnyValue"), |
|
|
39 |
ObjSearch("Main.HumanModel.BodyModel.Right.Leg.Seg.Shank.AnkleJoint.TibialTorsionOffset", "AnyValue") |
|
|
40 |
); |
|
|
41 |
|
|
|
42 |
Target = Source; |
|
|
43 |
}; |
|
|
44 |
|
|
|
45 |
AnyOperationMacro SaveToFile = { |
|
|
46 |
AnyFileVar SavePath = TEMP_PATH; |
|
|
47 |
MacroStr = {"classoperation Main" + strquote("Save Values") +"--file=" + |
|
|
48 |
strquote(FilePathCompleteOf(SavePath) +"/"+ MOCAP_PARAMETER_FILE_PREFIX + Main.ModelSetup.TrialSpecificData.TrialFileName +".anyset" ) |
|
|
49 |
}; |
|
|
50 |
}; |
|
|
51 |
}; |
|
|
52 |
#endif |
|
|
53 |
|
|
|
54 |
#if MOCAP_CREATE_PARAMETER_ID_SHORTCUT |
|
|
55 |
Main.RunParameterIdentification.SaveParameters = { |
|
|
56 |
AnyOperation &Save_parameters_to_anyset = Main.ModelSetup.Macros.Save_parameters; |
|
|
57 |
}; |
|
|
58 |
#endif |
|
|
59 |
}; |
|
|
60 |
|
|
|
61 |
|
|
|
62 |
Main.ModelSetup.Macros = { |
|
|
63 |
|
|
|
64 |
#define _GET_VALID_INDEX(X) iffun(gtfun(NumElemOf(Main.ModelSetup.TrialSpecificData.LoadParametersFrom), X), X, 0) |
|
|
65 |
#define _LOAD_MACRO(X) iffun( andfun(gtfun(NumElemOf(Main.ModelSetup.TrialSpecificData.LoadParametersFrom), X) , neqfun(Main.ModelSetup.TrialSpecificData.LoadParametersFrom[ _GET_VALID_INDEX(X)],"")),\ |
|
|
66 |
"classoperation Main " + strquote("Load Values") +" --file=" + strquote( FilePathCompleteOf(LoadPath)+ "/" + MOCAP_PARAMETER_FILE_PREFIX + Main.ModelSetup.TrialSpecificData.LoadParametersFrom[ _GET_VALID_INDEX(X)]+".anyset") ,\ |
|
|
67 |
"") |
|
|
68 |
|
|
|
69 |
|
|
|
70 |
AnyOperationMacro Load_parameters = { |
|
|
71 |
OPERATION_DISPLAY_PRIORITY(PriorityLow); |
|
|
72 |
|
|
|
73 |
AnyFileVar LoadPath = TEMP_PATH; |
|
|
74 |
MacroStr = { _LOAD_MACRO(0), |
|
|
75 |
_LOAD_MACRO(1), |
|
|
76 |
_LOAD_MACRO(2), |
|
|
77 |
_LOAD_MACRO(3), |
|
|
78 |
_LOAD_MACRO(4), |
|
|
79 |
_LOAD_MACRO(5), |
|
|
80 |
_LOAD_MACRO(6), |
|
|
81 |
_LOAD_MACRO(7), |
|
|
82 |
_LOAD_MACRO(8), |
|
|
83 |
iffun(neqfun( Main.ModelSetup.TrialSpecificData.LoadParametersFrom[0], "" ),"classoperation Main " + strquote("Update Values"),"") }; |
|
|
84 |
}; |
|
|
85 |
#undef _LOAD_MACRO |
|
|
86 |
#undef _GET_VALID_INDEX |
|
|
87 |
|
|
|
88 |
Main.RunAnalysis.LoadParameters = { |
|
|
89 |
AnyOperation &Load_parameters_from_anyset = Main.ModelSetup.Macros.Load_parameters; |
|
|
90 |
}; |
|
|
91 |
|
|
|
92 |
}; |
|
|
93 |
|
|
|
94 |
|