a b/Application/Examples/ShoulderBag/Model/Environment.any
1
2
AnyFolder EnvironmentModel = {
3
    
4
  AnyFixedRefFrame GlobalRef = {
5
    Origin ={0.0,0.1,0.0}; 
6
    #include "drawcoorsystem.any"
7
  };//GlobalRef
8
  
9
  // Bag segment
10
  AnySeg Bag = {
11
    Mass = 20;
12
    Jii = {0.2,0.2,1}/10;
13
    r0 = Main.Model.BodyModel.Trunk.SegmentsLumbar.PelvisSeg.r0+{0,0,0.15};
14
    AnyRefNode StrapFront = {
15
      sRel = {0.1, 0.1, 0};
16
    };
17
    AnyRefNode StrapBack = {
18
      sRel = {-0.1, 0.1, 0};
19
    };
20
    AnyDrawSurf surf = {
21
      FileName = "../Input/bag";
22
      RGB = {128,0,0}/256;
23
      ScaleXYZ = {1,1,1}/100;
24
    };
25
  };
26
  
27
  // Create via points for the bag strap
28
  Main.Model.BodyModel.Right.ShoulderArm.Seg.Scapula = {
29
    AnyRefNode Strap1 = {
30
      sRel = {-0.05, 0.01, 0.02};
31
    };
32
  };
33
  Main.Model.BodyModel.Right.ShoulderArm.Seg.Clavicula = {
34
    AnyRefNode Strap1 = {
35
      sRel = {0.1, 0.02, -0.01};
36
    };
37
  };
38
  Main.Model.BodyModel.Trunk.SegmentsThorax.ThoraxSeg = {
39
    AnyRefNode Strap1 = {
40
      sRel = {0.1, 0.25, 0.15};
41
    };
42
  };
43
  
44
  // Contact point on the pelvis
45
  Main.Model.BodyModel.Trunk.SegmentsLumbar.PelvisSeg = {
46
    AnyRefNode Bag = {
47
      sRel = {0.0, 0.0, 0.15};
48
    };
49
  };
50
  
51
  // Constrain the bag to only slide up and down on the pelvis
52
  AnyPrismaticJoint PelvisBag = {
53
    AnyRefFrame &Pel = Main.Model.BodyModel.Trunk.SegmentsLumbar.PelvisSeg.Bag;
54
    AnyRefFrame &Bag = .Bag;
55
    Axis = y;
56
  };
57
58
  // Model the strap
59
  AnyKinPLine Strap = {
60
    AnyRefFrame &p1 = .Bag.StrapFront;
61
    AnyRefFrame &p2 = Main.Model.BodyModel.Trunk.SegmentsThorax.ThoraxSeg.Strap1;
62
    AnyRefFrame &p3 = Main.Model.BodyModel.Right.ShoulderArm.Seg.Clavicula.Strap1;
63
    AnyRefFrame &p4 = Main.Model.BodyModel.Right.ShoulderArm.Seg.Scapula.Strap1;
64
    AnyRefFrame &p5 = .Bag.StrapBack;
65
    AnyDrawPLine drw = {
66
      RGB = {128,0,0}/256;
67
      Thickness = 0.01;
68
    };
69
  };
70
  
71
  // Strap length driver
72
  AnyKinEqSimpleDriver StrapLength = {
73
    AnyKinPLine &Strap = .Strap;
74
    DriverPos = {0.8};
75
    DriverVel = {0};
76
  };
77
};