[38ba34]: / Body / AAUHuman / Trunk / Disc.any

Download this file

251 lines (214 with data), 6.9 kB

AnyFolder Disc ={
  
  
  
  //Drive the height in the right side
  AnyKinLinear ControlMeasureRight ={
    Ref=0;
    AnySeg &ref1=...JointsAndDrivers.MeasuringSegmentRight.Seg;
    //ref1={AnyDrawRefFrame drw={ScaleXYZ={0.12,0.12,0.12};RGB={0,0,1};};};
    AnyRefNode &ref2=.DiscSeg.node5;
    //ref2={AnyDrawRefFrame drw={ScaleXYZ={0.12,0.12,0.12};RGB={1,0,0};};};
    //AnyDrawPLine drw={Thickness=0.00375;RGB={0,0,1};};
  };
  
  AnyKinMeasureOrg    ControlMeasureRightY={
    AnyKinLinear &ref=.ControlMeasureRight;
    MeasureOrganizer={1};//Measuring along the y axis
  };
  
  //AnyKinMeasureOrg    LinRightY={
  //AnyKinLinear &ref=..LinRight;
  //MeasureOrganizer={1};
  //};
  
  AnyKinMeasureLinComb LinCombRight = {
    AnyKinMeasure& u2 = ..LinRight;
    AnyKinMeasure& u1 = .ControlMeasureRightY;
    OutDim = 1;
    Coef={
      {..Ratio,-1}
    };      
  };
  
  AnyKinEqSimpleDriver LinDrvRight={
    AnyKinMeasureLinComb &ref=.LinCombRight;
    DriverPos={0};
    DriverVel={0};
    Reaction.Type={Off};
  };
  
  //Drive the height in the left side  
  AnyKinLinear ControlMeasureLeft ={
    Ref=0;
    AnySeg &ref1=...JointsAndDrivers.MeasuringSegmentLeft.Seg;
    //ref1={AnyDrawRefFrame drw={ScaleXYZ={0.12,0.12,0.12};RGB={0,0,1};};};
    
    AnyRefNode &ref2=.DiscSeg.node3;
    //ref2={AnyDrawRefFrame drw={ScaleXYZ={0.12,0.12,0.12};RGB={1,0,0};};};
    //AnyDrawPLine drw={Thickness=0.00375;RGB={0,0,1};};
  };
  
  AnyKinMeasureOrg    ControlMeasureLeftY={
    AnyKinLinear &ref=.ControlMeasureLeft;
    MeasureOrganizer={1};
  };
  
  
  //AnyKinMeasureOrg    LinLeftY={
  //AnyKinLinear &ref=..LinLeft;
  //MeasureOrganizer={1};
  //};
  
  AnyKinMeasureLinComb LinCombLeft = {
    AnyKinMeasure& u2 = ..LinLeft;
    AnyKinMeasure& u1 = .ControlMeasureLeftY;
    OutDim = 1;
    Coef={
      {..Ratio,-1}
    };        
  };
  AnyKinEqSimpleDriver LinDrvLeft={
    AnyKinMeasureLinComb &ref=.LinCombLeft;
    DriverPos={0};
    DriverVel={0};
    Reaction.Type={Off};
  };
  
  
  AnyKinLinear ControlMeasureMid ={
    Ref=0; 
    AnyRefNode &ref1=...PelvisRef.BuckleNodeBottomCenter;
    //ref1={AnyDrawRefFrame drw={ScaleXYZ={0.12,0.12,0.12};RGB={0,0,1};};};
    
    AnyRefNode &ref2=.DiscSeg.node4;
    //ref2={AnyDrawRefFrame drw={ScaleXYZ={0.12,0.12,0.12};RGB={1,0,0};};};
    //AnyDrawPLine drw={Thickness=0.00375;RGB={0,0,1};};
  };
  AnyKinMeasureOrg    ControlMeasureMidZ={
    AnyKinLinear &ref=.ControlMeasureMid;
    MeasureOrganizer={2};
  };  
  
  AnyKinMeasureOrg    LinZ={
    AnyKinLinear &ref=..LinMid;
    MeasureOrganizer={2};
  };
  
  AnyKinMeasureLinComb LinCombMid = {
    AnyKinMeasure& u2 = .LinZ;
    AnyKinMeasure& u1 = .ControlMeasureMidZ;
    OutDim = 1;
    Coef={
      {..Ratio,-1}
    };        
  };
  AnyKinEqSimpleDriver LinDrvMid={
    AnyKinMeasureLinComb &ref=.LinCombMid;
    DriverPos={0};
    DriverVel={0};
    Reaction.Type={Off};
  };
  
  
  AnySeg DiscSeg={
    Mass=1e-5;
    Jii={0,0,0};
    r0=..r_vec;
    Axes0=..Axes_mat;
    AnyFunTransform3D &Scale = ...Scale;
    AnyRefNode node0={sRel= .Scale({0.0, 0.0, 0.0});}; //node on the spine 
    AnyRefNode node1={sRel= .Scale({0.025,0,-...L0*0.5});};  //back right side
    AnyRefNode node2={sRel= .Scale({0.025+0.5*...L1,0,-...L0*0.5-0.015});};//mid right side
    AnyRefNode node3={sRel= .Scale({0.025+...L1,0,-...L0*0.5});}; //front right
    AnyRefNode node4={sRel= .Scale({0.05+...L1,0,0});}; //mid front node
    AnyRefNode node5={sRel= .Scale({0.025+...L1,0,...L0*0.5});};//front left
    AnyRefNode node6={sRel= .Scale({0.025+0.5*...L1,0,...L0*0.5+0.015});}; //mid left side 
    AnyRefNode node7={sRel= .Scale({0.025,0,...L0*0.5});}; //back left side
    
    //visual line
    AnyKinPLine line={
      AnyRefNode &ref1=.node0;
      AnyRefNode &ref2=.node1;
      AnyRefNode &ref3=.node2;
      AnyRefNode &ref4=.node3;
      AnyRefNode &ref5=.node4;
      AnyRefNode &ref6=.node5;
      AnyRefNode &ref7=.node6;
      AnyRefNode &ref8=.node7;
      AnyRefNode &ref9=.node0;
//      AnyDrawPLine drw={RGB={0,0,1}; Thickness=0.0035;};
    }; 
    
    AnyRefNode ViaNodeRight={sRel= .Scale({0.05+...L1,0,-0.01});}; //mid front node
    AnyRefNode ViaNodeLeft={sRel= .Scale({0.05+...L1,0,0.01});}; //mid front node
    //support node center
    AnyRefNode SupportNode={
      sRel= .Scale({...L1,0,0});
    }; 
    
    //support node 
    AnyRefNode SupportNodeRight={
      sRel= .Scale({...L1,0,0.05});
    }; 
    
    AnyRefNode SupportNodeLeft={
      sRel= .Scale({...L1,0,-0.05});
//      AnyDrawRefFrame drw={};
    }; 
    
//    AnyDrawRefFrame drw = 
//    {
//      RGB = {0, 0, 0};
//      ScaleXYZ = 0.05 * {1, 1, 1};
//    };
  };
  
  
  
  AnySeg VirtuelSeg={
    Mass=1e-5;
    Jii={0,0,0};
    AnyFunTransform3D &Scale = ...Scale;
    r0=..r_vec;//+(.DiscSeg.node4.sRel+{0.01,0,0})*.DiscSeg.Axes0';
    Axes0=.DiscSeg.Axes0;
    AnyRefNode SupportNodeRight={sRel= .Scale({0,0,-0.01});};
    AnyRefNode SupportNodeLeft={sRel= .Scale({0,0,0.01});};
    AnyRefNode NodeRight={sRel= .Scale({0,0,-0.01});};
    AnyRefNode NodeLeft={sRel= .Scale({0,0,0.01});};
    AnyRefNode node0={sRel= .Scale({0,0,0.0});};
    
//    AnyDrawRefFrame drw={ScaleXYZ={0.1,0.1,0.1};RGB={0,1,0};};
  }; 
  
  
//  AnyKinEqSimpleDriver VirtuelSegDiscJnt ={
//    
//    AnyKinLinear lin={
//    Ref=0;
//      AnyRefNode &ref1=..DiscSeg.node4;
//      AnySeg &ref2=..VirtuelSeg;  
//    };
//    AnyKinRotational rot={
//      Type=RotVector;//RotAxesAngles;
//      AnyRefNode &ref1=..DiscSeg.node4;
//      AnySeg &ref2=..VirtuelSeg;  
//    }; 
//    DriverPos={0.0025,0.00,0.00,0.00,0.0,00.00};
//    DriverVel={0,0,0,0,0,0};
// };


  AnyPrismaticJoint VirtuelSegDiscJnt={
    Ref=0;
    AnyRefNode &ref1=.DiscSeg.node4;
    AnySeg &ref2=.VirtuelSeg;  
//    ref1={AnyDrawRefFrame drw={RGB={1,0,0};ScaleXYZ={0.1,0.1,0.1};};};
//    ref2={AnyDrawRefFrame drw={RGB={0,1,0};ScaleXYZ={0.15,0.15,0.15};};};
    Axis=x;  //this is the plane of the disc...
  };
  
  AnyKinEqSimpleDriver drv={
    AnyPrismaticJoint &ref=.VirtuelSegDiscJnt;
    DriverPos={0.001};
    DriverVel={0.0};
    Reaction.Type={Off};
  };
  
//  
  //  
//  AnyForce test={
//    AnyPrismaticJoint &ref=.VirtuelSegDiscJnt;
//    F={10};
//    
//  };
// // 
// //
//AnyMuscleGeneric test={
//  AnyMuscleModel mdl={ 
//    F0=1.4;
//  };
//  AnyPrismaticJoint &ref=.VirtuelSegDiscJnt;
//  Type = NonNegative;
//};
//
//AnyMuscleGeneric tes2t={
//  AnyMuscleModel mdl={ 
//    F0=1.4;
//  };
//  AnyPrismaticJoint &ref=.VirtuelSegDiscJnt;
//  Type = NonPositive;
//};

//  
//  
//  AnyReacForce testforce ={
//    AnyPrismaticJoint &ref=.VirtuelSegDiscJnt;
//  
//  };
};
//