|
| 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 |
0 commit comments