Download this file

658 lines (623 with data), 26.8 kB

/*
Definition of the facet joints in the lumbar spine
Contact forces are based on distances from spheres fitted to the 
articulate processes of top vertebrae to the points seeded on the 
surface of the articulate processes of the bottom vertebrae.
*/
SegmentsThorax.ThoraxSeg = {
  AnyVar R = 0.004;
  
 
  AnyRefNode FacetInferiorR = {sRel = .Scale({-0.0025,0.145,0.007}); //FacetJoint on T12
    AnyVar AngleV = -17;       //Angle Vertebra in degrees
    AnyVar AngleL = 180-158;   // Angle longitudinal facet angle in degrees
    AnyVar AngleT = 38;        // Angle transverse facet angle in degrees
    ARel = RotMat(-AngleV*pi/180,z)*RotMat(-AngleL*pi/180,z)*RotMat((AngleT-90)*pi/180,y)*RotMat(pi,y);
    //#include "DrawFacetRefInf.any"
    AnyDrawNode aa = {RGB={0,1,0};ScaleXYZ = {1, 1, 1}*..R;};
    AnySurfEllipsoid InfR = {Radius = {1, 1, 1}*..R;
      AnyDrawParamSurf drw = {RGB = {0.91796875, 0, 0};Opacity = 0.5;};
    };
    
  };
  AnyRefNode FacetInferiorL = {sRel = {.FacetInferiorR.sRel[0],.FacetInferiorR.sRel[1],.FacetInferiorR.sRel[2]*-1};
    AnyVar AngleV = -17;       //Angle Vertebra in degrees
    AnyVar AngleL = 180-158;   // Angle longitudinal facet angle in degrees
    AnyVar AngleT = 38;        // Angle transverse facet angle in degrees
    ARel = RotMat(-AngleV*pi/180,z)*RotMat(-AngleL*pi/180,z)*RotMat(((AngleT-90)-2*AngleT)*pi/180,y);
    //#include "DrawFacetRefInf.any"    
    
    AnySurfEllipsoid InfL = {Radius = {1, 1, 1}*..R;
      AnyDrawParamSurf drw = {RGB = {0.91796875, 0, 0};Opacity = 0.5;};
    };
  };
  
};


SegmentsLumbar.L1Seg = {  
  // FacetSuperiorR FSR
  // 1 - sup, 2 - inf, 3 - post, 4 - ant, 5 - middle
  AnyRefNode FSRp1 = {sRel = .Scale({-0.004,0.146,0.0175});
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSRp2 = {sRel = .Scale({-0.005,0.135,0.0135});
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSRp3 = {sRel = .Scale({-.011,0.14,0.017});
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSRp4 = {sRel = .Scale({.002,0.138,0.008});
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSRp5 = {sRel = .Scale({-.0035,0.14,0.014});
    //#include "DrawFacetRefSup.any"
  };  
  AnyRefNode FSRp6 = {sRel = .Scale({0.001442906, 0.1356992, 0.009494835});
    //#include "DrawFacetRefSup.any"
  };       
  AnyRefNode FSRp7 = {sRel = .Scale({-0.0006133735, 0.132139, 0.008184243});
    //#include "DrawFacetRefSup.any"
  };       
  AnyRefNode FSRp8 = {sRel = .Scale({-0.0003381762, 0.1341272, 0.004803517});
    //#include "DrawFacetRefSup.any"
  };     
  AnyRefNode FSRp9 = {sRel = .Scale({0.005168811, 0.1471346, 0.01000136});
    //#include "DrawFacetRefSup.any"
  };   
  AnyRefNode FSRp10 = {sRel = .Scale({0.0007519756, 0.1430468, 0.01295678});
    //#include "DrawFacetRefSup.any"
  };   
  AnyRefNode FSRp11 = {sRel = .Scale({-0.0005677035, 0.1376445, 0.01197352});
    //#include "DrawFacetRefSup.any"
  }; 
  AnyRefNode FSRp12 = {sRel = .Scale({-0.00120681, 0.1305629, 0.0129066});
    //#include "DrawFacetRefSup.any"
  };   

  // FacetSuperiorL FSL
  AnyRefNode FSLp1 = {sRel = {.FSRp1.sRel[0], .FSRp1.sRel[1], -1*.FSRp1.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp2 = {sRel = {.FSRp2.sRel[0], .FSRp2.sRel[1], -1*.FSRp2.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp3 = {sRel = {.FSRp3.sRel[0], .FSRp3.sRel[1], -1*.FSRp3.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp4 = {sRel = {.FSRp4.sRel[0], .FSRp4.sRel[1], -1*.FSRp4.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp5 = {sRel = {.FSRp5.sRel[0], .FSRp5.sRel[1], -1*.FSRp5.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };     
  AnyRefNode FSLp6 = {sRel = {.FSRp6.sRel[0], .FSRp6.sRel[1], -1*.FSRp6.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };       
  AnyRefNode FSLp7 = {sRel = {.FSRp7.sRel[0], .FSRp7.sRel[1], -1*.FSRp7.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp8 = {sRel = {.FSRp8.sRel[0], .FSRp8.sRel[1], -1*.FSRp8.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp9 = {sRel = {.FSRp9.sRel[0], .FSRp9.sRel[1], -1*.FSRp9.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp10 = {sRel = {.FSRp10.sRel[0], .FSRp10.sRel[1], -1*.FSRp10.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp11 = {sRel = {.FSRp11.sRel[0], .FSRp11.sRel[1], -1*.FSRp11.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };     
  AnyRefNode FSLp12 = {sRel = {.FSRp12.sRel[0], .FSRp12.sRel[1], -1*.FSRp12.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };   
  
  AnyVar R = 0.004;
  AnyRefNode FacetInferiorR = {sRel = .Scale({0.00875,0.1125,0.008});
    AnyVar AngleV = -17; //Angle Vertebra in degrees
    AnyVar AngleL = 180-165; // Angle longitudinal facet angle in degrees
    AnyVar AngleT = 25; // Angle transverse facet angle in degrees
    ARel = RotMat(-AngleV*pi/180,z)*RotMat(-AngleL*pi/180,z)*RotMat((AngleT-90)*pi/180,y)*RotMat(pi,y);
    //#include "DrawFacetRefInf.any"
      AnySurfEllipsoid InfR = {Radius = {1, 1, 1}*..R;
        AnyDrawParamSurf drw = {RGB = {0.91796875, 0, 0};Opacity = 0.5;};
      };
  };
  AnyRefNode FacetInferiorL = {sRel = {.FacetInferiorR.sRel[0],.FacetInferiorR.sRel[1],.FacetInferiorR.sRel[2]*-1};
    AnyVar AngleV = -17; //Angle Vertebra in degrees
    AnyVar AngleL = 180-165; // Angle longitudinal facet angle in degrees
    AnyVar AngleT = 25; // Angle transverse facet angle in degrees
    ARel = RotMat(-AngleV*pi/180,z)*RotMat(-AngleL*pi/180,z)*RotMat(((AngleT-90)-2*AngleT)*pi/180,y);
    //#include "DrawFacetRefInf.any"    
      AnySurfEllipsoid InfL = {Radius = {1, 1, 1}*..R;
        AnyDrawParamSurf drw = {RGB = {0.91796875, 0, 0};Opacity = 0.5;};
      };
  };
  
};

SegmentsLumbar.L2Seg = {
  
  // FacetSuperiorR FSR
  // 1 - sup, 2 - inf, 3 - post, 4 - ant, 5 - middle
  AnyRefNode FSRp1 = {sRel = .Scale({0.011,0.117,0.016});
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSRp2 = {sRel = .Scale({0.011,0.107,0.012});
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSRp3 = {sRel = .Scale({.004,0.112,0.019});
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSRp4 = {sRel = .Scale({.014,0.114,0.01});
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSRp5 = {sRel = .Scale({.01,0.113,0.015});
    //#include "DrawFacetRefSup.any"
  };  
  AnyRefNode FSRp6 = {sRel = .Scale({0.01332921, 0.1066279, 0.008325268});
    //#include "DrawFacetRefSup.any"
  };  
  AnyRefNode FSRp7 = {sRel = .Scale({0.01224165, 0.1036149, 0.008690987});
    //#include "DrawFacetRefSup.any"
  };    
  AnyRefNode FSRp8 = {sRel = .Scale({0.003481717, 0.1070155, 0.01562348});
    //#include "DrawFacetRefSup.any"
  };   
  AnyRefNode FSRp9 = {sRel = .Scale({0.01080072, 0.1020774, 0.004948448});
    //#include "DrawFacetRefSup.any"
  };   
  AnyRefNode FSRp10 = {sRel = .Scale({0.01026225, 0.09881531, 0.003095678});
    //#include "DrawFacetRefSup.any"
  }; 
  AnyRefNode FSRp11 = {sRel = .Scale({0.0125164, 0.1045457, 0.005035237});
    //#include "DrawFacetRefSup.any"
  }; 
  AnyRefNode FSRp12 = {sRel = .Scale({0.01361881, 0.1114827, 0.008938187});
    //#include "DrawFacetRefSup.any"
  };    

  // FacetSuperiorL FSL
  AnyRefNode FSLp1 = {sRel = {.FSRp1.sRel[0], .FSRp1.sRel[1], -1*.FSRp1.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp2 = {sRel = {.FSRp2.sRel[0], .FSRp2.sRel[1], -1*.FSRp2.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp3 = {sRel = {.FSRp3.sRel[0], .FSRp3.sRel[1], -1*.FSRp3.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp4 = {sRel = {.FSRp4.sRel[0], .FSRp4.sRel[1], -1*.FSRp4.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp5 = {sRel = {.FSRp5.sRel[0], .FSRp5.sRel[1], -1*.FSRp5.sRel[2]};
    //#include "DrawFacetRefSup.any"
  }; 
  AnyRefNode FSLp6 = {sRel = {.FSRp6.sRel[0], .FSRp6.sRel[1], -1*.FSRp6.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };    
  AnyRefNode FSLp7 = {sRel = {.FSRp7.sRel[0], .FSRp7.sRel[1], -1*.FSRp7.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp8 = {sRel = {.FSRp8.sRel[0], .FSRp8.sRel[1], -1*.FSRp8.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp9 = {sRel = {.FSRp9.sRel[0], .FSRp9.sRel[1], -1*.FSRp9.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp10 = {sRel = {.FSRp10.sRel[0], .FSRp10.sRel[1], -1*.FSRp10.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp11 = {sRel = {.FSRp11.sRel[0], .FSRp11.sRel[1], -1*.FSRp11.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };     
  AnyRefNode FSLp12 = {sRel = {.FSRp12.sRel[0], .FSRp12.sRel[1], -1*.FSRp12.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };   
  AnyRefNode FacetInferiorR = {sRel = .Scale({0.0145,0.0875,0.008});
    AnyVar AngleV = -20; //Angle Vertebra in degrees
    AnyVar AngleL = 180-161; // Angle longitudinal facet angle in degrees
    AnyVar AngleT = 31; // Angle transverse facet angle in degrees
    ARel = RotMat(-AngleV*pi/180,z)*RotMat(-AngleL*pi/180,z)*RotMat((AngleT-90)*pi/180,y)*RotMat(pi,y);
    //#include "DrawFacetRefInf.any"
      AnySurfEllipsoid InfR = {Radius = {1, 1, 1}*..R;
        AnyDrawParamSurf drw = {RGB = {0.91796875, 0, 0};Opacity = 0.5;};
      };
    };
  AnyRefNode FacetInferiorL = {sRel = {.FacetInferiorR.sRel[0],.FacetInferiorR.sRel[1],.FacetInferiorR.sRel[2]*-1};
    AnyVar AngleV = -20; //Angle Vertebra in degrees
    AnyVar AngleL = 180-161; // Angle longitudinal facet angle in degrees
    AnyVar AngleT = 31; // Angle transverse facet angle in degrees
    ARel = RotMat(-AngleV*pi/180,z)*RotMat(-AngleL*pi/180,z)*RotMat(((AngleT-90)-2*AngleT)*pi/180,y);
    //#include "DrawFacetRefInf.any"    
      AnySurfEllipsoid InfL = {Radius = {1, 1, 1}*..R;
        AnyDrawParamSurf drw = {RGB = {0.91796875, 0, 0};Opacity = 0.5;};
      };
    };
  AnyVar R = 0.004;

};

SegmentsLumbar.L3Seg = {
  // FacetSuperiorR FSR
  // 1 - sup, 2 - inf, 3 - post, 4 - ant, 5 - middle
  AnyRefNode FSRp1 = {sRel = .Scale({0.020,0.092,0.0155});
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSRp2 = {sRel = .Scale({0.018,0.0782,0.011});
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSRp3 = {sRel = .Scale({0.010,0.0842,0.015});
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSRp4 = {sRel = .Scale({0.02051,0.0892,0.0125});
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSRp5 = {sRel = .Scale({0.0160,0.0877,0.01505});
    //#include "DrawFacetRefSup.any"
  }; 
  AnyRefNode FSRp6 = {sRel = .Scale({0.01714705, 0.07708938, 0.006115979});
    //#include "DrawFacetRefSup.any"
  };  
  AnyRefNode FSRp7 = {sRel = .Scale({0.02069563, 0.08494153, 0.008760667});
    //#include "DrawFacetRefSup.any"
  };  
  AnyRefNode FSRp8 = {sRel = .Scale({0.01690595, 0.07248182, 0.006186621});
    //#include "DrawFacetRefSup.any"
  };      
  AnyRefNode FSRp9 = {sRel = .Scale({0.02046339, 0.08192918, 0.008160541});
    //#include "DrawFacetRefSup.any"
  };      
  AnyRefNode FSRp10 = {sRel = .Scale({0.01798436, 0.07134561, 0.008048799});
    //#include "DrawFacetRefSup.any"
  };     
  AnyRefNode FSRp11 = {sRel = .Scale({0.01951248, 0.08176302, 0.01089007});
    //#include "DrawFacetRefSup.any"
  };    
  AnyRefNode FSRp12 = {sRel = .Scale({0.01649838, 0.07665463, 0.002244382});
    //#include "DrawFacetRefSup.any"
  };     

  // FacetSuperiorL FSL
  AnyRefNode FSLp1 = {sRel = {.FSRp1.sRel[0], .FSRp1.sRel[1], -1*.FSRp1.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp2 = {sRel = {.FSRp2.sRel[0], .FSRp2.sRel[1], -1*.FSRp2.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp3 = {sRel = {.FSRp3.sRel[0], .FSRp3.sRel[1], -1*.FSRp3.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp4 = {sRel = {.FSRp4.sRel[0], .FSRp4.sRel[1], -1*.FSRp4.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp5 = {sRel = {.FSRp5.sRel[0], .FSRp5.sRel[1], -1*.FSRp5.sRel[2]};
    //#include "DrawFacetRefSup.any"
  }; 
  AnyRefNode FSLp6 = {sRel = {.FSRp6.sRel[0], .FSRp6.sRel[1], -1*.FSRp6.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };    
  AnyRefNode FSLp7 = {sRel = {.FSRp7.sRel[0], .FSRp7.sRel[1], -1*.FSRp7.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp8 = {sRel = {.FSRp8.sRel[0], .FSRp8.sRel[1], -1*.FSRp8.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp9 = {sRel = {.FSRp9.sRel[0], .FSRp9.sRel[1], -1*.FSRp9.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp10 = {sRel = {.FSRp10.sRel[0], .FSRp10.sRel[1], -1*.FSRp10.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp11 = {sRel = {.FSRp11.sRel[0], .FSRp11.sRel[1], -1*.FSRp11.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };     
  AnyRefNode FSLp12 = {sRel = {.FSRp12.sRel[0], .FSRp12.sRel[1], -1*.FSRp12.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };  
  AnyVar R = 0.004;
  AnyRefNode FacetInferiorR = {sRel = .Scale({0.0245,0.059,0.008});
    AnyVar AngleV = -11; //Angle Vertebra in degrees
    AnyVar AngleL = 180-157; // Angle longitudinal facet angle in degrees
    AnyVar AngleT = 43; // Angle transverse facet angle in degrees
    ARel = RotMat(-AngleV*pi/180,z)*RotMat(-AngleL*pi/180,z)*RotMat((AngleT-90)*pi/180,y)*RotMat(pi,y);
      AnySurfEllipsoid InfR = {Radius = {1, 1, 1}*..R;
        AnyDrawParamSurf drw = {RGB = {0.91796875, 0, 0};Opacity = 0.5;};
      };
  };
  AnyRefNode FacetInferiorL = {sRel = {.FacetInferiorR.sRel[0],.FacetInferiorR.sRel[1],.FacetInferiorR.sRel[2]*-1};
    AnyVar AngleV = -11; //Angle Vertebra in degrees
    AnyVar AngleL = 180-157; // Angle longitudinal facet angle in degrees
    AnyVar AngleT = 43; // Angle transverse facet angle in degrees
    ARel = RotMat(-AngleV*pi/180,z)*RotMat(-AngleL*pi/180,z)*RotMat(((AngleT-90)-2*AngleT)*pi/180,y);
      AnySurfEllipsoid InfL = {Radius = {1, 1, 1}*..R;
        AnyDrawParamSurf drw = {RGB = {0.91796875, 0, 0};Opacity = 0.5;};
      };  
  };
  
};

SegmentsLumbar.L4Seg = {
  // FacetSuperiorR FSR
  // 1 - sup, 2 - inf, 3 - post, 4 - ant, 5 - middle
  AnyRefNode FSRp1 = {sRel = .Scale({0.028,0.064,0.0165});
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSRp2 = {sRel = .Scale({0.025,0.052,0.0115});
   //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSRp3 = {sRel = .Scale({0.0150,0.059,0.016});
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSRp4 = {sRel = .Scale({0.03,0.061,0.01});
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSRp5 = {sRel = .Scale({0.026,0.06,0.015});
    //#include "DrawFacetRefSup.any"
  };  
  AnyRefNode FSRp6 = {sRel = .Scale({0.02304351, 0.05171117, 0.004399268});
    //#include "DrawFacetRefSup.any"
  };    
  AnyRefNode FSRp7 = {sRel = .Scale({0.02147786, 0.04640764, 0.007542471});
    //#include "DrawFacetRefSup.any"
  };   
  AnyRefNode FSRp8 = {sRel = .Scale({0.02218771, 0.04904409, 0.01202083});
    //#include "DrawFacetRefSup.any"
  };    
  AnyRefNode FSRp9 = {sRel = .Scale({0.02346846, 0.05680512, 0.01392128});
    //#include "DrawFacetRefSup.any"
  };    
  AnyRefNode FSRp10 = {sRel = .Scale({0.01934854, 0.0414068, 0.01220625});
    //#include "DrawFacetRefSup.any"
  };      
  AnyRefNode FSRp11 = {sRel = .Scale({0.01990831, 0.04135876, 0.00807561});
    //#include "DrawFacetRefSup.any"
  };     
  AnyRefNode FSRp12 = {sRel = .Scale({0.02740869, 0.05636345, 0.008696183});
    //#include "DrawFacetRefSup.any"
  };   
        
  // FacetSuperiorL FSL
  AnyRefNode FSLp1 = {sRel = {.FSRp1.sRel[0], .FSRp1.sRel[1], -1*.FSRp1.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp2 = {sRel = {.FSRp2.sRel[0], .FSRp2.sRel[1], -1*.FSRp2.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp3 = {sRel = {.FSRp3.sRel[0], .FSRp3.sRel[1], -1*.FSRp3.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp4 = {sRel = {.FSRp4.sRel[0], .FSRp4.sRel[1], -1*.FSRp4.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp5 = {sRel = {.FSRp5.sRel[0], .FSRp5.sRel[1], -1*.FSRp5.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp6 = {sRel = {.FSRp6.sRel[0], .FSRp6.sRel[1], -1*.FSRp6.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };    
  AnyRefNode FSLp7 = {sRel = {.FSRp7.sRel[0], .FSRp7.sRel[1], -1*.FSRp7.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp8 = {sRel = {.FSRp8.sRel[0], .FSRp8.sRel[1], -1*.FSRp8.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp9 = {sRel = {.FSRp9.sRel[0], .FSRp9.sRel[1], -1*.FSRp9.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp10 = {sRel = {.FSRp10.sRel[0], .FSRp10.sRel[1], -1*.FSRp10.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp11 = {sRel = {.FSRp11.sRel[0], .FSRp11.sRel[1], -1*.FSRp11.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };     
  AnyRefNode FSLp12 = {sRel = {.FSRp12.sRel[0], .FSRp12.sRel[1], -1*.FSRp12.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };   
  AnyVar R = 0.004;
  AnyRefNode FacetInferiorR = {sRel = .Scale({0.0234,0.029,0.008});
    AnyVar AngleV = 0; //Angle Vertebra in degrees
    AnyVar AngleL = 180-155; // Angle longitudinal facet angle in degrees
    AnyVar AngleT = 52; // Angle transverse facet angle in degrees
    ARel = RotMat(-AngleV*pi/180,z)*RotMat(-AngleL*pi/180,z)*RotMat((AngleT-90)*pi/180,y)*RotMat(pi,y);
      AnySurfEllipsoid InfR = {Radius = {1, 1, 1}*..R;
        AnyDrawParamSurf drw = {RGB = {0.91796875, 0, 0};Opacity = 0.5;};
      };
  };
  AnyRefNode FacetInferiorL = {sRel = {.FacetInferiorR.sRel[0],.FacetInferiorR.sRel[1],.FacetInferiorR.sRel[2]*-1};
    AnyVar AngleV = 0; //Angle Vertebra in degrees
    AnyVar AngleL = 180-155; // Angle longitudinal facet angle in degrees
    AnyVar AngleT = 52; // Angle transverse facet angle in degrees
    ARel = RotMat(-AngleV*pi/180,z)*RotMat(-AngleL*pi/180,z)*RotMat(((AngleT-90)-2*AngleT)*pi/180,y);
     AnySurfEllipsoid InfL = {Radius = {1, 1, 1}*..R;
       AnyDrawParamSurf drw = {RGB = {0.91796875, 0, 0};Opacity = 0.5;};
     };   
  };
  
};

SegmentsLumbar.L5Seg = {
  // FacetSuperiorR FSR
  // 1 - sup, 2 - inf, 3 - post, 4 - ant, 5 - middle
  AnyRefNode FSRp1 = {sRel = .Scale({0.0294,0.034,0.017});
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSRp2 = {sRel = .Scale({0.025,0.025,0.0115});
   //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSRp3 = {sRel = .Scale({0.016,0.032,0.0175});
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSRp4 = {sRel = .Scale({0.033,0.031,0.0115});
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSRp5 = {sRel = .Scale({0.026,0.031,0.0155});
    //#include "DrawFacetRefSup.any"
  };  
  AnyRefNode FSRp6 = {sRel = .Scale({0.02358462, 0.02237171, 0.007860789});
    //#include "DrawFacetRefSup.any"
  };    
  AnyRefNode FSRp7 = {sRel = .Scale({0.02190323, 0.02918265, 0.01539261});
    //#include "DrawFacetRefSup.any"
  };    
  AnyRefNode FSRp8 = {sRel = .Scale({0.02851537, 0.02904241, 0.01157742});
    //#include "DrawFacetRefSup.any"
  };   
  AnyRefNode FSRp9 = {sRel = .Scale({0.0204431, 0.01935198, 0.007640816});
    //#include "DrawFacetRefSup.any"
  };     
  AnyRefNode FSRp10 = {sRel = .Scale({0.01798006, 0.01730093, 0.01148283});
    //#include "DrawFacetRefSup.any"
  };   
  AnyRefNode FSRp11 = {sRel = .Scale({0.02173574, 0.02152368, 0.01211116});
    //#include "DrawFacetRefSup.any"
  };    
  AnyRefNode FSRp12 = {sRel = .Scale({0.01583122, 0.01594488, 0.006793062});
    //#include "DrawFacetRefSup.any"
  };      
 
  // FacetSuperiorL FSL
  AnyRefNode FSLp1 = {sRel = {.FSRp1.sRel[0], .FSRp1.sRel[1], -1*.FSRp1.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp2 = {sRel = {.FSRp2.sRel[0], .FSRp2.sRel[1], -1*.FSRp2.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp3 = {sRel = {.FSRp3.sRel[0], .FSRp3.sRel[1], -1*.FSRp3.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp4 = {sRel = {.FSRp4.sRel[0], .FSRp4.sRel[1], -1*.FSRp4.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp5 = {sRel = {.FSRp5.sRel[0], .FSRp5.sRel[1], -1*.FSRp5.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp6 = {sRel = {.FSRp6.sRel[0], .FSRp6.sRel[1], -1*.FSRp6.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };    
  AnyRefNode FSLp7 = {sRel = {.FSRp7.sRel[0], .FSRp7.sRel[1], -1*.FSRp7.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp8 = {sRel = {.FSRp8.sRel[0], .FSRp8.sRel[1], -1*.FSRp8.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp9 = {sRel = {.FSRp9.sRel[0], .FSRp9.sRel[1], -1*.FSRp9.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp10 = {sRel = {.FSRp10.sRel[0], .FSRp10.sRel[1], -1*.FSRp10.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp11 = {sRel = {.FSRp11.sRel[0], .FSRp11.sRel[1], -1*.FSRp11.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };     
  AnyRefNode FSLp12 = {sRel = {.FSRp12.sRel[0], .FSRp12.sRel[1], -1*.FSRp12.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };     
  AnyVar R = 0.004;
  AnyRefNode FacetInferiorR = {sRel = .Scale({0.019,0.0085,0.01});
    AnyVar AngleV = 6; //Angle Vertebra in degrees
    AnyVar AngleL = 29.5; // Angle longitudinal facet angle in degrees
    AnyVar AngleT = 53; // Angle transverse facet angle in degrees
    ARel = RotMat(-AngleV*pi/180,z)*RotMat(-AngleL*pi/180,z)*RotMat((AngleT-90)*pi/180,y)*RotMat(pi,y);
     AnySurfEllipsoid InfR = {Radius = {1, 1, 1}*..R;
       AnyDrawParamSurf drw = {RGB = {0.91796875, 0, 0};Opacity = 0.5;};
     };   
  };
  AnyRefNode FacetInferiorL = {sRel = {.FacetInferiorR.sRel[0],.FacetInferiorR.sRel[1],.FacetInferiorR.sRel[2]*-1};
    AnyVar AngleV = 6; //Angle Vertebra in degrees
    AnyVar AngleL = 29.5; // Angle longitudinal facet angle in degrees
    AnyVar AngleT = 53; // Angle transverse facet angle in degrees
    ARel = RotMat(-AngleV*pi/180,z)*RotMat(-AngleL*pi/180,z)*RotMat(((AngleT-90)-2*AngleT)*pi/180,y);
     AnySurfEllipsoid InfL = {Radius = {1, 1, 1}*..R;
       AnyDrawParamSurf drw = {RGB = {0.91796875, 0, 0};Opacity = 0.5;};
     };      
  };
  
};

SegmentsLumbar.SacrumSeg = {
  // FacetSuperiorR FSR
  // 1 - sup, 2 - inf, 3 - post, 4 - ant, 5 - middle
  AnyRefNode FSRp1 = {sRel = .Scale({0.029,0.009,0.019});
    //#include "DrawFacetRefSup.any"
  };
        
  AnyRefNode FSRp2 = {sRel = .Scale({0.02,0.002,0.0});
   //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSRp3 = {sRel = .Scale({0.01,0.0025,0.0075});
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSRp4 = {sRel = .Scale({0.033,-0.003,0.0});
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSRp5 = {sRel = .Scale({0.0247,0.004,0.0145});
    //#include "DrawFacetRefSup.any"
  };  
  AnyRefNode FSRp6 = {sRel = .Scale({0.02287947, 0.003335744, 0.008731809});
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSRp7 = {sRel = .Scale({0.01830101, 0.002522291, 0.01178848});
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSRp8 = {sRel = .Scale({0.02823348, 0.001010075, 0.008854354});
    //#include "DrawFacetRefSup.any"
  };  
  AnyRefNode FSRp9 = {sRel = .Scale({0.01893136, -0.00122226, 0.01752094});
    //#include "DrawFacetRefSup.any"
  };  
  AnyRefNode FSRp10 = {sRel = .Scale({0.02324375, 0.001651045, 0.01819691});
    //#include "DrawFacetRefSup.any"
  };   
  AnyRefNode FSRp11 = {sRel = .Scale({0.03490767, -0.004699019, 0.01424866});
    //#include "DrawFacetRefSup.any"
  };     
  AnyRefNode FSRp12 = {sRel = .Scale({0.01823249, 0.003491395, 0.006791862});
    //#include "DrawFacetRefSup.any"
  };  
 
  // FacetSuperiorL FSL
  AnyRefNode FSLp1 = {sRel = {.FSRp1.sRel[0], .FSRp1.sRel[1], -1*.FSRp1.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp2 = {sRel = {.FSRp2.sRel[0], .FSRp2.sRel[1], -1*.FSRp2.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp3 = {sRel = {.FSRp3.sRel[0], .FSRp3.sRel[1], -1*.FSRp3.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp4 = {sRel = {.FSRp4.sRel[0], .FSRp4.sRel[1], -1*.FSRp4.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp5 = {sRel = {.FSRp5.sRel[0], .FSRp5.sRel[1], -1*.FSRp5.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp6 = {sRel = {.FSRp6.sRel[0], .FSRp6.sRel[1], -1*.FSRp6.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };       
  AnyRefNode FSLp7 = {sRel = {.FSRp7.sRel[0], .FSRp7.sRel[1], -1*.FSRp7.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp8 = {sRel = {.FSRp8.sRel[0], .FSRp8.sRel[1], -1*.FSRp8.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp9 = {sRel = {.FSRp9.sRel[0], .FSRp9.sRel[1], -1*.FSRp9.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp10 = {sRel = {.FSRp10.sRel[0], .FSRp10.sRel[1], -1*.FSRp10.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };
  AnyRefNode FSLp11 = {sRel = {.FSRp11.sRel[0], .FSRp11.sRel[1], -1*.FSRp11.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };     
  AnyRefNode FSLp12 = {sRel = {.FSRp12.sRel[0], .FSRp12.sRel[1], -1*.FSRp12.sRel[2]};
    //#include "DrawFacetRefSup.any"
  };    
};

JointsLumbar = {

  AnyFolder FacetsL5Sacrum = {
    AnySeg &seg1 = ..SegmentsLumbar.SacrumSeg;
    AnySeg &seg2 = ..SegmentsLumbar.L5Seg;
    #include "FacetContForces.any"
  };  
  AnyFolder FacetsL4L5 = {
    AnySeg &seg1 = ..SegmentsLumbar.L5Seg;
    AnySeg &seg2 = ..SegmentsLumbar.L4Seg;
    #include "FacetContForces.any"
  };  
  AnyFolder FacetsL3L4 = {
    AnySeg &seg1 = ..SegmentsLumbar.L4Seg;
    AnySeg &seg2 = ..SegmentsLumbar.L3Seg;
    #include "FacetContForces.any"
  };  
  AnyFolder FacetsL2L3 = {
    AnySeg &seg1 = ..SegmentsLumbar.L3Seg;
    AnySeg &seg2 = ..SegmentsLumbar.L2Seg;
    #include "FacetContForces.any"
  };  
  AnyFolder FacetsL1L2 = {
    AnySeg &seg1 = ..SegmentsLumbar.L2Seg;
    AnySeg &seg2 = ..SegmentsLumbar.L1Seg;
    #include "FacetContForces.any"
  };  
  AnyFolder FacetsT12L1 = {
    AnySeg &seg1 = ..SegmentsLumbar.L1Seg;
    AnySeg &seg2 = ..SegmentsThorax.ThoraxSeg;
    #include "FacetContForces.any"
  };
  
};