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

Download this file

186 lines (150 with data), 4.6 kB

AnyFolder EnvironmentModel = {
  
  /* **********************************************************
  This folder contains the definition of the Environment
  - GlobalRefFrame
  
  ********************************************************** */  
  
  AnyFixedRefFrame GlobalRef = {
    //Origin =  {2.765751, 1.287964, 0.8484217};
    #include "drawcoorsystem.any"
    
    
    AnyRefNode Seat = {
      ARel= {{1,0,0},{0,0,-1},{0,1,0}};

      sRel = {2.965751, 1.287964, 0.6484217 };
      AnyDrawSurf seat = {
        FileName = "../Input/CAD/seat";
        ScaleXYZ = {0.5, 1, 0.4};
        RGB = {0.1,0.1,0.1};
      };
      AnyDrawSurf back = {
        FileName = "../Input/CAD/backrest";
        ScaleXYZ = {0.4, 0.5, 0.3};
        RGB = {0.1,0.1,0.1};

      };  
      AnyRefNode BackrestSupportNode ={
      sRel={-0.35,0.4,0};
     
      };
      
      
      // These points define the hubs of the wheels
    AnyRefNode HubRight = {
      sRel = {
        0.015,
        -0.1,
        Main.ChairParameters.AxleZ
      };
    };
    
    AnyRefNode HubLeft = {
      sRel = {
        -0.015,
        -0.1,
        -Main.ChairParameters.AxleZ
      };
    };
    

      
    };
    //    AnyDrawRefFrame drw = {};
  };//GlobalRef
  
  AnySeg WheelRight = {
    Mass = 2.5;
    Jii = {1,1,2}*0.1;
    AnyRefNode PushRim = {
      sRel = {0,Main.ChairParameters.PushRimRad,Main.ChairParameters.PushRimDist};
    };
    Axes0=.GlobalRef.Seat.ARel;
    r0 ={.GlobalRef.Seat.sRel[0],
      .GlobalRef.Seat.sRel[1]+ Main.ChairParameters.AxleZ,
      .GlobalRef.Seat.sRel[2]
    };
    AnyDrawSurf Wheel = {
      FileName = "../Input/CAD/wheel";
      RGB = {0.5, 0.5, 0.5};
      ScaleXYZ = {1,1,1}*Main.ChairParameters.WheelRad;
    };//    AnyDrawSeg drw = {};
    AnyRefNode PushRimHub = {
      sRel = {
        0,
        0,
        Main.ChairParameters.PushRimDist
      };
      AnyDrawSurf Wheel = {
        FileName = "../Input/CAD/wheel";
        RGB = {0,0,1};
        ScaleXYZ = {1,1,1}*Main.ChairParameters.PushRimRad;
      };
    };
  };
  
  AnySeg WheelLeft = {
    Mass = 2.5;
    Jii = {1,1,2}*0.1;
    AnyRefNode PushRim = {
      sRel = {0,Main.ChairParameters.PushRimRad,-Main.ChairParameters.PushRimDist};
    };
    Axes0=.GlobalRef.Seat.ARel;
    r0 ={.GlobalRef.Seat.sRel[0],
      .GlobalRef.Seat.sRel[1]- Main.ChairParameters.AxleZ,
      .GlobalRef.Seat.sRel[2]
    };
    AnyDrawSurf Wheel = {
      FileName = "../Input/CAD/wheel";
      RGB = {0.5, 0.5, 0.5};
      ScaleXYZ = {1,1,-1}*Main.ChairParameters.WheelRad;
    };//    AnyDrawSeg drw = {};
    AnyRefNode PushRimHub = {
      sRel = {
        0,
        0,
        -Main.ChairParameters.PushRimDist
      };
      AnyDrawSurf Wheel = {
        FileName = "../Input/CAD/wheel";
        RGB = {0,0,1};
        ScaleXYZ = {1,1,-1}*Main.ChairParameters.PushRimRad;
      };
    };    
  };
  
  // Join the wheels to the chair (ground, actually)
  AnyRevoluteJoint HubRight = {
    AnyRefNode &Chair = .GlobalRef.Seat.HubRight;
    AnySeg &Wheel = .WheelRight;
    Axis = z;
  };
  AnyRevoluteJoint HubLeft = {
    AnyRefNode &Chair = .GlobalRef.Seat.HubLeft;
    AnySeg &Wheel = .WheelLeft;
    Axis = z;
  };

  // Drive the wheels. This in turn determines the hand movement
  AnyKinEqSimpleDriver WheelRightDr = {
    AnyRevoluteJoint &Joint = .HubRight;
    DriverPos = {0};
    DriverVel = {0};
    Reaction.Type = {On}; 
  };
  AnyKinEqSimpleDriver WheelLeftDr = {
    AnyRevoluteJoint &Joint = .HubLeft;
    DriverPos = {0};
    DriverVel = {0};
    Reaction.Type = {On}; 
  };

 
  
  
  

AnyForce3D ForceOnHand ={
  
  
   AnyFunInterpol force={
  //Type=PiecewiseLinear;
  //Type=Bezier;
  T=Main.C3DFileData.ANALOG.TimingChann.Frames/Main.C3DFileData.HeaderInformation.VideoFrameRate;
  Data={   
    -Main.C3DFileData.ANALOG.WHLCHRFX.Frame1,
    Main.C3DFileData.ANALOG.WHLCHRFY.Frame1, 
    -Main.C3DFileData.ANALOG.WHLCHRFZ.Frame1};
    Type=Bspline;
    BsplineOrder = 8;
  
 };
  AnyRefNode &ref1=Main.Model.BodyModel.Right.ShoulderArm.Seg.Hand.Ref.Hand;
  F=force(t);
  
};


AnyDrawVector DrawSupport1 = {
  AnyRefFrame &ref = Main.Model.BodyModel.Right.ShoulderArm.Seg.Hand.Ref.Hand;
  Vec = 0.005*.ForceOnHand.F;
  
  PointAway = Off;
  DrawCoord = Off;
  
  Line.RGB = {0,0,1};
  Line.Thickness =0.0075;
  Line.End.Thickness = 2*0.0075;
  Line.End.Length = 4*0.0075;
};

  
  
};