[770c98]: / Application / Examples / ShoulderBag / Model / Environment.any

Download this file

77 lines (69 with data), 2.1 kB

AnyFolder EnvironmentModel = {
    
  AnyFixedRefFrame GlobalRef = {
    Origin ={0.0,0.1,0.0}; 
    #include "drawcoorsystem.any"
  };//GlobalRef
  
  // Bag segment
  AnySeg Bag = {
    Mass = 20;
    Jii = {0.2,0.2,1}/10;
    r0 = Main.Model.BodyModel.Trunk.SegmentsLumbar.PelvisSeg.r0+{0,0,0.15};
    AnyRefNode StrapFront = {
      sRel = {0.1, 0.1, 0};
    };
    AnyRefNode StrapBack = {
      sRel = {-0.1, 0.1, 0};
    };
    AnyDrawSurf surf = {
      FileName = "../Input/bag";
      RGB = {128,0,0}/256;
      ScaleXYZ = {1,1,1}/100;
    };
  };
  
  // Create via points for the bag strap
  Main.Model.BodyModel.Right.ShoulderArm.Seg.Scapula = {
    AnyRefNode Strap1 = {
      sRel = {-0.05, 0.01, 0.02};
    };
  };
  Main.Model.BodyModel.Right.ShoulderArm.Seg.Clavicula = {
    AnyRefNode Strap1 = {
      sRel = {0.1, 0.02, -0.01};
    };
  };
  Main.Model.BodyModel.Trunk.SegmentsThorax.ThoraxSeg = {
    AnyRefNode Strap1 = {
      sRel = {0.1, 0.25, 0.15};
    };
  };
  
  // Contact point on the pelvis
  Main.Model.BodyModel.Trunk.SegmentsLumbar.PelvisSeg = {
    AnyRefNode Bag = {
      sRel = {0.0, 0.0, 0.15};
    };
  };
  
  // Constrain the bag to only slide up and down on the pelvis
  AnyPrismaticJoint PelvisBag = {
    AnyRefFrame &Pel = Main.Model.BodyModel.Trunk.SegmentsLumbar.PelvisSeg.Bag;
    AnyRefFrame &Bag = .Bag;
    Axis = y;
  };

  // Model the strap
  AnyKinPLine Strap = {
    AnyRefFrame &p1 = .Bag.StrapFront;
    AnyRefFrame &p2 = Main.Model.BodyModel.Trunk.SegmentsThorax.ThoraxSeg.Strap1;
    AnyRefFrame &p3 = Main.Model.BodyModel.Right.ShoulderArm.Seg.Clavicula.Strap1;
    AnyRefFrame &p4 = Main.Model.BodyModel.Right.ShoulderArm.Seg.Scapula.Strap1;
    AnyRefFrame &p5 = .Bag.StrapBack;
    AnyDrawPLine drw = {
      RGB = {128,0,0}/256;
      Thickness = 0.01;
    };
  };
  
  // Strap length driver
  AnyKinEqSimpleDriver StrapLength = {
    AnyKinPLine &Strap = .Strap;
    DriverPos = {0.8};
    DriverVel = {0};
  };
};