Skip to content

Commit 6ace523

Browse files
JacobAdamsenJacob Hilmar Adamsen
andauthored
Added code snippets to Muscle Modeling tutorial to enable testing (#47)
* Added code snippets to Muscle Modeling tutorial to enable testing * Added code snippets to Muscle Modeling lesson 5+6+7 --------- Co-authored-by: Jacob Hilmar Adamsen <[email protected]>
1 parent da84870 commit 6ace523

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+3091
-885
lines changed

A_Getting_started_anyscript/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
::: {rst-class} break
22
:::
33

4+
(How_to_write_AnyScript)=
45
# How to write AnyScript
56

67
This tutorial introduces the AnyScript modeling language, which is used

Muscle_modeling/Downloads/MuscleDemo.4.any

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Main = {
1515
}; // Global reference frame
1616

1717
// Define one simple segment
18-
AnySeg Arm = {
18+
AnySeg Arm = {
1919
r0 = {0.500000, 0.000000, 0.000000};
2020
Mass = 1.000000;
2121
Jii = {0.100000, 1.000000, 1.000000}*0.03;
@@ -43,7 +43,7 @@ AnySeg Arm = {
4343
DriverPos = {-10*pi/180};
4444
DriverVel = {80*pi/180};
4545
AnyRevoluteJoint &Jnt = .Jnt;
46-
Reaction.Type = {0};
46+
Reaction.Type = {Off};
4747
};
4848
AnyMuscleModel SimpleModel =
4949
{
@@ -57,10 +57,10 @@ AnySeg Arm = {
5757
AnyRefFrame &Ins = .Arm.M1Insertion;
5858
AnyDrawMuscle drw =
5959
{
60-
RGB = {1, 0, 0};
60+
//RGB = {1, 0, 0};
6161
//Opacity = 1;
6262
//DrawOnOff = 1;
63-
Bulging = 1;
63+
Bulging = 2;
6464
ColorScale = 1;
6565
RGBColorScale = {0, 0, 1};
6666
MaxStress = 250000;

Muscle_modeling/Downloads/MuscleDemo.5-2.any

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ Main = {
8080

8181
AnyMuscleModel2ELin Model2 = {
8282
F0 = 200;
83-
Lfbar = 0.3;
83+
Lfbar = 0.2;
8484
Lt0 = 0.3;
8585
Epsilonbar = 0.05;
8686
V0 = -0.3;
@@ -95,7 +95,7 @@ Main = {
9595
AnyRefFrame &Ins = .Arm.M1Insertion;
9696
SPLine.StringMesh = 20;
9797
AnyDrawMuscle drw = {
98-
Bulging = 0;
98+
Bulging = 2;
9999
ColorScale = 1;
100100
MaxStress = 250000;
101101
};
@@ -109,7 +109,7 @@ Main = {
109109
SPLine.StringMesh = 20;
110110
SPLine.InitWrapPosVectors = {{-0.2, -0.2, 0},{-0.05,-0.2, 0}};
111111
AnyDrawMuscle drw = {
112-
Bulging = 0;
112+
Bulging = 2;
113113
ColorScale = 1;
114114
MaxStress = 250000;
115115
};

Muscle_modeling/Downloads/MuscleDemo.5.any

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ Main = {
7878
AnyRefFrame &Ins = .Arm.M1Insertion;
7979
SPLine.StringMesh = 20;
8080
AnyDrawMuscle drw = {
81-
Bulging = 4;
81+
Bulging = 2;
8282
ColorScale = 1;
8383
MaxStress = 250000;
8484
};
@@ -92,7 +92,7 @@ Main = {
9292
SPLine.StringMesh = 20;
9393
SPLine.InitWrapPosVectors = {{-0.2, -0.2, 0},{-0.05,-0.2, 0}};
9494
AnyDrawMuscle drw = {
95-
Bulging = 4;
95+
Bulging = 2;
9696
ColorScale = 1;
9797
MaxStress = 250000;
9898
};

Muscle_modeling/Downloads/MuscleDemo.6.any

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,8 @@ Main = {
102102
// The study: Operations to be performed on the model
103103
AnyBodyStudy ArmStudy = {
104104
AnyFolder &Model = .ArmModel;
105-
// InverseDynamics.Criterion.Type = MR_MinMaxStrict;
106-
InverseDynamics.Criterion.Type = MR_Quadratic;
105+
//InverseDynamics.Criterion.Type = MR_MinMaxStrict;
106+
InverseDynamics.Criterion.Type = MR_Quadratic;
107107
Gravity = {0.0, -9.81, 0.0};
108108
};
109109

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
//# BEGIN SNIPPET 1
2+
// This is a very simple model for demonstration of muscle modeling
3+
Main = {
4+
5+
AnyFolder MyModel = {
6+
7+
// Global Reference Frame
8+
AnyFixedRefFrame GlobalRef = {
9+
AnyDrawRefFrame drw = {
10+
RGB = {1,0,0};
11+
};
12+
}; // Global reference frame
13+
14+
// Define one simple segment
15+
AnySeg Arm = {
16+
r0 = {0.500000, 0.000000, 0.000000};
17+
Mass = 1.000000;
18+
Jii = {0.100000, 1.000000, 1.000000}*0.03;
19+
AnyRefNode Jnt = {
20+
sRel = {-0.5, 0.0, 0};
21+
};
22+
AnyDrawSeg drw = {};
23+
};
24+
25+
// Attach the segment to ground by a revolute joint
26+
AnyRevoluteJoint Jnt = {
27+
AnyRefFrame &ref1 = .GlobalRef;
28+
AnyRefFrame &ref2 = .Arm.Jnt;
29+
Axis = z;
30+
};
31+
32+
// Drive the revolute joint at constant velocity
33+
AnyKinEqSimpleDriver Drv = {
34+
DriverPos = {-10*pi/180};
35+
DriverVel = {40*pi/180};
36+
AnyRevoluteJoint &Jnt = .Jnt;
37+
Reaction.Type = {Off};
38+
};
39+
40+
}; // MyModel
41+
42+
// The study: Operations to be performed on the model
43+
AnyBodyStudy MyStudy = {
44+
AnyFolder &Model = .MyModel;
45+
InverseDynamics.Criterion.Type = MR_MinMaxStrict;
46+
Gravity = {0.0, -9.81, 0.0};
47+
};
48+
}; // Main
49+
//# END SNIPPET 1
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
//expect_errors = ["<ObjectName>", "Model loading skipped"]
2+
3+
// This is a very simple model for demonstration of muscle modeling
4+
Main = {
5+
6+
AnyFolder MyModel = {
7+
8+
// Global Reference Frame
9+
AnyFixedRefFrame GlobalRef = {
10+
AnyDrawRefFrame drw = {
11+
RGB = {1,0,0};
12+
};
13+
}; // Global reference frame
14+
15+
// Define one simple segment
16+
AnySeg Arm = {
17+
r0 = {0.500000, 0.000000, 0.000000};
18+
Mass = 1.000000;
19+
Jii = {0.100000, 1.000000, 1.000000}*0.03;
20+
AnyRefNode Jnt = {
21+
sRel = {-0.5, 0.0, 0};
22+
};
23+
AnyDrawSeg drw = {};
24+
};
25+
26+
// Attach the segment to ground by a revolute joint
27+
AnyRevoluteJoint Jnt = {
28+
AnyRefFrame &ref1 = .GlobalRef;
29+
AnyRefFrame &ref2 = .Arm.Jnt;
30+
Axis = z;
31+
};
32+
33+
//# BEGIN SNIPPET 1
34+
// Drive the revolute joint at constant velocity
35+
AnyKinEqSimpleDriver Drv = {
36+
DriverPos = {-10*pi/180};
37+
DriverVel = {40*pi/180};
38+
AnyRevoluteJoint &Jnt = .Jnt;
39+
Reaction.Type = {Off};
40+
};
41+
42+
§AnyMuscleModel <ObjectName> =
43+
{
44+
F0 = 0.0;
45+
//Lf0 = 0.0;
46+
//Vol0 = 0.0;
47+
};§
48+
//# END SNIPPET 1
49+
50+
}; // MyModel
51+
52+
// The study: Operations to be performed on the model
53+
AnyBodyStudy MyStudy = {
54+
AnyFolder &Model = .MyModel;
55+
InverseDynamics.Criterion.Type = MR_MinMaxStrict;
56+
Gravity = {0.0, -9.81, 0.0};
57+
};
58+
}; // Main
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
//expect_errors = ["<ObjectName>", "Model loading skipped"]
2+
3+
// This is a very simple model for demonstration of muscle modeling
4+
Main = {
5+
6+
AnyFolder MyModel = {
7+
8+
// Global Reference Frame
9+
AnyFixedRefFrame GlobalRef = {
10+
AnyDrawRefFrame drw = {
11+
RGB = {1,0,0};
12+
};
13+
}; // Global reference frame
14+
15+
// Define one simple segment
16+
AnySeg Arm = {
17+
r0 = {0.500000, 0.000000, 0.000000};
18+
Mass = 1.000000;
19+
Jii = {0.100000, 1.000000, 1.000000}*0.03;
20+
AnyRefNode Jnt = {
21+
sRel = {-0.5, 0.0, 0};
22+
};
23+
AnyDrawSeg drw = {};
24+
};
25+
26+
// Attach the segment to ground by a revolute joint
27+
AnyRevoluteJoint Jnt = {
28+
AnyRefFrame &ref1 = .GlobalRef;
29+
AnyRefFrame &ref2 = .Arm.Jnt;
30+
Axis = z;
31+
};
32+
33+
// Drive the revolute joint at constant velocity
34+
AnyKinEqSimpleDriver Drv = {
35+
DriverPos = {-10*pi/180};
36+
DriverVel = {40*pi/180};
37+
AnyRevoluteJoint &Jnt = .Jnt;
38+
Reaction.Type = {Off};
39+
};
40+
//# BEGIN SNIPPET 1
41+
AnyMuscleModel §SimpleModel§ = {
42+
F0 = §100§;
43+
//Lf0 = 0.0;
44+
//Vol0 = 0.0;
45+
};
46+
//# END SNIPPET 1
47+
48+
//# BEGIN SNIPPET 2
49+
// End of AnyMuscleModel
50+
51+
§AnyViaPointMuscle <ObjectName> =
52+
{
53+
//viewForce.Visible = Off;
54+
//MetabModel = Null;
55+
//FatigueModel = Null;
56+
//MuscleModel = Null;
57+
//viewMuscle.Visible = Off;
58+
AnyMuscleModel &<Insert name0> = <Insert object reference (or full object definition)>;
59+
AnyRefFrame &<Insert name0> = <Insert object reference (or full object definition)>;
60+
AnyRefFrame &<Insert name1> = <Insert object reference (or full object definition)>;
61+
//AnyRefFrame &<Insert name2> = <Insert object reference (or full object definition)>;
62+
//AnyRefFrame &<Insert name3> = <Insert object reference (or full object definition)>; You can make any number of AnyRefFrame objects!
63+
};§
64+
//# END SNIPPET 2
65+
66+
}; // MyModel
67+
68+
// The study: Operations to be performed on the model
69+
AnyBodyStudy MyStudy = {
70+
AnyFolder &Model = .MyModel;
71+
InverseDynamics.Criterion.Type = MR_MinMaxStrict;
72+
Gravity = {0.0, -9.81, 0.0};
73+
};
74+
}; // Main
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
//expect_errors = ["<Insert", "Model loading skipped"]
2+
3+
// This is a very simple model for demonstration of muscle modeling
4+
Main = {
5+
6+
AnyFolder MyModel = {
7+
8+
//# BEGIN SNIPPET 2
9+
// Global Reference Frame
10+
AnyFixedRefFrame GlobalRef = {
11+
AnyDrawRefFrame drw = {
12+
RGB = {1,0,0};
13+
};
14+
§AnyRefNode M1Origin = {
15+
sRel = {0.0, 0.1, 0};
16+
};§
17+
}; // Global reference frame
18+
19+
// Define one simple segment
20+
AnySeg Arm = {
21+
r0 = {0.500000, 0.000000, 0.000000};
22+
Mass = 1.000000;
23+
Jii = {0.100000, 1.000000, 1.000000}*0.03;
24+
AnyRefNode Jnt = {
25+
sRel = {-0.5, 0.0, 0};
26+
};
27+
§AnyRefNode M1Insertion = {
28+
sRel = {0.0, 0.1, 0};
29+
};§
30+
AnyDrawSeg drw = {};
31+
};
32+
//# END SNIPPET 2
33+
34+
// Attach the segment to ground by a revolute joint
35+
AnyRevoluteJoint Jnt = {
36+
AnyRefFrame &ref1 = .GlobalRef;
37+
AnyRefFrame &ref2 = .Arm.Jnt;
38+
Axis = z;
39+
};
40+
41+
// Drive the revolute joint at constant velocity
42+
AnyKinEqSimpleDriver Drv = {
43+
DriverPos = {-10*pi/180};
44+
DriverVel = {40*pi/180};
45+
AnyRevoluteJoint &Jnt = .Jnt;
46+
Reaction.Type = {Off};
47+
};
48+
//# BEGIN SNIPPET 1
49+
AnyMuscleModel SimpleModel = {
50+
F0 = 100;
51+
//Lf0 = 0.0;
52+
//Vol0 = 0.0;
53+
};
54+
55+
AnyMuscleViaPoint §Muscle1§ = {
56+
AnyMuscleModel &§Model§ = §.SimpleModel§;
57+
AnyRefFrame &<Insert name0> = <Insert object reference (or full object definition)>;
58+
AnyRefFrame &<Insert name1> = <Insert object reference (or full object definition)>;
59+
};
60+
//# END SNIPPET 1
61+
62+
}; // MyModel
63+
64+
// The study: Operations to be performed on the model
65+
AnyBodyStudy MyStudy = {
66+
AnyFolder &Model = .MyModel;
67+
InverseDynamics.Criterion.Type = MR_MinMaxStrict;
68+
Gravity = {0.0, -9.81, 0.0};
69+
};
70+
}; // Main

0 commit comments

Comments
 (0)