-
Notifications
You must be signed in to change notification settings - Fork 0
/
SeatedHuman.main.any
106 lines (88 loc) · 4.34 KB
/
SeatedHuman.main.any
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
/* The Seated Human is a family of models resulting from a
research project involving the furniture industry. This
model is a human sitting in a generic chair where the seat,
backrest, arm rests, foot rest and head rest can be adjusted
and their influence on the forces in the human body can be
investigated.
Notice that the contact conditions are conditional with
respect to the distance between the body and the surface
in question so that they are only active when the contact
pair is close to each other.
The contact between the human body and the chair is by means
of contact elements that can only provide compression and
friction but no tension. The available friction is proportional
to the normal force and the user can supply a friction
coefficient for each surface such that the effect of different
surface fabrics can be investigated.*/
#ifpathexists "../libdef.any"
#include "../libdef.any"
#else
#include "<ANYBODY_PATH_INSTALLDIR>/AMMR/libdef.any"
#endif
Main = {
// ----------------------------------------------------------
// Model parameters: Driver position and support settings
// ----------------------------------------------------------
// switch to remove legrest
#define REMOVE_LEGREST 1
// switch to use leg mannequin drivers to position the leg, except hip flexion.
// heel point is in contact with the foot rest, and controls hip flexion
#define USE_LEG_MANNEQUIN_DRIVERS 1
// switch to use arm mannequin drivers to position the arm instead of the armrest.
#define USE_ARM_MANNEQUIN_DRIVERS 0
#include "Model/InputParameters.any"
// ----------------------------------------------------------
// Path to draw settings
// ----------------------------------------------------------
#include "Model/DrawSettings.any"
// ----------------------------------------------------------
// Body Model Configuration
// ----------------------------------------------------------
#include "Model/BodyModelConfiguration.any"
// The Mannequin file specifies load-time positions for all the segments
// in the HumanModel. This is important for the model's ablity to resolve
// all the kinematic constraints when the model is analyzed.
// The mannequin file also drives those degrees of freedom of the human
// model that are not governed by problem-specific drivers at run time.
#include "Model/Mannequin.any"
// Model of the human body to be used for the analysis
#include "<ANYBODY_PATH_BODY>/HumanModel.any"
// HumanModel.BodyModel.Left.Leg.Seg.Thigh.AnatomicalFrame={//.FootFootRestJntNode={
// AnyDrawRefFrame a={ScaleXYZ={1,1,1}*0.5;RGB={1,0,0};};
// };
/// The actual model where all components are assembled
AnyFolder Model ={
/// Body model without default drivers
AnyFolder &BodyModel=.HumanModel.BodyModel;
/// Reference to the mannequin folder (used by drivers)
AnyFolder &Mannequin =.HumanModel.Mannequin;
#include "Model/Environment.any"
/// Objects connecting the human to the chair
AnyFolder ModelEnvironmentConnection = {
#include "Model/ConnectionSegments.any"
#include "Model/JointsAndDrivers.any"
AnyFolder &RefPM=Main.Model.EnvironmentModel;
#include "Model/InitialPositionsEnvironment.any"
#include "Model/Support.any"
}; // ModelEnvironmentConnection
}; // Model
// --------------------------------------------------------------
// Study
// --------------------------------------------------------------
AnyBodyStudy Study = {
AnyFolder &Model = .Model;
tEnd = 1;
Gravity = {0.0, -9.81, 0.0};
nStep = 1;
//Size of total force in the L5 Sacrum joint
AnyVar L5SacrumReac = (Main.Model.BodyModel.Trunk.JointsLumbar.L5SacrumJnt.Constraints.Reaction.Fout[0]^2+
Main.Model.BodyModel.Trunk.JointsLumbar.L5SacrumJnt.Constraints.Reaction.Fout[1]^2+
Main.Model.BodyModel.Trunk.JointsLumbar.L5SacrumJnt.Constraints.Reaction.Fout[2]^2)^0.5;
// Include functions to generate a video:
// -> Run `Study.VideoTool.Preview` to preview the camera view.
// -> Run `Study.VideoTool.Create_Video` to generate video from the analysis.
#include "Model/CreateVideo.any"
}; // Study
// Include an operation sequence to run all required steps of your application (see Operations tab)
#include "<ANYBODY_PATH_MODELUTILS>\Operations\RunAppSequence.any"
};// Main