From 52c823a58b08bb2467a1f95d149afd188cfebd80 Mon Sep 17 00:00:00 2001 From: Jacob Hilmar Adamsen Date: Thu, 22 Aug 2024 14:58:34 +0200 Subject: [PATCH 01/15] Tutorial snippet updates --- .../Downloads/demo.arm2d.any | 51 ++-- .../Downloads/demo.lesson5.any | 10 +- .../Downloads/demo.lesson6.any | 42 ++-- .../Snippets/lesson4/snip.NewModel.main-1.any | 22 +- .../Snippets/lesson4/snip.NewModel.main-2.any | 137 +++++++++++ .../Snippets/lesson5/snip.NewModel.main-1.any | 139 +++++++++++ .../Snippets/lesson5/snip.NewModel.main-2.any | 141 +++++++++++ .../Snippets/lesson5/snip.NewModel.main-3.any | 150 ++++++++++++ .../Snippets/lesson5/snip.NewModel.main-4.any | 152 ++++++++++++ .../Snippets/lesson5/snip.NewModel.main-5.any | 204 ++++++++++++++++ .../Snippets/lesson5/snip.NewModel.main-6.any | 208 ++++++++++++++++ .../Snippets/lesson5/snip.NewModel.main-7.any | 222 +++++++++++++++++ .../Snippets/lesson6/snip.NewModel.main-1.any | 225 +++++++++++++++++ .../Snippets/lesson6/snip.NewModel.main-2.any | 226 +++++++++++++++++ .../Snippets/lesson6/snip.NewModel.main-3.any | 227 +++++++++++++++++ .../Snippets/lesson6/snip.NewModel.main-4.any | 228 +++++++++++++++++ .../Snippets/lesson6/snip.NewModel.main-5.any | 229 ++++++++++++++++++ .../_static/lesson5/image1.png | Bin 91015 -> 76804 bytes .../_static/lesson5/image2.png | Bin 100856 -> 90088 bytes .../_static/lesson5/image3.png | Bin 16237 -> 19695 bytes .../_static/lesson5/image4.png | Bin 16891 -> 22291 bytes .../_static/lesson5/image5.png | Bin 18306 -> 24669 bytes .../_static/lesson6/image3.jpeg | Bin 14150 -> 21378 bytes .../_static/lesson6/image4.jpeg | Bin 12531 -> 22096 bytes .../_static/lesson6/image5.jpeg | Bin 10761 -> 19552 bytes A_Getting_started_anyscript/lesson4.md | 33 +-- A_Getting_started_anyscript/lesson5.md | 183 ++++---------- A_Getting_started_anyscript/lesson6.md | 64 +++-- 28 files changed, 2641 insertions(+), 252 deletions(-) create mode 100644 A_Getting_started_anyscript/Snippets/lesson4/snip.NewModel.main-2.any create mode 100644 A_Getting_started_anyscript/Snippets/lesson5/snip.NewModel.main-1.any create mode 100644 A_Getting_started_anyscript/Snippets/lesson5/snip.NewModel.main-2.any create mode 100644 A_Getting_started_anyscript/Snippets/lesson5/snip.NewModel.main-3.any create mode 100644 A_Getting_started_anyscript/Snippets/lesson5/snip.NewModel.main-4.any create mode 100644 A_Getting_started_anyscript/Snippets/lesson5/snip.NewModel.main-5.any create mode 100644 A_Getting_started_anyscript/Snippets/lesson5/snip.NewModel.main-6.any create mode 100644 A_Getting_started_anyscript/Snippets/lesson5/snip.NewModel.main-7.any create mode 100644 A_Getting_started_anyscript/Snippets/lesson6/snip.NewModel.main-1.any create mode 100644 A_Getting_started_anyscript/Snippets/lesson6/snip.NewModel.main-2.any create mode 100644 A_Getting_started_anyscript/Snippets/lesson6/snip.NewModel.main-3.any create mode 100644 A_Getting_started_anyscript/Snippets/lesson6/snip.NewModel.main-4.any create mode 100644 A_Getting_started_anyscript/Snippets/lesson6/snip.NewModel.main-5.any diff --git a/A_Getting_started_anyscript/Downloads/demo.arm2d.any b/A_Getting_started_anyscript/Downloads/demo.arm2d.any index 2422bb80..15c68825 100644 --- a/A_Getting_started_anyscript/Downloads/demo.arm2d.any +++ b/A_Getting_started_anyscript/Downloads/demo.arm2d.any @@ -87,22 +87,21 @@ Main = { sRel = {-0.25,0,-0.05}; }; AnyRefNode PalmNode = { - sRel = {0.27,0,0}; + sRel = {0.27,0,0}; ARel = RotMat(90*pi/180, y); AnyDrawSTL DrwSTL = { FileName = "dumbbell.stl"; ScaleXYZ = {0.001, 0.001, 0.001}; RGB = {0.2,0.4,0.5}; - }; - }; - AnyDrawSeg DrwSeg = {}; - - }; // ForeArm - + }; + }; + AnyDrawSeg DrwSeg = {}; + }; // ForeArm + }; // Segs folder + // Joints AnyFolder Jnts = { - //--------------------------------- AnyRevoluteJoint Shoulder = { Axis = z; @@ -115,11 +114,9 @@ Main = { AnyRefNode &UpperArmNode = Main.ArmModel.Segs.UpperArm.ElbowNode; AnyRefNode &ForeArmNode = Main.ArmModel.Segs.ForeArm.ElbowNode; }; // Elbow joint - }; // Jnts folder - + AnyFolder Drivers = { - //--------------------------------- AnyKinEqSimpleDriver ShoulderMotion = { AnyRevoluteJoint &Jnt = ..Jnts.Shoulder; @@ -138,11 +135,11 @@ Main = { }; // Driver folder AnyFolder Muscles = { - // Simple muscle model with constant strength = 300 Newton + // Simple muscle model with constant strength = 400 Newton AnyMuscleModel MusMdl = { F0 = 400; }; - + //--------------------------------- AnyMuscleViaPoint Brachialis = { AnyMuscleModel &MusMdl = ..Muscles.MusMdl; @@ -150,7 +147,7 @@ Main = { AnyRefNode &Ins = ..Segs.ForeArm.Brachialis; AnyDrawMuscle DrwMus = {}; }; - + //--------------------------------- AnyMuscleViaPoint DeltodeusA = { AnyMuscleModel &MusMdl = ..Muscles.MusMdl; @@ -158,7 +155,7 @@ Main = { AnyRefNode &Ins = ..Segs.UpperArm.DeltodeusA; AnyDrawMuscle DrwMus = {}; }; - + //--------------------------------- AnyMuscleViaPoint DeltodeusB = { AnyMuscleModel &MusMdl = ..Muscles.MusMdl; @@ -166,7 +163,7 @@ Main = { AnyRefNode &Ins = ..Segs.UpperArm.DeltodeusB; AnyDrawMuscle DrwMus = {}; }; - + //--------------------------------- AnyMuscleViaPoint Brachioradialis = { AnyMuscleModel &MusMdl = ..Muscles.MusMdl; @@ -174,7 +171,7 @@ Main = { AnyRefNode &Ins = ..Segs.ForeArm.Brachioradialis; AnyDrawMuscle DrwMus = {}; }; - + //--------------------------------- AnyMuscleViaPoint BicepsShort = { AnyMuscleModel &MusMdl = ..Muscles.MusMdl; @@ -182,7 +179,7 @@ Main = { AnyRefNode &Ins = ..Segs.ForeArm.Biceps; AnyDrawMuscle DrwMus = {}; }; - + //--------------------------------- AnyMuscleViaPoint TricepsShort = { AnyMuscleModel &MusMdl = ..Muscles.MusMdl; @@ -190,7 +187,7 @@ Main = { AnyRefNode &Ins = ..Segs.ForeArm.Triceps; AnyDrawMuscle DrwMus = {}; }; - + //--------------------------------- AnyMuscleViaPoint BicepsLong = { AnyMuscleModel &MusMdl = ..Muscles.MusMdl; @@ -198,7 +195,7 @@ Main = { AnyRefNode &Ins = ..Segs.ForeArm.Biceps; AnyDrawMuscle DrwMus = {}; }; - + //--------------------------------- AnyMuscleViaPoint TricepsLong = { AnyMuscleModel &MusMdl = ..Muscles.MusMdl; @@ -207,25 +204,21 @@ Main = { AnyDrawMuscle DrwMus = {}; }; }; // Muscles folder - + AnyFolder Loads = { - - //--------------------------------- + //--------------------------------- AnyForce3D Dumbbell = { AnyRefNode &PalmNode = ..Segs.ForeArm.PalmNode; F = {0,-100,0}; // Force in Newton }; - }; // Loads folder + }; // Loads folder }; // MyModel - + // The study: Operations to be performed on the model AnyBodyStudy ArmStudy = { AnyFolder &Model = .ArmModel; Gravity = {0.0, -9.81, 0.0}; }; -}; // Main - - - +}; // Main \ No newline at end of file diff --git a/A_Getting_started_anyscript/Downloads/demo.lesson5.any b/A_Getting_started_anyscript/Downloads/demo.lesson5.any index 9eeb35a8..88dc84d6 100644 --- a/A_Getting_started_anyscript/Downloads/demo.lesson5.any +++ b/A_Getting_started_anyscript/Downloads/demo.lesson5.any @@ -91,8 +91,8 @@ Main = { }; // Segs folder + // Joints AnyFolder Jnts = { - //--------------------------------- AnyRevoluteJoint Shoulder = { Axis = z; @@ -105,18 +105,15 @@ Main = { AnyRefNode &UpperArmNode = Main.ArmModel.Segs.UpperArm.ElbowNode; AnyRefNode &ForeArmNode = Main.ArmModel.Segs.ForeArm.ElbowNode; }; // Elbow joint - }; // Jnts folder - - AnyFolder Drivers = { + AnyFolder Drivers = { //--------------------------------- AnyKinEqSimpleDriver ShoulderMotion = { AnyRevoluteJoint &Jnt = ..Jnts.Shoulder; DriverPos = {-100*pi/180}; DriverVel = {30*pi/180}; }; // Shoulder driver - //--------------------------------- AnyKinEqSimpleDriver ElbowMotion = { AnyRevoluteJoint &Jnt = ..Jnts.Elbow; @@ -124,8 +121,7 @@ Main = { DriverVel = {45*pi/180}; }; // Elbow driver }; // Driver folder - - + }; // MyModel // The study: Operations to be performed on the model diff --git a/A_Getting_started_anyscript/Downloads/demo.lesson6.any b/A_Getting_started_anyscript/Downloads/demo.lesson6.any index 7dbe79a9..6fe4581b 100644 --- a/A_Getting_started_anyscript/Downloads/demo.lesson6.any +++ b/A_Getting_started_anyscript/Downloads/demo.lesson6.any @@ -87,15 +87,15 @@ Main = { sRel = {-0.25,0,-0.05}; }; AnyRefNode PalmNode = { - sRel = {0.27,0,0}; - }; + sRel = {0.27,0,0}; + }; AnyDrawSeg DrwSeg = {}; }; // ForeArm }; // Segs folder + // Joints AnyFolder Jnts = { - //--------------------------------- AnyRevoluteJoint Shoulder = { Axis = z; @@ -108,12 +108,11 @@ Main = { AnyRefNode &UpperArmNode = Main.ArmModel.Segs.UpperArm.ElbowNode; AnyRefNode &ForeArmNode = Main.ArmModel.Segs.ForeArm.ElbowNode; }; // Elbow joint - }; // Jnts folder - + AnyFolder Drivers = { - //--------------------------------- + AnyKinEqSimpleDriver ShoulderMotion = { AnyRevoluteJoint &Jnt = ..Jnts.Shoulder; DriverPos = {-100*pi/180}; @@ -131,11 +130,11 @@ Main = { }; // Driver folder AnyFolder Muscles = { - // Simple muscle model with constant strength = 300 Newton + // Simple muscle model with constant strength = 400 Newton AnyMuscleModel MusMdl = { F0 = 400; }; - + //--------------------------------- AnyMuscleViaPoint Brachialis = { AnyMuscleModel &MusMdl = ..Muscles.MusMdl; @@ -143,7 +142,7 @@ Main = { AnyRefNode &Ins = ..Segs.ForeArm.Brachialis; AnyDrawMuscle DrwMus = {}; }; - + //--------------------------------- AnyMuscleViaPoint DeltodeusA = { AnyMuscleModel &MusMdl = ..Muscles.MusMdl; @@ -151,7 +150,7 @@ Main = { AnyRefNode &Ins = ..Segs.UpperArm.DeltodeusA; AnyDrawMuscle DrwMus = {}; }; - + //--------------------------------- AnyMuscleViaPoint DeltodeusB = { AnyMuscleModel &MusMdl = ..Muscles.MusMdl; @@ -159,7 +158,7 @@ Main = { AnyRefNode &Ins = ..Segs.UpperArm.DeltodeusB; AnyDrawMuscle DrwMus = {}; }; - + //--------------------------------- AnyMuscleViaPoint Brachioradialis = { AnyMuscleModel &MusMdl = ..Muscles.MusMdl; @@ -167,7 +166,7 @@ Main = { AnyRefNode &Ins = ..Segs.ForeArm.Brachioradialis; AnyDrawMuscle DrwMus = {}; }; - + //--------------------------------- AnyMuscleViaPoint BicepsShort = { AnyMuscleModel &MusMdl = ..Muscles.MusMdl; @@ -175,7 +174,7 @@ Main = { AnyRefNode &Ins = ..Segs.ForeArm.Biceps; AnyDrawMuscle DrwMus = {}; }; - + //--------------------------------- AnyMuscleViaPoint TricepsShort = { AnyMuscleModel &MusMdl = ..Muscles.MusMdl; @@ -183,7 +182,7 @@ Main = { AnyRefNode &Ins = ..Segs.ForeArm.Triceps; AnyDrawMuscle DrwMus = {}; }; - + //--------------------------------- AnyMuscleViaPoint BicepsLong = { AnyMuscleModel &MusMdl = ..Muscles.MusMdl; @@ -191,7 +190,7 @@ Main = { AnyRefNode &Ins = ..Segs.ForeArm.Biceps; AnyDrawMuscle DrwMus = {}; }; - + //--------------------------------- AnyMuscleViaPoint TricepsLong = { AnyMuscleModel &MusMdl = ..Muscles.MusMdl; @@ -200,23 +199,20 @@ Main = { AnyDrawMuscle DrwMus = {}; }; }; // Muscles folder - + AnyFolder Loads = { - - //--------------------------------- + //--------------------------------- AnyForce3D Dumbbell = { AnyRefNode &PalmNode = ..Segs.ForeArm.PalmNode; F = {0,-100,0}; // Force in Newton }; - }; // Loads folder� - + }; // Loads folder }; // MyModel - + // The study: Operations to be performed on the model AnyBodyStudy ArmStudy = { AnyFolder &Model = .ArmModel; Gravity = {0.0, -9.81, 0.0}; }; -}; // Main - +}; // Main \ No newline at end of file diff --git a/A_Getting_started_anyscript/Snippets/lesson4/snip.NewModel.main-1.any b/A_Getting_started_anyscript/Snippets/lesson4/snip.NewModel.main-1.any index 8980201e..94e1f297 100644 --- a/A_Getting_started_anyscript/Snippets/lesson4/snip.NewModel.main-1.any +++ b/A_Getting_started_anyscript/Snippets/lesson4/snip.NewModel.main-1.any @@ -105,9 +105,25 @@ Main = { AnyRefNode &UpperArmNode = Main.ArmModel.Segs.UpperArm.ElbowNode; AnyRefNode &ForeArmNode = Main.ArmModel.Segs.ForeArm.ElbowNode; }; // Elbow joint - - }; // Jnts folder - +//# BEGIN SNIPPET 1 +}; // Jnts folder + +§AnyFolder Drivers = { + //--------------------------------- + AnyKinEqSimpleDriver ShoulderMotion = { + AnyRevoluteJoint &Jnt = ..Jnts.Shoulder; + DriverPos = {-100*pi/180}; + DriverVel = {30*pi/180}; + }; // Shoulder driver + //--------------------------------- + AnyKinEqSimpleDriver ElbowMotion = { + AnyRevoluteJoint &Jnt = ..Jnts.Elbow; + DriverPos = {90*pi/180}; + DriverVel = {45*pi/180}; + }; // Elbow driver +}; // Driver folder§ +//# END SNIPPET 1 + }; // MyModel // The study: Operations to be performed on the model diff --git a/A_Getting_started_anyscript/Snippets/lesson4/snip.NewModel.main-2.any b/A_Getting_started_anyscript/Snippets/lesson4/snip.NewModel.main-2.any new file mode 100644 index 00000000..d01f2f1f --- /dev/null +++ b/A_Getting_started_anyscript/Snippets/lesson4/snip.NewModel.main-2.any @@ -0,0 +1,137 @@ +// Todo: Write a small description of your model here + +Main = { + + // The actual body model goes in this folder + AnyFolder ArmModel = { + + // Global Reference Frame + AnyFixedRefFrame GlobalRef = { + + AnyDrawRefFrame DrwGlobalRef = { + ScaleXYZ = {0.1, 0.1, 0.1}; + RGB = {0,1,0}; + }; + AnyRefNode Shoulder = { + sRel = {0,0,0}; + }; + AnyRefNode DeltodeusA = { + sRel = {0.05,0,0}; + }; + AnyRefNode DeltodeusB = { + sRel = {-0.05,0,0}; + }; + AnyRefNode BicepsLong = { + sRel = {0.1,0,0}; + }; + AnyRefNode TricepsLong = { + sRel = {-0.1,0,0}; + }; + }; // Global reference frame + + // Segments + AnyFolder Segs = { + AnySeg UpperArm = { + r0 = {0, 0.3, 0}; + Axes0 =RotMat(-90*pi/180, z); + Mass = 2; + Jii = {0.001, 0.01, 0.01}; + AnyDrawSeg drw = {}; + + AnyRefNode ShoulderNode = { + sRel = {-0.2,0,0}; + }; + AnyRefNode ElbowNode = { + sRel = {0.2,0,0}; + }; + AnyRefNode DeltodeusA = { + sRel = {-0.1,0,0.02}; + }; + AnyRefNode DeltodeusB = { + sRel = {-0.1,0,-0.02}; + }; + AnyRefNode Brachialis = { + sRel = {0.1,0,0.01}; + }; + AnyRefNode BicepsShort = { + sRel = {-0.1,0,0.03}; + }; + AnyRefNode Brachioradialis = { + sRel = {0.05,0,0.02}; + }; + AnyRefNode TricepsShort = { + sRel = {-0.1,0,-0.01}; + }; + }; // UpperArm + + AnySeg ForeArm = { + r0 = {0.3, 0, 0}; + Mass = 2.0; + Jii = {0.001,0.01,0.01}; + AnyRefNode ElbowNode = { + sRel = {-0.2,0,0}; + }; + AnyRefNode HandNode = { + sRel = {0.2,0,0}; + }; + AnyRefNode Brachialis = { + sRel = {-0.1,0,0.02}; + }; + AnyRefNode Brachioradialis = { + sRel = {0.0,0,0.02}; + }; + AnyRefNode Biceps = { + sRel = {-0.15,0,0.01}; + }; + AnyRefNode Triceps = { + sRel = {-0.25,0,-0.05}; + }; + AnyDrawSeg DrwSeg = {}; + }; // ForeArm + + }; // Segs folder + + // Joints + AnyFolder Jnts = { + //--------------------------------- + AnyRevoluteJoint Shoulder = { + Axis = z; + AnyRefNode &GroundNode = ..GlobalRef.Shoulder; + AnyRefNode &UpperArmNode = ..Segs.UpperArm.ShoulderNode; + }; // Shoulder joint + + AnyRevoluteJoint Elbow = { + Axis = z; + AnyRefNode &UpperArmNode = Main.ArmModel.Segs.UpperArm.ElbowNode; + AnyRefNode &ForeArmNode = Main.ArmModel.Segs.ForeArm.ElbowNode; + }; // Elbow joint + }; // Jnts folder + + AnyFolder Drivers = { + //--------------------------------- + AnyKinEqSimpleDriver ShoulderMotion = { +//# BEGIN SNIPPET 1 +AnyRevoluteJoint &Jnt = ..Jnts.Shoulder; +//# END SNIPPET 1 + DriverPos = {-100*pi/180}; + DriverVel = {30*pi/180}; + }; // Shoulder driver + //--------------------------------- + AnyKinEqSimpleDriver ElbowMotion = { +//# BEGIN SNIPPET 2 +AnyRevoluteJoint &Jnt = ..Jnts.Elbow; +//# END SNIPPET 2 + DriverPos = {90*pi/180}; + DriverVel = {45*pi/180}; + }; // Elbow driver + }; // Driver folder + + }; // MyModel + + // The study: Operations to be performed on the model + AnyBodyStudy ArmStudy = { + AnyFolder &Model = .ArmModel; + Gravity = {0.0, -9.81, 0.0}; + }; + +}; // Main diff --git a/A_Getting_started_anyscript/Snippets/lesson5/snip.NewModel.main-1.any b/A_Getting_started_anyscript/Snippets/lesson5/snip.NewModel.main-1.any new file mode 100644 index 00000000..923ef2f3 --- /dev/null +++ b/A_Getting_started_anyscript/Snippets/lesson5/snip.NewModel.main-1.any @@ -0,0 +1,139 @@ +// Todo: Write a small description of your model here + +Main = { + + // The actual body model goes in this folder + AnyFolder ArmModel = { + + // Global Reference Frame + AnyFixedRefFrame GlobalRef = { + + AnyDrawRefFrame DrwGlobalRef = { + ScaleXYZ = {0.1, 0.1, 0.1}; + RGB = {0,1,0}; + }; + AnyRefNode Shoulder = { + sRel = {0,0,0}; + }; + AnyRefNode DeltodeusA = { + sRel = {0.05,0,0}; + }; + AnyRefNode DeltodeusB = { + sRel = {-0.05,0,0}; + }; + AnyRefNode BicepsLong = { + sRel = {0.1,0,0}; + }; + AnyRefNode TricepsLong = { + sRel = {-0.1,0,0}; + }; + }; // Global reference frame + + // Segments + AnyFolder Segs = { + AnySeg UpperArm = { + r0 = {0, 0.3, 0}; + Axes0 =RotMat(-90*pi/180, z); + Mass = 2; + Jii = {0.001, 0.01, 0.01}; + AnyDrawSeg drw = {}; + + AnyRefNode ShoulderNode = { + sRel = {-0.2,0,0}; + }; + AnyRefNode ElbowNode = { + sRel = {0.2,0,0}; + }; + AnyRefNode DeltodeusA = { + sRel = {-0.1,0,0.02}; + }; + AnyRefNode DeltodeusB = { + sRel = {-0.1,0,-0.02}; + }; + AnyRefNode Brachialis = { + sRel = {0.1,0,0.01}; + }; + AnyRefNode BicepsShort = { + sRel = {-0.1,0,0.03}; + }; + AnyRefNode Brachioradialis = { + sRel = {0.05,0,0.02}; + }; + AnyRefNode TricepsShort = { + sRel = {-0.1,0,-0.01}; + }; + }; // UpperArm + + AnySeg ForeArm = { + r0 = {0.3, 0, 0}; + Mass = 2.0; + Jii = {0.001,0.01,0.01}; + AnyRefNode ElbowNode = { + sRel = {-0.2,0,0}; + }; + AnyRefNode HandNode = { + sRel = {0.2,0,0}; + }; + AnyRefNode Brachialis = { + sRel = {-0.1,0,0.02}; + }; + AnyRefNode Brachioradialis = { + sRel = {0.0,0,0.02}; + }; + AnyRefNode Biceps = { + sRel = {-0.15,0,0.01}; + }; + AnyRefNode Triceps = { + sRel = {-0.25,0,-0.05}; + }; + AnyDrawSeg DrwSeg = {}; + }; // ForeArm + + }; // Segs folder + + // Joints + AnyFolder Jnts = { + //--------------------------------- + AnyRevoluteJoint Shoulder = { + Axis = z; + AnyRefNode &GroundNode = ..GlobalRef.Shoulder; + AnyRefNode &UpperArmNode = ..Segs.UpperArm.ShoulderNode; + }; // Shoulder joint + + AnyRevoluteJoint Elbow = { + Axis = z; + AnyRefNode &UpperArmNode = Main.ArmModel.Segs.UpperArm.ElbowNode; + AnyRefNode &ForeArmNode = Main.ArmModel.Segs.ForeArm.ElbowNode; + }; // Elbow joint + }; // Jnts folder + + AnyFolder Drivers = { + //--------------------------------- + AnyKinEqSimpleDriver ShoulderMotion = { + AnyRevoluteJoint &Jnt = ..Jnts.Shoulder; + DriverPos = {-100*pi/180}; + DriverVel = {30*pi/180}; + }; // Shoulder driver + //--------------------------------- + AnyKinEqSimpleDriver ElbowMotion = { + AnyRevoluteJoint &Jnt = ..Jnts.Elbow; + DriverPos = {90*pi/180}; + DriverVel = {45*pi/180}; + }; // Elbow driver +//# BEGIN SNIPPET 1 +}; // Driver folder + +§AnyFolder Muscles = { + +}; // Muscles folder§ +//# END SNIPPET 1 + + }; // MyModel + + // The study: Operations to be performed on the model + AnyBodyStudy ArmStudy = { + AnyFolder &Model = .ArmModel; + Gravity = {0.0, -9.81, 0.0}; + }; + +}; // Main diff --git a/A_Getting_started_anyscript/Snippets/lesson5/snip.NewModel.main-2.any b/A_Getting_started_anyscript/Snippets/lesson5/snip.NewModel.main-2.any new file mode 100644 index 00000000..2615c50a --- /dev/null +++ b/A_Getting_started_anyscript/Snippets/lesson5/snip.NewModel.main-2.any @@ -0,0 +1,141 @@ +// Todo: Write a small description of your model here + +Main = { + + // The actual body model goes in this folder + AnyFolder ArmModel = { + + // Global Reference Frame + AnyFixedRefFrame GlobalRef = { + + AnyDrawRefFrame DrwGlobalRef = { + ScaleXYZ = {0.1, 0.1, 0.1}; + RGB = {0,1,0}; + }; + AnyRefNode Shoulder = { + sRel = {0,0,0}; + }; + AnyRefNode DeltodeusA = { + sRel = {0.05,0,0}; + }; + AnyRefNode DeltodeusB = { + sRel = {-0.05,0,0}; + }; + AnyRefNode BicepsLong = { + sRel = {0.1,0,0}; + }; + AnyRefNode TricepsLong = { + sRel = {-0.1,0,0}; + }; + }; // Global reference frame + + // Segments + AnyFolder Segs = { + AnySeg UpperArm = { + r0 = {0, 0.3, 0}; + Axes0 =RotMat(-90*pi/180, z); + Mass = 2; + Jii = {0.001, 0.01, 0.01}; + AnyDrawSeg drw = {}; + + AnyRefNode ShoulderNode = { + sRel = {-0.2,0,0}; + }; + AnyRefNode ElbowNode = { + sRel = {0.2,0,0}; + }; + AnyRefNode DeltodeusA = { + sRel = {-0.1,0,0.02}; + }; + AnyRefNode DeltodeusB = { + sRel = {-0.1,0,-0.02}; + }; + AnyRefNode Brachialis = { + sRel = {0.1,0,0.01}; + }; + AnyRefNode BicepsShort = { + sRel = {-0.1,0,0.03}; + }; + AnyRefNode Brachioradialis = { + sRel = {0.05,0,0.02}; + }; + AnyRefNode TricepsShort = { + sRel = {-0.1,0,-0.01}; + }; + }; // UpperArm + + AnySeg ForeArm = { + r0 = {0.3, 0, 0}; + Mass = 2.0; + Jii = {0.001,0.01,0.01}; + AnyRefNode ElbowNode = { + sRel = {-0.2,0,0}; + }; + AnyRefNode HandNode = { + sRel = {0.2,0,0}; + }; + AnyRefNode Brachialis = { + sRel = {-0.1,0,0.02}; + }; + AnyRefNode Brachioradialis = { + sRel = {0.0,0,0.02}; + }; + AnyRefNode Biceps = { + sRel = {-0.15,0,0.01}; + }; + AnyRefNode Triceps = { + sRel = {-0.25,0,-0.05}; + }; + AnyDrawSeg DrwSeg = {}; + }; // ForeArm + + }; // Segs folder + + // Joints + AnyFolder Jnts = { + //--------------------------------- + AnyRevoluteJoint Shoulder = { + Axis = z; + AnyRefNode &GroundNode = ..GlobalRef.Shoulder; + AnyRefNode &UpperArmNode = ..Segs.UpperArm.ShoulderNode; + }; // Shoulder joint + + AnyRevoluteJoint Elbow = { + Axis = z; + AnyRefNode &UpperArmNode = Main.ArmModel.Segs.UpperArm.ElbowNode; + AnyRefNode &ForeArmNode = Main.ArmModel.Segs.ForeArm.ElbowNode; + }; // Elbow joint + }; // Jnts folder + + AnyFolder Drivers = { + //--------------------------------- + AnyKinEqSimpleDriver ShoulderMotion = { + AnyRevoluteJoint &Jnt = ..Jnts.Shoulder; + DriverPos = {-100*pi/180}; + DriverVel = {30*pi/180}; + }; // Shoulder driver + //--------------------------------- + AnyKinEqSimpleDriver ElbowMotion = { + AnyRevoluteJoint &Jnt = ..Jnts.Elbow; + DriverPos = {90*pi/180}; + DriverVel = {45*pi/180}; + }; // Elbow driver + }; // Driver folder +//# BEGIN SNIPPET 1 +AnyFolder Muscles = { + §// Simple muscle model with constant strength = 400 Newton + AnyMuscleModel MusMdl = { + F0 = 400; + };§ +}; // Muscles folder +//# END SNIPPET 1 + + }; // MyModel + + // The study: Operations to be performed on the model + AnyBodyStudy ArmStudy = { + AnyFolder &Model = .ArmModel; + Gravity = {0.0, -9.81, 0.0}; + }; + +}; // Main diff --git a/A_Getting_started_anyscript/Snippets/lesson5/snip.NewModel.main-3.any b/A_Getting_started_anyscript/Snippets/lesson5/snip.NewModel.main-3.any new file mode 100644 index 00000000..a8be1858 --- /dev/null +++ b/A_Getting_started_anyscript/Snippets/lesson5/snip.NewModel.main-3.any @@ -0,0 +1,150 @@ +// Todo: Write a small description of your model here + +Main = { + + // The actual body model goes in this folder + AnyFolder ArmModel = { + + // Global Reference Frame + AnyFixedRefFrame GlobalRef = { + + AnyDrawRefFrame DrwGlobalRef = { + ScaleXYZ = {0.1, 0.1, 0.1}; + RGB = {0,1,0}; + }; + AnyRefNode Shoulder = { + sRel = {0,0,0}; + }; + AnyRefNode DeltodeusA = { + sRel = {0.05,0,0}; + }; + AnyRefNode DeltodeusB = { + sRel = {-0.05,0,0}; + }; + AnyRefNode BicepsLong = { + sRel = {0.1,0,0}; + }; + AnyRefNode TricepsLong = { + sRel = {-0.1,0,0}; + }; + }; // Global reference frame + + // Segments + AnyFolder Segs = { + AnySeg UpperArm = { + r0 = {0, 0.3, 0}; + Axes0 =RotMat(-90*pi/180, z); + Mass = 2; + Jii = {0.001, 0.01, 0.01}; + AnyDrawSeg drw = {}; + + AnyRefNode ShoulderNode = { + sRel = {-0.2,0,0}; + }; + AnyRefNode ElbowNode = { + sRel = {0.2,0,0}; + }; + AnyRefNode DeltodeusA = { + sRel = {-0.1,0,0.02}; + }; + AnyRefNode DeltodeusB = { + sRel = {-0.1,0,-0.02}; + }; + AnyRefNode Brachialis = { + sRel = {0.1,0,0.01}; + }; + AnyRefNode BicepsShort = { + sRel = {-0.1,0,0.03}; + }; + AnyRefNode Brachioradialis = { + sRel = {0.05,0,0.02}; + }; + AnyRefNode TricepsShort = { + sRel = {-0.1,0,-0.01}; + }; + }; // UpperArm + + AnySeg ForeArm = { + r0 = {0.3, 0, 0}; + Mass = 2.0; + Jii = {0.001,0.01,0.01}; + AnyRefNode ElbowNode = { + sRel = {-0.2,0,0}; + }; + AnyRefNode HandNode = { + sRel = {0.2,0,0}; + }; + AnyRefNode Brachialis = { + sRel = {-0.1,0,0.02}; + }; + AnyRefNode Brachioradialis = { + sRel = {0.0,0,0.02}; + }; + AnyRefNode Biceps = { + sRel = {-0.15,0,0.01}; + }; + AnyRefNode Triceps = { + sRel = {-0.25,0,-0.05}; + }; + AnyDrawSeg DrwSeg = {}; + }; // ForeArm + + }; // Segs folder + + // Joints + AnyFolder Jnts = { + //--------------------------------- + AnyRevoluteJoint Shoulder = { + Axis = z; + AnyRefNode &GroundNode = ..GlobalRef.Shoulder; + AnyRefNode &UpperArmNode = ..Segs.UpperArm.ShoulderNode; + }; // Shoulder joint + + AnyRevoluteJoint Elbow = { + Axis = z; + AnyRefNode &UpperArmNode = Main.ArmModel.Segs.UpperArm.ElbowNode; + AnyRefNode &ForeArmNode = Main.ArmModel.Segs.ForeArm.ElbowNode; + }; // Elbow joint + }; // Jnts folder + + AnyFolder Drivers = { + //--------------------------------- + AnyKinEqSimpleDriver ShoulderMotion = { + AnyRevoluteJoint &Jnt = ..Jnts.Shoulder; + DriverPos = {-100*pi/180}; + DriverVel = {30*pi/180}; + }; // Shoulder driver + //--------------------------------- + AnyKinEqSimpleDriver ElbowMotion = { + AnyRevoluteJoint &Jnt = ..Jnts.Elbow; + DriverPos = {90*pi/180}; + DriverVel = {45*pi/180}; + }; // Elbow driver + }; // Driver folder + +//# BEGIN SNIPPET 1 +AnyFolder Muscles = { + // Simple muscle model with constant strength = 400 Newton + AnyMuscleModel MusMdl = { + F0 = 400; + }; + + §//--------------------------------- + AnyMuscleViaPoint Brachialis = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..Segs.UpperArm.Brachialis; + AnyRefNode &Ins = ..Segs.ForeArm.Brachialis; + AnyDrawMuscle DrwMus = {}; + };§ +}; // Muscles folder +//# END SNIPPET 1 + + }; // MyModel + + // The study: Operations to be performed on the model + AnyBodyStudy ArmStudy = { + AnyFolder &Model = .ArmModel; + Gravity = {0.0, -9.81, 0.0}; + }; + +}; // Main diff --git a/A_Getting_started_anyscript/Snippets/lesson5/snip.NewModel.main-4.any b/A_Getting_started_anyscript/Snippets/lesson5/snip.NewModel.main-4.any new file mode 100644 index 00000000..ad13a7b1 --- /dev/null +++ b/A_Getting_started_anyscript/Snippets/lesson5/snip.NewModel.main-4.any @@ -0,0 +1,152 @@ +// Todo: Write a small description of your model here + +Main = { + + // The actual body model goes in this folder + AnyFolder ArmModel = { + + // Global Reference Frame + AnyFixedRefFrame GlobalRef = { + + AnyDrawRefFrame DrwGlobalRef = { + ScaleXYZ = {0.1, 0.1, 0.1}; + RGB = {0,1,0}; + }; + AnyRefNode Shoulder = { + sRel = {0,0,0}; + }; + AnyRefNode DeltodeusA = { + sRel = {0.05,0,0}; + }; + AnyRefNode DeltodeusB = { + sRel = {-0.05,0,0}; + }; + AnyRefNode BicepsLong = { + sRel = {0.1,0,0}; + }; + AnyRefNode TricepsLong = { + sRel = {-0.1,0,0}; + }; + }; // Global reference frame + + // Segments + AnyFolder Segs = { + AnySeg UpperArm = { + r0 = {0, 0.3, 0}; + Axes0 =RotMat(-90*pi/180, z); + Mass = 2; + Jii = {0.001, 0.01, 0.01}; + AnyDrawSeg drw = {}; + + AnyRefNode ShoulderNode = { + sRel = {-0.2,0,0}; + }; + AnyRefNode ElbowNode = { + sRel = {0.2,0,0}; + }; + AnyRefNode DeltodeusA = { + sRel = {-0.1,0,0.02}; + }; + AnyRefNode DeltodeusB = { + sRel = {-0.1,0,-0.02}; + }; + AnyRefNode Brachialis = { + sRel = {0.1,0,0.01}; + }; + AnyRefNode BicepsShort = { + sRel = {-0.1,0,0.03}; + }; + AnyRefNode Brachioradialis = { + sRel = {0.05,0,0.02}; + }; + AnyRefNode TricepsShort = { + sRel = {-0.1,0,-0.01}; + }; + }; // UpperArm + + AnySeg ForeArm = { + r0 = {0.3, 0, 0}; + Mass = 2.0; + Jii = {0.001,0.01,0.01}; + AnyRefNode ElbowNode = { + sRel = {-0.2,0,0}; + }; + AnyRefNode HandNode = { + sRel = {0.2,0,0}; + }; + AnyRefNode Brachialis = { + sRel = {-0.1,0,0.02}; + }; + AnyRefNode Brachioradialis = { + sRel = {0.0,0,0.02}; + }; + AnyRefNode Biceps = { + sRel = {-0.15,0,0.01}; + }; + AnyRefNode Triceps = { + sRel = {-0.25,0,-0.05}; + }; + AnyDrawSeg DrwSeg = {}; + }; // ForeArm + + }; // Segs folder + + // Joints + AnyFolder Jnts = { + //--------------------------------- + AnyRevoluteJoint Shoulder = { + Axis = z; + AnyRefNode &GroundNode = ..GlobalRef.Shoulder; + AnyRefNode &UpperArmNode = ..Segs.UpperArm.ShoulderNode; + }; // Shoulder joint + + AnyRevoluteJoint Elbow = { + Axis = z; + AnyRefNode &UpperArmNode = Main.ArmModel.Segs.UpperArm.ElbowNode; + AnyRefNode &ForeArmNode = Main.ArmModel.Segs.ForeArm.ElbowNode; + }; // Elbow joint + }; // Jnts folder + + AnyFolder Drivers = { + //--------------------------------- + AnyKinEqSimpleDriver ShoulderMotion = { + AnyRevoluteJoint &Jnt = ..Jnts.Shoulder; + DriverPos = {-100*pi/180}; + DriverVel = {30*pi/180}; + }; // Shoulder driver + //--------------------------------- + AnyKinEqSimpleDriver ElbowMotion = { + AnyRevoluteJoint &Jnt = ..Jnts.Elbow; + DriverPos = {90*pi/180}; + DriverVel = {45*pi/180}; + }; // Elbow driver + }; // Driver folder + + AnyFolder Muscles = { + // Simple muscle model with constant strength = 400 Newton + AnyMuscleModel MusMdl = { + F0 = 400; + }; + + //--------------------------------- + AnyMuscleViaPoint Brachialis = { +//# BEGIN SNIPPET 1 +AnyMuscleModel &MusMdl = ..Muscles.MusMdl; +//# END SNIPPET 1 + AnyRefNode &Org = ..Segs.UpperArm.Brachialis; + AnyRefNode &Ins = ..Segs.ForeArm.Brachialis; +//# BEGIN SNIPPET 2 +AnyDrawMuscle DrwMus = {}; +//# END SNIPPET 2 + }; + }; // Muscles folder + + }; // MyModel + + // The study: Operations to be performed on the model + AnyBodyStudy ArmStudy = { + AnyFolder &Model = .ArmModel; + Gravity = {0.0, -9.81, 0.0}; + }; + +}; // Main diff --git a/A_Getting_started_anyscript/Snippets/lesson5/snip.NewModel.main-5.any b/A_Getting_started_anyscript/Snippets/lesson5/snip.NewModel.main-5.any new file mode 100644 index 00000000..0870b638 --- /dev/null +++ b/A_Getting_started_anyscript/Snippets/lesson5/snip.NewModel.main-5.any @@ -0,0 +1,204 @@ +// Todo: Write a small description of your model here + +Main = { + + // The actual body model goes in this folder + AnyFolder ArmModel = { + + // Global Reference Frame + AnyFixedRefFrame GlobalRef = { + + AnyDrawRefFrame DrwGlobalRef = { + ScaleXYZ = {0.1, 0.1, 0.1}; + RGB = {0,1,0}; + }; + AnyRefNode Shoulder = { + sRel = {0,0,0}; + }; + AnyRefNode DeltodeusA = { + sRel = {0.05,0,0}; + }; + AnyRefNode DeltodeusB = { + sRel = {-0.05,0,0}; + }; + AnyRefNode BicepsLong = { + sRel = {0.1,0,0}; + }; + AnyRefNode TricepsLong = { + sRel = {-0.1,0,0}; + }; + }; // Global reference frame + + // Segments + AnyFolder Segs = { + AnySeg UpperArm = { + r0 = {0, 0.3, 0}; + Axes0 =RotMat(-90*pi/180, z); + Mass = 2; + Jii = {0.001, 0.01, 0.01}; + AnyDrawSeg drw = {}; + + AnyRefNode ShoulderNode = { + sRel = {-0.2,0,0}; + }; + AnyRefNode ElbowNode = { + sRel = {0.2,0,0}; + }; + AnyRefNode DeltodeusA = { + sRel = {-0.1,0,0.02}; + }; + AnyRefNode DeltodeusB = { + sRel = {-0.1,0,-0.02}; + }; + AnyRefNode Brachialis = { + sRel = {0.1,0,0.01}; + }; + AnyRefNode BicepsShort = { + sRel = {-0.1,0,0.03}; + }; + AnyRefNode Brachioradialis = { + sRel = {0.05,0,0.02}; + }; + AnyRefNode TricepsShort = { + sRel = {-0.1,0,-0.01}; + }; + }; // UpperArm + + AnySeg ForeArm = { + r0 = {0.3, 0, 0}; + Mass = 2.0; + Jii = {0.001,0.01,0.01}; + AnyRefNode ElbowNode = { + sRel = {-0.2,0,0}; + }; + AnyRefNode HandNode = { + sRel = {0.2,0,0}; + }; + AnyRefNode Brachialis = { + sRel = {-0.1,0,0.02}; + }; + AnyRefNode Brachioradialis = { + sRel = {0.0,0,0.02}; + }; + AnyRefNode Biceps = { + sRel = {-0.15,0,0.01}; + }; + AnyRefNode Triceps = { + sRel = {-0.25,0,-0.05}; + }; + AnyDrawSeg DrwSeg = {}; + }; // ForeArm + + }; // Segs folder + + // Joints + AnyFolder Jnts = { + //--------------------------------- + AnyRevoluteJoint Shoulder = { + Axis = z; + AnyRefNode &GroundNode = ..GlobalRef.Shoulder; + AnyRefNode &UpperArmNode = ..Segs.UpperArm.ShoulderNode; + }; // Shoulder joint + + AnyRevoluteJoint Elbow = { + Axis = z; + AnyRefNode &UpperArmNode = Main.ArmModel.Segs.UpperArm.ElbowNode; + AnyRefNode &ForeArmNode = Main.ArmModel.Segs.ForeArm.ElbowNode; + }; // Elbow joint + }; // Jnts folder + + AnyFolder Drivers = { + //--------------------------------- + AnyKinEqSimpleDriver ShoulderMotion = { + AnyRevoluteJoint &Jnt = ..Jnts.Shoulder; + DriverPos = {-100*pi/180}; + DriverVel = {30*pi/180}; + }; // Shoulder driver + //--------------------------------- + AnyKinEqSimpleDriver ElbowMotion = { + AnyRevoluteJoint &Jnt = ..Jnts.Elbow; + DriverPos = {90*pi/180}; + DriverVel = {45*pi/180}; + }; // Elbow driver + }; // Driver folder + + AnyFolder Muscles = { + // Simple muscle model with constant strength = 400 Newton + AnyMuscleModel MusMdl = { + F0 = 400; + }; +//# BEGIN SNIPPET 1 + //--------------------------------- + AnyMuscleViaPoint Brachialis = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..Segs.UpperArm.Brachialis; + AnyRefNode &Ins = ..Segs.ForeArm.Brachialis; + AnyDrawMuscle DrwMus = {}; + }; + + §//--------------------------------- + AnyMuscleViaPoint DeltodeusA = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..GlobalRef.DeltodeusA; + AnyRefNode &Ins = ..Segs.UpperArm.DeltodeusA; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint DeltodeusB = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..GlobalRef.DeltodeusB; + AnyRefNode &Ins = ..Segs.UpperArm.DeltodeusB; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint Brachioradialis = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..Segs.UpperArm.Brachioradialis; + AnyRefNode &Ins = ..Segs.ForeArm.Brachioradialis; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint BicepsShort = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..Segs.UpperArm.BicepsShort; + AnyRefNode &Ins = ..Segs.ForeArm.Biceps; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint TricepsShort = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..Segs.UpperArm.TricepsShort; + AnyRefNode &Ins = ..Segs.ForeArm.Triceps; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint BicepsLong = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..GlobalRef.BicepsLong; + AnyRefNode &Ins = ..Segs.ForeArm.Biceps; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint TricepsLong = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..GlobalRef.TricepsLong; + AnyRefNode &Ins = ..Segs.ForeArm.Triceps; + AnyDrawMuscle DrwMus = {}; + };§ +}; // Muscles folder +//# END SNIPPET 1 + }; // MyModel + + // The study: Operations to be performed on the model + AnyBodyStudy ArmStudy = { + AnyFolder &Model = .ArmModel; + Gravity = {0.0, -9.81, 0.0}; + }; + +}; // Main diff --git a/A_Getting_started_anyscript/Snippets/lesson5/snip.NewModel.main-6.any b/A_Getting_started_anyscript/Snippets/lesson5/snip.NewModel.main-6.any new file mode 100644 index 00000000..3bae9655 --- /dev/null +++ b/A_Getting_started_anyscript/Snippets/lesson5/snip.NewModel.main-6.any @@ -0,0 +1,208 @@ +// Todo: Write a small description of your model here + +Main = { + + // The actual body model goes in this folder + AnyFolder ArmModel = { + + // Global Reference Frame + AnyFixedRefFrame GlobalRef = { + + AnyDrawRefFrame DrwGlobalRef = { + ScaleXYZ = {0.1, 0.1, 0.1}; + RGB = {0,1,0}; + }; + AnyRefNode Shoulder = { + sRel = {0,0,0}; + }; + AnyRefNode DeltodeusA = { + sRel = {0.05,0,0}; + }; + AnyRefNode DeltodeusB = { + sRel = {-0.05,0,0}; + }; + AnyRefNode BicepsLong = { + sRel = {0.1,0,0}; + }; + AnyRefNode TricepsLong = { + sRel = {-0.1,0,0}; + }; + }; // Global reference frame + + // Segments + AnyFolder Segs = { + AnySeg UpperArm = { + r0 = {0, 0.3, 0}; + Axes0 =RotMat(-90*pi/180, z); + Mass = 2; + Jii = {0.001, 0.01, 0.01}; + AnyDrawSeg drw = {}; + + AnyRefNode ShoulderNode = { + sRel = {-0.2,0,0}; + }; + AnyRefNode ElbowNode = { + sRel = {0.2,0,0}; + }; + AnyRefNode DeltodeusA = { + sRel = {-0.1,0,0.02}; + }; + AnyRefNode DeltodeusB = { + sRel = {-0.1,0,-0.02}; + }; + AnyRefNode Brachialis = { + sRel = {0.1,0,0.01}; + }; + AnyRefNode BicepsShort = { + sRel = {-0.1,0,0.03}; + }; + AnyRefNode Brachioradialis = { + sRel = {0.05,0,0.02}; + }; + AnyRefNode TricepsShort = { + sRel = {-0.1,0,-0.01}; + }; + }; // UpperArm + + AnySeg ForeArm = { + r0 = {0.3, 0, 0}; + Mass = 2.0; + Jii = {0.001,0.01,0.01}; + AnyRefNode ElbowNode = { + sRel = {-0.2,0,0}; + }; + AnyRefNode HandNode = { + sRel = {0.2,0,0}; + }; + AnyRefNode Brachialis = { + sRel = {-0.1,0,0.02}; + }; + AnyRefNode Brachioradialis = { + sRel = {0.0,0,0.02}; + }; + AnyRefNode Biceps = { + sRel = {-0.15,0,0.01}; + }; + AnyRefNode Triceps = { + sRel = {-0.25,0,-0.05}; + }; + AnyDrawSeg DrwSeg = {}; + }; // ForeArm + + }; // Segs folder + + // Joints + AnyFolder Jnts = { + //--------------------------------- + AnyRevoluteJoint Shoulder = { + Axis = z; + AnyRefNode &GroundNode = ..GlobalRef.Shoulder; + AnyRefNode &UpperArmNode = ..Segs.UpperArm.ShoulderNode; + }; // Shoulder joint + + AnyRevoluteJoint Elbow = { + Axis = z; + AnyRefNode &UpperArmNode = Main.ArmModel.Segs.UpperArm.ElbowNode; + AnyRefNode &ForeArmNode = Main.ArmModel.Segs.ForeArm.ElbowNode; + }; // Elbow joint + }; // Jnts folder + + AnyFolder Drivers = { + //--------------------------------- + //# BEGIN SNIPPET 1 + AnyKinEqSimpleDriver ShoulderMotion = { + AnyRevoluteJoint &Jnt = ..Jnts.Shoulder; + DriverPos = {-100*pi/180}; + DriverVel = {30*pi/180}; + §Reaction.Type = {Off};§ + }; // Shoulder driver + + //--------------------------------- + AnyKinEqSimpleDriver ElbowMotion = { + AnyRevoluteJoint &Jnt = ..Jnts.Elbow; + DriverPos = {90*pi/180}; + DriverVel = {45*pi/180}; + §Reaction.Type = {Off};§ + }; // Elbow driver +}; // Driver folder +//# END SNIPPET 1 + + AnyFolder Muscles = { + // Simple muscle model with constant strength = 400 Newton + AnyMuscleModel MusMdl = { + F0 = 400; + }; + + //--------------------------------- + AnyMuscleViaPoint Brachialis = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..Segs.UpperArm.Brachialis; + AnyRefNode &Ins = ..Segs.ForeArm.Brachialis; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint DeltodeusA = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..GlobalRef.DeltodeusA; + AnyRefNode &Ins = ..Segs.UpperArm.DeltodeusA; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint DeltodeusB = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..GlobalRef.DeltodeusB; + AnyRefNode &Ins = ..Segs.UpperArm.DeltodeusB; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint Brachioradialis = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..Segs.UpperArm.Brachioradialis; + AnyRefNode &Ins = ..Segs.ForeArm.Brachioradialis; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint BicepsShort = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..Segs.UpperArm.BicepsShort; + AnyRefNode &Ins = ..Segs.ForeArm.Biceps; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint TricepsShort = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..Segs.UpperArm.TricepsShort; + AnyRefNode &Ins = ..Segs.ForeArm.Triceps; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint BicepsLong = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..GlobalRef.BicepsLong; + AnyRefNode &Ins = ..Segs.ForeArm.Biceps; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint TricepsLong = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..GlobalRef.TricepsLong; + AnyRefNode &Ins = ..Segs.ForeArm.Triceps; + AnyDrawMuscle DrwMus = {}; + }; + }; // Muscles folder + }; // MyModel + + // The study: Operations to be performed on the model + AnyBodyStudy ArmStudy = { + AnyFolder &Model = .ArmModel; + Gravity = {0.0, -9.81, 0.0}; + }; + +}; // Main diff --git a/A_Getting_started_anyscript/Snippets/lesson5/snip.NewModel.main-7.any b/A_Getting_started_anyscript/Snippets/lesson5/snip.NewModel.main-7.any new file mode 100644 index 00000000..cc673d36 --- /dev/null +++ b/A_Getting_started_anyscript/Snippets/lesson5/snip.NewModel.main-7.any @@ -0,0 +1,222 @@ +// Todo: Write a small description of your model here + +Main = { + + // The actual body model goes in this folder + AnyFolder ArmModel = { + + // Global Reference Frame + AnyFixedRefFrame GlobalRef = { + + AnyDrawRefFrame DrwGlobalRef = { + ScaleXYZ = {0.1, 0.1, 0.1}; + RGB = {0,1,0}; + }; + AnyRefNode Shoulder = { + sRel = {0,0,0}; + }; + AnyRefNode DeltodeusA = { + sRel = {0.05,0,0}; + }; + AnyRefNode DeltodeusB = { + sRel = {-0.05,0,0}; + }; + AnyRefNode BicepsLong = { + sRel = {0.1,0,0}; + }; + AnyRefNode TricepsLong = { + sRel = {-0.1,0,0}; + }; + }; // Global reference frame + + // Segments + AnyFolder Segs = { + AnySeg UpperArm = { + r0 = {0, 0.3, 0}; + Axes0 =RotMat(-90*pi/180, z); + Mass = 2; + Jii = {0.001, 0.01, 0.01}; + AnyDrawSeg drw = {}; + + AnyRefNode ShoulderNode = { + sRel = {-0.2,0,0}; + }; + AnyRefNode ElbowNode = { + sRel = {0.2,0,0}; + }; + AnyRefNode DeltodeusA = { + sRel = {-0.1,0,0.02}; + }; + AnyRefNode DeltodeusB = { + sRel = {-0.1,0,-0.02}; + }; + AnyRefNode Brachialis = { + sRel = {0.1,0,0.01}; + }; + AnyRefNode BicepsShort = { + sRel = {-0.1,0,0.03}; + }; + AnyRefNode Brachioradialis = { + sRel = {0.05,0,0.02}; + }; + AnyRefNode TricepsShort = { + sRel = {-0.1,0,-0.01}; + }; + }; // UpperArm + + AnySeg ForeArm = { + r0 = {0.3, 0, 0}; + Mass = 2.0; + Jii = {0.001,0.01,0.01}; + AnyRefNode ElbowNode = { + sRel = {-0.2,0,0}; + }; + AnyRefNode HandNode = { + sRel = {0.2,0,0}; + }; + AnyRefNode Brachialis = { + sRel = {-0.1,0,0.02}; + }; + AnyRefNode Brachioradialis = { + sRel = {0.0,0,0.02}; + }; + AnyRefNode Biceps = { + sRel = {-0.15,0,0.01}; + }; + AnyRefNode Triceps = { + sRel = {-0.25,0,-0.05}; + }; + AnyDrawSeg DrwSeg = {}; +//# BEGIN SNIPPET 1 + AnyRefNode PalmNode = { + sRel = {0.27,0,0}; + }; +}; // ForeArm +//# END SNIPPET 1 + + }; // Segs folder + + // Joints + AnyFolder Jnts = { + //--------------------------------- + AnyRevoluteJoint Shoulder = { + Axis = z; + AnyRefNode &GroundNode = ..GlobalRef.Shoulder; + AnyRefNode &UpperArmNode = ..Segs.UpperArm.ShoulderNode; + }; // Shoulder joint + + AnyRevoluteJoint Elbow = { + Axis = z; + AnyRefNode &UpperArmNode = Main.ArmModel.Segs.UpperArm.ElbowNode; + AnyRefNode &ForeArmNode = Main.ArmModel.Segs.ForeArm.ElbowNode; + }; // Elbow joint + }; // Jnts folder + + AnyFolder Drivers = { + //--------------------------------- + + AnyKinEqSimpleDriver ShoulderMotion = { + AnyRevoluteJoint &Jnt = ..Jnts.Shoulder; + DriverPos = {-100*pi/180}; + DriverVel = {30*pi/180}; + Reaction.Type = {Off}; + }; // Shoulder driver + + //--------------------------------- + AnyKinEqSimpleDriver ElbowMotion = { + AnyRevoluteJoint &Jnt = ..Jnts.Elbow; + DriverPos = {90*pi/180}; + DriverVel = {45*pi/180}; + Reaction.Type = {Off}; + }; // Elbow driver + }; // Driver folder + + AnyFolder Muscles = { + // Simple muscle model with constant strength = 400 Newton + AnyMuscleModel MusMdl = { + F0 = 400; + }; + + //--------------------------------- + AnyMuscleViaPoint Brachialis = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..Segs.UpperArm.Brachialis; + AnyRefNode &Ins = ..Segs.ForeArm.Brachialis; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint DeltodeusA = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..GlobalRef.DeltodeusA; + AnyRefNode &Ins = ..Segs.UpperArm.DeltodeusA; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint DeltodeusB = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..GlobalRef.DeltodeusB; + AnyRefNode &Ins = ..Segs.UpperArm.DeltodeusB; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint Brachioradialis = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..Segs.UpperArm.Brachioradialis; + AnyRefNode &Ins = ..Segs.ForeArm.Brachioradialis; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint BicepsShort = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..Segs.UpperArm.BicepsShort; + AnyRefNode &Ins = ..Segs.ForeArm.Biceps; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint TricepsShort = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..Segs.UpperArm.TricepsShort; + AnyRefNode &Ins = ..Segs.ForeArm.Triceps; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint BicepsLong = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..GlobalRef.BicepsLong; + AnyRefNode &Ins = ..Segs.ForeArm.Biceps; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint TricepsLong = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..GlobalRef.TricepsLong; + AnyRefNode &Ins = ..Segs.ForeArm.Triceps; + AnyDrawMuscle DrwMus = {}; + }; + }; // Muscles folder + +//# BEGIN SNIPPET 2 + §AnyFolder Loads = { + //--------------------------------- + AnyForce3D Dumbbell = { + AnyRefNode &PalmNode = ..Segs.ForeArm.PalmNode; + F = {0,-100,0}; // Force in Newton + }; + }; // Loads folder§ +}; // MyModel +//# END SNIPPET 2 + + // The study: Operations to be performed on the model + AnyBodyStudy ArmStudy = { + AnyFolder &Model = .ArmModel; + Gravity = {0.0, -9.81, 0.0}; + }; + +}; // Main diff --git a/A_Getting_started_anyscript/Snippets/lesson6/snip.NewModel.main-1.any b/A_Getting_started_anyscript/Snippets/lesson6/snip.NewModel.main-1.any new file mode 100644 index 00000000..8433357a --- /dev/null +++ b/A_Getting_started_anyscript/Snippets/lesson6/snip.NewModel.main-1.any @@ -0,0 +1,225 @@ +//expect_errors = ["DrwSTL.FileName", "Model loading skipped"] + +// Todo: Write a small description of your model here + +Main = { + + // The actual body model goes in this folder + AnyFolder ArmModel = { + + // Global Reference Frame + AnyFixedRefFrame GlobalRef = { + + AnyDrawRefFrame DrwGlobalRef = { + ScaleXYZ = {0.1, 0.1, 0.1}; + RGB = {0,1,0}; + }; + AnyRefNode Shoulder = { + sRel = {0,0,0}; + }; + AnyRefNode DeltodeusA = { + sRel = {0.05,0,0}; + }; + AnyRefNode DeltodeusB = { + sRel = {-0.05,0,0}; + }; + AnyRefNode BicepsLong = { + sRel = {0.1,0,0}; + }; + AnyRefNode TricepsLong = { + sRel = {-0.1,0,0}; + }; + }; // Global reference frame + + // Segments + AnyFolder Segs = { + AnySeg UpperArm = { + r0 = {0, 0.3, 0}; + Axes0 =RotMat(-90*pi/180, z); + Mass = 2; + Jii = {0.001, 0.01, 0.01}; + AnyDrawSeg drw = {}; + + AnyRefNode ShoulderNode = { + sRel = {-0.2,0,0}; + }; + AnyRefNode ElbowNode = { + sRel = {0.2,0,0}; + }; + AnyRefNode DeltodeusA = { + sRel = {-0.1,0,0.02}; + }; + AnyRefNode DeltodeusB = { + sRel = {-0.1,0,-0.02}; + }; + AnyRefNode Brachialis = { + sRel = {0.1,0,0.01}; + }; + AnyRefNode BicepsShort = { + sRel = {-0.1,0,0.03}; + }; + AnyRefNode Brachioradialis = { + sRel = {0.05,0,0.02}; + }; + AnyRefNode TricepsShort = { + sRel = {-0.1,0,-0.01}; + }; + }; // UpperArm + + AnySeg ForeArm = { + r0 = {0.3, 0, 0}; + Mass = 2.0; + Jii = {0.001,0.01,0.01}; + AnyRefNode ElbowNode = { + sRel = {-0.2,0,0}; + }; + AnyRefNode HandNode = { + sRel = {0.2,0,0}; + }; + AnyRefNode Brachialis = { + sRel = {-0.1,0,0.02}; + }; + AnyRefNode Brachioradialis = { + sRel = {0.0,0,0.02}; + }; + AnyRefNode Biceps = { + sRel = {-0.15,0,0.01}; + }; + AnyRefNode Triceps = { + sRel = {-0.25,0,-0.05}; + }; + AnyRefNode PalmNode = { + sRel = {0.27,0,0}; + }; +//# BEGIN SNIPPET 1 + AnyDrawSeg DrwSeg = {}; + §AnyDrawSTL DrwSTL = { + FileName = "dumbbell.stl"; + };§ +}; // ForeArm +//# END SNIPPET 1 + + }; // Segs folder + + // Joints + AnyFolder Jnts = { + //--------------------------------- + AnyRevoluteJoint Shoulder = { + Axis = z; + AnyRefNode &GroundNode = ..GlobalRef.Shoulder; + AnyRefNode &UpperArmNode = ..Segs.UpperArm.ShoulderNode; + }; // Shoulder joint + + AnyRevoluteJoint Elbow = { + Axis = z; + AnyRefNode &UpperArmNode = Main.ArmModel.Segs.UpperArm.ElbowNode; + AnyRefNode &ForeArmNode = Main.ArmModel.Segs.ForeArm.ElbowNode; + }; // Elbow joint + }; // Jnts folder + + AnyFolder Drivers = { + //--------------------------------- + + AnyKinEqSimpleDriver ShoulderMotion = { + AnyRevoluteJoint &Jnt = ..Jnts.Shoulder; + DriverPos = {-100*pi/180}; + DriverVel = {30*pi/180}; + Reaction.Type = {Off}; + }; // Shoulder driver + + //--------------------------------- + AnyKinEqSimpleDriver ElbowMotion = { + AnyRevoluteJoint &Jnt = ..Jnts.Elbow; + DriverPos = {90*pi/180}; + DriverVel = {45*pi/180}; + Reaction.Type = {Off}; + }; // Elbow driver + }; // Driver folder + + AnyFolder Muscles = { + // Simple muscle model with constant strength = 400 Newton + AnyMuscleModel MusMdl = { + F0 = 400; + }; + + //--------------------------------- + AnyMuscleViaPoint Brachialis = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..Segs.UpperArm.Brachialis; + AnyRefNode &Ins = ..Segs.ForeArm.Brachialis; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint DeltodeusA = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..GlobalRef.DeltodeusA; + AnyRefNode &Ins = ..Segs.UpperArm.DeltodeusA; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint DeltodeusB = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..GlobalRef.DeltodeusB; + AnyRefNode &Ins = ..Segs.UpperArm.DeltodeusB; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint Brachioradialis = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..Segs.UpperArm.Brachioradialis; + AnyRefNode &Ins = ..Segs.ForeArm.Brachioradialis; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint BicepsShort = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..Segs.UpperArm.BicepsShort; + AnyRefNode &Ins = ..Segs.ForeArm.Biceps; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint TricepsShort = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..Segs.UpperArm.TricepsShort; + AnyRefNode &Ins = ..Segs.ForeArm.Triceps; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint BicepsLong = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..GlobalRef.BicepsLong; + AnyRefNode &Ins = ..Segs.ForeArm.Biceps; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint TricepsLong = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..GlobalRef.TricepsLong; + AnyRefNode &Ins = ..Segs.ForeArm.Triceps; + AnyDrawMuscle DrwMus = {}; + }; + }; // Muscles folder + + AnyFolder Loads = { + //--------------------------------- + AnyForce3D Dumbbell = { + AnyRefNode &PalmNode = ..Segs.ForeArm.PalmNode; + F = {0,-100,0}; // Force in Newton + }; + }; // Loads folder + }; // MyModel + + // The study: Operations to be performed on the model + AnyBodyStudy ArmStudy = { + AnyFolder &Model = .ArmModel; + Gravity = {0.0, -9.81, 0.0}; + }; + +}; // Main \ No newline at end of file diff --git a/A_Getting_started_anyscript/Snippets/lesson6/snip.NewModel.main-2.any b/A_Getting_started_anyscript/Snippets/lesson6/snip.NewModel.main-2.any new file mode 100644 index 00000000..ff90c3b3 --- /dev/null +++ b/A_Getting_started_anyscript/Snippets/lesson6/snip.NewModel.main-2.any @@ -0,0 +1,226 @@ +//expect_errors = ["DrwSTL.FileName", "Model loading skipped"] + +// Todo: Write a small description of your model here + +Main = { + + // The actual body model goes in this folder + AnyFolder ArmModel = { + + // Global Reference Frame + AnyFixedRefFrame GlobalRef = { + + AnyDrawRefFrame DrwGlobalRef = { + ScaleXYZ = {0.1, 0.1, 0.1}; + RGB = {0,1,0}; + }; + AnyRefNode Shoulder = { + sRel = {0,0,0}; + }; + AnyRefNode DeltodeusA = { + sRel = {0.05,0,0}; + }; + AnyRefNode DeltodeusB = { + sRel = {-0.05,0,0}; + }; + AnyRefNode BicepsLong = { + sRel = {0.1,0,0}; + }; + AnyRefNode TricepsLong = { + sRel = {-0.1,0,0}; + }; + }; // Global reference frame + + // Segments + AnyFolder Segs = { + AnySeg UpperArm = { + r0 = {0, 0.3, 0}; + Axes0 =RotMat(-90*pi/180, z); + Mass = 2; + Jii = {0.001, 0.01, 0.01}; + AnyDrawSeg drw = {}; + + AnyRefNode ShoulderNode = { + sRel = {-0.2,0,0}; + }; + AnyRefNode ElbowNode = { + sRel = {0.2,0,0}; + }; + AnyRefNode DeltodeusA = { + sRel = {-0.1,0,0.02}; + }; + AnyRefNode DeltodeusB = { + sRel = {-0.1,0,-0.02}; + }; + AnyRefNode Brachialis = { + sRel = {0.1,0,0.01}; + }; + AnyRefNode BicepsShort = { + sRel = {-0.1,0,0.03}; + }; + AnyRefNode Brachioradialis = { + sRel = {0.05,0,0.02}; + }; + AnyRefNode TricepsShort = { + sRel = {-0.1,0,-0.01}; + }; + }; // UpperArm + + AnySeg ForeArm = { + r0 = {0.3, 0, 0}; + Mass = 2.0; + Jii = {0.001,0.01,0.01}; + AnyRefNode ElbowNode = { + sRel = {-0.2,0,0}; + }; + AnyRefNode HandNode = { + sRel = {0.2,0,0}; + }; + AnyRefNode Brachialis = { + sRel = {-0.1,0,0.02}; + }; + AnyRefNode Brachioradialis = { + sRel = {0.0,0,0.02}; + }; + AnyRefNode Biceps = { + sRel = {-0.15,0,0.01}; + }; + AnyRefNode Triceps = { + sRel = {-0.25,0,-0.05}; + }; + AnyRefNode PalmNode = { + sRel = {0.27,0,0}; + }; + AnyDrawSeg DrwSeg = {}; +//# BEGIN SNIPPET 1 +AnyDrawSTL DrwSTL = { + FileName = "dumbbell.stl"; + §ScaleXYZ = {0.001, 0.001, 0.001};§ +}; +//# END SNIPPET 1 + }; // ForeArm + + }; // Segs folder + + // Joints + AnyFolder Jnts = { + //--------------------------------- + AnyRevoluteJoint Shoulder = { + Axis = z; + AnyRefNode &GroundNode = ..GlobalRef.Shoulder; + AnyRefNode &UpperArmNode = ..Segs.UpperArm.ShoulderNode; + }; // Shoulder joint + + AnyRevoluteJoint Elbow = { + Axis = z; + AnyRefNode &UpperArmNode = Main.ArmModel.Segs.UpperArm.ElbowNode; + AnyRefNode &ForeArmNode = Main.ArmModel.Segs.ForeArm.ElbowNode; + }; // Elbow joint + }; // Jnts folder + + AnyFolder Drivers = { + //--------------------------------- + + AnyKinEqSimpleDriver ShoulderMotion = { + AnyRevoluteJoint &Jnt = ..Jnts.Shoulder; + DriverPos = {-100*pi/180}; + DriverVel = {30*pi/180}; + Reaction.Type = {Off}; + }; // Shoulder driver + + //--------------------------------- + AnyKinEqSimpleDriver ElbowMotion = { + AnyRevoluteJoint &Jnt = ..Jnts.Elbow; + DriverPos = {90*pi/180}; + DriverVel = {45*pi/180}; + Reaction.Type = {Off}; + }; // Elbow driver + }; // Driver folder + + AnyFolder Muscles = { + // Simple muscle model with constant strength = 400 Newton + AnyMuscleModel MusMdl = { + F0 = 400; + }; + + //--------------------------------- + AnyMuscleViaPoint Brachialis = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..Segs.UpperArm.Brachialis; + AnyRefNode &Ins = ..Segs.ForeArm.Brachialis; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint DeltodeusA = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..GlobalRef.DeltodeusA; + AnyRefNode &Ins = ..Segs.UpperArm.DeltodeusA; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint DeltodeusB = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..GlobalRef.DeltodeusB; + AnyRefNode &Ins = ..Segs.UpperArm.DeltodeusB; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint Brachioradialis = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..Segs.UpperArm.Brachioradialis; + AnyRefNode &Ins = ..Segs.ForeArm.Brachioradialis; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint BicepsShort = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..Segs.UpperArm.BicepsShort; + AnyRefNode &Ins = ..Segs.ForeArm.Biceps; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint TricepsShort = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..Segs.UpperArm.TricepsShort; + AnyRefNode &Ins = ..Segs.ForeArm.Triceps; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint BicepsLong = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..GlobalRef.BicepsLong; + AnyRefNode &Ins = ..Segs.ForeArm.Biceps; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint TricepsLong = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..GlobalRef.TricepsLong; + AnyRefNode &Ins = ..Segs.ForeArm.Triceps; + AnyDrawMuscle DrwMus = {}; + }; + }; // Muscles folder + + AnyFolder Loads = { + //--------------------------------- + AnyForce3D Dumbbell = { + AnyRefNode &PalmNode = ..Segs.ForeArm.PalmNode; + F = {0,-100,0}; // Force in Newton + }; + }; // Loads folder + }; // MyModel + + // The study: Operations to be performed on the model + AnyBodyStudy ArmStudy = { + AnyFolder &Model = .ArmModel; + Gravity = {0.0, -9.81, 0.0}; + }; + +}; // Main \ No newline at end of file diff --git a/A_Getting_started_anyscript/Snippets/lesson6/snip.NewModel.main-3.any b/A_Getting_started_anyscript/Snippets/lesson6/snip.NewModel.main-3.any new file mode 100644 index 00000000..b1e3c00d --- /dev/null +++ b/A_Getting_started_anyscript/Snippets/lesson6/snip.NewModel.main-3.any @@ -0,0 +1,227 @@ +//expect_errors = ["DrwSTL.FileName", "Model loading skipped"] + +// Todo: Write a small description of your model here + +Main = { + + // The actual body model goes in this folder + AnyFolder ArmModel = { + + // Global Reference Frame + AnyFixedRefFrame GlobalRef = { + + AnyDrawRefFrame DrwGlobalRef = { + ScaleXYZ = {0.1, 0.1, 0.1}; + RGB = {0,1,0}; + }; + AnyRefNode Shoulder = { + sRel = {0,0,0}; + }; + AnyRefNode DeltodeusA = { + sRel = {0.05,0,0}; + }; + AnyRefNode DeltodeusB = { + sRel = {-0.05,0,0}; + }; + AnyRefNode BicepsLong = { + sRel = {0.1,0,0}; + }; + AnyRefNode TricepsLong = { + sRel = {-0.1,0,0}; + }; + }; // Global reference frame + + // Segments + AnyFolder Segs = { + AnySeg UpperArm = { + r0 = {0, 0.3, 0}; + Axes0 =RotMat(-90*pi/180, z); + Mass = 2; + Jii = {0.001, 0.01, 0.01}; + AnyDrawSeg drw = {}; + + AnyRefNode ShoulderNode = { + sRel = {-0.2,0,0}; + }; + AnyRefNode ElbowNode = { + sRel = {0.2,0,0}; + }; + AnyRefNode DeltodeusA = { + sRel = {-0.1,0,0.02}; + }; + AnyRefNode DeltodeusB = { + sRel = {-0.1,0,-0.02}; + }; + AnyRefNode Brachialis = { + sRel = {0.1,0,0.01}; + }; + AnyRefNode BicepsShort = { + sRel = {-0.1,0,0.03}; + }; + AnyRefNode Brachioradialis = { + sRel = {0.05,0,0.02}; + }; + AnyRefNode TricepsShort = { + sRel = {-0.1,0,-0.01}; + }; + }; // UpperArm + + AnySeg ForeArm = { + r0 = {0.3, 0, 0}; + Mass = 2.0; + Jii = {0.001,0.01,0.01}; + AnyRefNode ElbowNode = { + sRel = {-0.2,0,0}; + }; + AnyRefNode HandNode = { + sRel = {0.2,0,0}; + }; + AnyRefNode Brachialis = { + sRel = {-0.1,0,0.02}; + }; + AnyRefNode Brachioradialis = { + sRel = {0.0,0,0.02}; + }; + AnyRefNode Biceps = { + sRel = {-0.15,0,0.01}; + }; + AnyRefNode Triceps = { + sRel = {-0.25,0,-0.05}; + }; +//# BEGIN SNIPPET 1 + AnyRefNode PalmNode = { + sRel = {0.27,0,0}; + §AnyDrawSTL DrwSTL = { + FileName = "dumbbell.stl"; + ScaleXYZ = {0.001, 0.001, 0.001}; + };§ + }; + + AnyDrawSeg DrwSeg = {}; +}; // ForeArm +//# END SNIPPET 1 + + }; // Segs folder + + // Joints + AnyFolder Jnts = { + //--------------------------------- + AnyRevoluteJoint Shoulder = { + Axis = z; + AnyRefNode &GroundNode = ..GlobalRef.Shoulder; + AnyRefNode &UpperArmNode = ..Segs.UpperArm.ShoulderNode; + }; // Shoulder joint + + AnyRevoluteJoint Elbow = { + Axis = z; + AnyRefNode &UpperArmNode = Main.ArmModel.Segs.UpperArm.ElbowNode; + AnyRefNode &ForeArmNode = Main.ArmModel.Segs.ForeArm.ElbowNode; + }; // Elbow joint + }; // Jnts folder + + AnyFolder Drivers = { + //--------------------------------- + + AnyKinEqSimpleDriver ShoulderMotion = { + AnyRevoluteJoint &Jnt = ..Jnts.Shoulder; + DriverPos = {-100*pi/180}; + DriverVel = {30*pi/180}; + Reaction.Type = {Off}; + }; // Shoulder driver + + //--------------------------------- + AnyKinEqSimpleDriver ElbowMotion = { + AnyRevoluteJoint &Jnt = ..Jnts.Elbow; + DriverPos = {90*pi/180}; + DriverVel = {45*pi/180}; + Reaction.Type = {Off}; + }; // Elbow driver + }; // Driver folder + + AnyFolder Muscles = { + // Simple muscle model with constant strength = 400 Newton + AnyMuscleModel MusMdl = { + F0 = 400; + }; + + //--------------------------------- + AnyMuscleViaPoint Brachialis = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..Segs.UpperArm.Brachialis; + AnyRefNode &Ins = ..Segs.ForeArm.Brachialis; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint DeltodeusA = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..GlobalRef.DeltodeusA; + AnyRefNode &Ins = ..Segs.UpperArm.DeltodeusA; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint DeltodeusB = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..GlobalRef.DeltodeusB; + AnyRefNode &Ins = ..Segs.UpperArm.DeltodeusB; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint Brachioradialis = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..Segs.UpperArm.Brachioradialis; + AnyRefNode &Ins = ..Segs.ForeArm.Brachioradialis; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint BicepsShort = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..Segs.UpperArm.BicepsShort; + AnyRefNode &Ins = ..Segs.ForeArm.Biceps; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint TricepsShort = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..Segs.UpperArm.TricepsShort; + AnyRefNode &Ins = ..Segs.ForeArm.Triceps; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint BicepsLong = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..GlobalRef.BicepsLong; + AnyRefNode &Ins = ..Segs.ForeArm.Biceps; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint TricepsLong = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..GlobalRef.TricepsLong; + AnyRefNode &Ins = ..Segs.ForeArm.Triceps; + AnyDrawMuscle DrwMus = {}; + }; + }; // Muscles folder + + AnyFolder Loads = { + //--------------------------------- + AnyForce3D Dumbbell = { + AnyRefNode &PalmNode = ..Segs.ForeArm.PalmNode; + F = {0,-100,0}; // Force in Newton + }; + }; // Loads folder + }; // MyModel + + // The study: Operations to be performed on the model + AnyBodyStudy ArmStudy = { + AnyFolder &Model = .ArmModel; + Gravity = {0.0, -9.81, 0.0}; + }; + +}; // Main \ No newline at end of file diff --git a/A_Getting_started_anyscript/Snippets/lesson6/snip.NewModel.main-4.any b/A_Getting_started_anyscript/Snippets/lesson6/snip.NewModel.main-4.any new file mode 100644 index 00000000..7f9dd053 --- /dev/null +++ b/A_Getting_started_anyscript/Snippets/lesson6/snip.NewModel.main-4.any @@ -0,0 +1,228 @@ +//expect_errors = ["DrwSTL.FileName", "Model loading skipped"] + +// Todo: Write a small description of your model here + +Main = { + + // The actual body model goes in this folder + AnyFolder ArmModel = { + + // Global Reference Frame + AnyFixedRefFrame GlobalRef = { + + AnyDrawRefFrame DrwGlobalRef = { + ScaleXYZ = {0.1, 0.1, 0.1}; + RGB = {0,1,0}; + }; + AnyRefNode Shoulder = { + sRel = {0,0,0}; + }; + AnyRefNode DeltodeusA = { + sRel = {0.05,0,0}; + }; + AnyRefNode DeltodeusB = { + sRel = {-0.05,0,0}; + }; + AnyRefNode BicepsLong = { + sRel = {0.1,0,0}; + }; + AnyRefNode TricepsLong = { + sRel = {-0.1,0,0}; + }; + }; // Global reference frame + + // Segments + AnyFolder Segs = { + AnySeg UpperArm = { + r0 = {0, 0.3, 0}; + Axes0 =RotMat(-90*pi/180, z); + Mass = 2; + Jii = {0.001, 0.01, 0.01}; + AnyDrawSeg drw = {}; + + AnyRefNode ShoulderNode = { + sRel = {-0.2,0,0}; + }; + AnyRefNode ElbowNode = { + sRel = {0.2,0,0}; + }; + AnyRefNode DeltodeusA = { + sRel = {-0.1,0,0.02}; + }; + AnyRefNode DeltodeusB = { + sRel = {-0.1,0,-0.02}; + }; + AnyRefNode Brachialis = { + sRel = {0.1,0,0.01}; + }; + AnyRefNode BicepsShort = { + sRel = {-0.1,0,0.03}; + }; + AnyRefNode Brachioradialis = { + sRel = {0.05,0,0.02}; + }; + AnyRefNode TricepsShort = { + sRel = {-0.1,0,-0.01}; + }; + }; // UpperArm + + AnySeg ForeArm = { + r0 = {0.3, 0, 0}; + Mass = 2.0; + Jii = {0.001,0.01,0.01}; + AnyRefNode ElbowNode = { + sRel = {-0.2,0,0}; + }; + AnyRefNode HandNode = { + sRel = {0.2,0,0}; + }; + AnyRefNode Brachialis = { + sRel = {-0.1,0,0.02}; + }; + AnyRefNode Brachioradialis = { + sRel = {0.0,0,0.02}; + }; + AnyRefNode Biceps = { + sRel = {-0.15,0,0.01}; + }; + AnyRefNode Triceps = { + sRel = {-0.25,0,-0.05}; + }; +//# BEGIN SNIPPET 1 +AnyRefNode PalmNode = { + sRel = {0.27,0,0}; + §ARel = RotMat(90*pi/180, y);§ + AnyDrawSTL DrwSTL = { + FileName = "dumbbell.stl"; + ScaleXYZ = {0.001, 0.001, 0.001}; + }; +}; +//# END SNIPPET 1 + AnyDrawSeg DrwSeg = {}; + }; // ForeArm + + + }; // Segs folder + + // Joints + AnyFolder Jnts = { + //--------------------------------- + AnyRevoluteJoint Shoulder = { + Axis = z; + AnyRefNode &GroundNode = ..GlobalRef.Shoulder; + AnyRefNode &UpperArmNode = ..Segs.UpperArm.ShoulderNode; + }; // Shoulder joint + + AnyRevoluteJoint Elbow = { + Axis = z; + AnyRefNode &UpperArmNode = Main.ArmModel.Segs.UpperArm.ElbowNode; + AnyRefNode &ForeArmNode = Main.ArmModel.Segs.ForeArm.ElbowNode; + }; // Elbow joint + }; // Jnts folder + + AnyFolder Drivers = { + //--------------------------------- + + AnyKinEqSimpleDriver ShoulderMotion = { + AnyRevoluteJoint &Jnt = ..Jnts.Shoulder; + DriverPos = {-100*pi/180}; + DriverVel = {30*pi/180}; + Reaction.Type = {Off}; + }; // Shoulder driver + + //--------------------------------- + AnyKinEqSimpleDriver ElbowMotion = { + AnyRevoluteJoint &Jnt = ..Jnts.Elbow; + DriverPos = {90*pi/180}; + DriverVel = {45*pi/180}; + Reaction.Type = {Off}; + }; // Elbow driver + }; // Driver folder + + AnyFolder Muscles = { + // Simple muscle model with constant strength = 400 Newton + AnyMuscleModel MusMdl = { + F0 = 400; + }; + + //--------------------------------- + AnyMuscleViaPoint Brachialis = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..Segs.UpperArm.Brachialis; + AnyRefNode &Ins = ..Segs.ForeArm.Brachialis; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint DeltodeusA = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..GlobalRef.DeltodeusA; + AnyRefNode &Ins = ..Segs.UpperArm.DeltodeusA; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint DeltodeusB = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..GlobalRef.DeltodeusB; + AnyRefNode &Ins = ..Segs.UpperArm.DeltodeusB; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint Brachioradialis = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..Segs.UpperArm.Brachioradialis; + AnyRefNode &Ins = ..Segs.ForeArm.Brachioradialis; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint BicepsShort = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..Segs.UpperArm.BicepsShort; + AnyRefNode &Ins = ..Segs.ForeArm.Biceps; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint TricepsShort = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..Segs.UpperArm.TricepsShort; + AnyRefNode &Ins = ..Segs.ForeArm.Triceps; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint BicepsLong = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..GlobalRef.BicepsLong; + AnyRefNode &Ins = ..Segs.ForeArm.Biceps; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint TricepsLong = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..GlobalRef.TricepsLong; + AnyRefNode &Ins = ..Segs.ForeArm.Triceps; + AnyDrawMuscle DrwMus = {}; + }; + }; // Muscles folder + + AnyFolder Loads = { + //--------------------------------- + AnyForce3D Dumbbell = { + AnyRefNode &PalmNode = ..Segs.ForeArm.PalmNode; + F = {0,-100,0}; // Force in Newton + }; + }; // Loads folder + }; // MyModel + + // The study: Operations to be performed on the model + AnyBodyStudy ArmStudy = { + AnyFolder &Model = .ArmModel; + Gravity = {0.0, -9.81, 0.0}; + }; + +}; // Main \ No newline at end of file diff --git a/A_Getting_started_anyscript/Snippets/lesson6/snip.NewModel.main-5.any b/A_Getting_started_anyscript/Snippets/lesson6/snip.NewModel.main-5.any new file mode 100644 index 00000000..93473ec2 --- /dev/null +++ b/A_Getting_started_anyscript/Snippets/lesson6/snip.NewModel.main-5.any @@ -0,0 +1,229 @@ +//expect_errors = ["DrwSTL.FileName", "Model loading skipped"] + +// Todo: Write a small description of your model here + +Main = { + + // The actual body model goes in this folder + AnyFolder ArmModel = { + + // Global Reference Frame + AnyFixedRefFrame GlobalRef = { + + AnyDrawRefFrame DrwGlobalRef = { + ScaleXYZ = {0.1, 0.1, 0.1}; + RGB = {0,1,0}; + }; + AnyRefNode Shoulder = { + sRel = {0,0,0}; + }; + AnyRefNode DeltodeusA = { + sRel = {0.05,0,0}; + }; + AnyRefNode DeltodeusB = { + sRel = {-0.05,0,0}; + }; + AnyRefNode BicepsLong = { + sRel = {0.1,0,0}; + }; + AnyRefNode TricepsLong = { + sRel = {-0.1,0,0}; + }; + }; // Global reference frame + + // Segments + AnyFolder Segs = { + AnySeg UpperArm = { + r0 = {0, 0.3, 0}; + Axes0 =RotMat(-90*pi/180, z); + Mass = 2; + Jii = {0.001, 0.01, 0.01}; + AnyDrawSeg drw = {}; + + AnyRefNode ShoulderNode = { + sRel = {-0.2,0,0}; + }; + AnyRefNode ElbowNode = { + sRel = {0.2,0,0}; + }; + AnyRefNode DeltodeusA = { + sRel = {-0.1,0,0.02}; + }; + AnyRefNode DeltodeusB = { + sRel = {-0.1,0,-0.02}; + }; + AnyRefNode Brachialis = { + sRel = {0.1,0,0.01}; + }; + AnyRefNode BicepsShort = { + sRel = {-0.1,0,0.03}; + }; + AnyRefNode Brachioradialis = { + sRel = {0.05,0,0.02}; + }; + AnyRefNode TricepsShort = { + sRel = {-0.1,0,-0.01}; + }; + }; // UpperArm + + AnySeg ForeArm = { + r0 = {0.3, 0, 0}; + Mass = 2.0; + Jii = {0.001,0.01,0.01}; + AnyRefNode ElbowNode = { + sRel = {-0.2,0,0}; + }; + AnyRefNode HandNode = { + sRel = {0.2,0,0}; + }; + AnyRefNode Brachialis = { + sRel = {-0.1,0,0.02}; + }; + AnyRefNode Brachioradialis = { + sRel = {0.0,0,0.02}; + }; + AnyRefNode Biceps = { + sRel = {-0.15,0,0.01}; + }; + AnyRefNode Triceps = { + sRel = {-0.25,0,-0.05}; + }; + AnyRefNode PalmNode = { + sRel = {0.27,0,0}; + ARel = RotMat(90*pi/180, y); +//# BEGIN SNIPPET 1 +AnyDrawSTL DrwSTL = { + FileName = "dumbbell.stl"; + ScaleXYZ = {0.001, 0.001, 0.001}; + §RGB = {0.2,0.4,0.5};§ +}; +//# END SNIPPET 1 + }; + AnyDrawSeg DrwSeg = {}; + }; // ForeArm + + + }; // Segs folder + + // Joints + AnyFolder Jnts = { + //--------------------------------- + AnyRevoluteJoint Shoulder = { + Axis = z; + AnyRefNode &GroundNode = ..GlobalRef.Shoulder; + AnyRefNode &UpperArmNode = ..Segs.UpperArm.ShoulderNode; + }; // Shoulder joint + + AnyRevoluteJoint Elbow = { + Axis = z; + AnyRefNode &UpperArmNode = Main.ArmModel.Segs.UpperArm.ElbowNode; + AnyRefNode &ForeArmNode = Main.ArmModel.Segs.ForeArm.ElbowNode; + }; // Elbow joint + }; // Jnts folder + + AnyFolder Drivers = { + //--------------------------------- + + AnyKinEqSimpleDriver ShoulderMotion = { + AnyRevoluteJoint &Jnt = ..Jnts.Shoulder; + DriverPos = {-100*pi/180}; + DriverVel = {30*pi/180}; + Reaction.Type = {Off}; + }; // Shoulder driver + + //--------------------------------- + AnyKinEqSimpleDriver ElbowMotion = { + AnyRevoluteJoint &Jnt = ..Jnts.Elbow; + DriverPos = {90*pi/180}; + DriverVel = {45*pi/180}; + Reaction.Type = {Off}; + }; // Elbow driver + }; // Driver folder + + AnyFolder Muscles = { + // Simple muscle model with constant strength = 400 Newton + AnyMuscleModel MusMdl = { + F0 = 400; + }; + + //--------------------------------- + AnyMuscleViaPoint Brachialis = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..Segs.UpperArm.Brachialis; + AnyRefNode &Ins = ..Segs.ForeArm.Brachialis; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint DeltodeusA = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..GlobalRef.DeltodeusA; + AnyRefNode &Ins = ..Segs.UpperArm.DeltodeusA; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint DeltodeusB = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..GlobalRef.DeltodeusB; + AnyRefNode &Ins = ..Segs.UpperArm.DeltodeusB; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint Brachioradialis = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..Segs.UpperArm.Brachioradialis; + AnyRefNode &Ins = ..Segs.ForeArm.Brachioradialis; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint BicepsShort = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..Segs.UpperArm.BicepsShort; + AnyRefNode &Ins = ..Segs.ForeArm.Biceps; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint TricepsShort = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..Segs.UpperArm.TricepsShort; + AnyRefNode &Ins = ..Segs.ForeArm.Triceps; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint BicepsLong = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..GlobalRef.BicepsLong; + AnyRefNode &Ins = ..Segs.ForeArm.Biceps; + AnyDrawMuscle DrwMus = {}; + }; + + //--------------------------------- + AnyMuscleViaPoint TricepsLong = { + AnyMuscleModel &MusMdl = ..Muscles.MusMdl; + AnyRefNode &Org = ..GlobalRef.TricepsLong; + AnyRefNode &Ins = ..Segs.ForeArm.Triceps; + AnyDrawMuscle DrwMus = {}; + }; + }; // Muscles folder + + AnyFolder Loads = { + //--------------------------------- + AnyForce3D Dumbbell = { + AnyRefNode &PalmNode = ..Segs.ForeArm.PalmNode; + F = {0,-100,0}; // Force in Newton + }; + }; // Loads folder + }; // MyModel + + // The study: Operations to be performed on the model + AnyBodyStudy ArmStudy = { + AnyFolder &Model = .ArmModel; + Gravity = {0.0, -9.81, 0.0}; + }; + +}; // Main \ No newline at end of file diff --git a/A_Getting_started_anyscript/_static/lesson5/image1.png b/A_Getting_started_anyscript/_static/lesson5/image1.png index aaecdd79c9965f5bf4f50e81bb8536cd271979ef..666c3a37297c81f379538cb7a40709196cf3841f 100644 GIT binary patch literal 76804 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 KVzs-F*hd|95e|+jDm= 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�jZQF5d)!}YN`UdSRm_#JKf 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