369 lines (272 with data), 13.0 kB
// This file defines the origins and insertions (PosInSeg0 & PosInSeg1) of each ligament used in the model.
AnyFolder Ligaments =
{
AnyFolder& RefSegFolder = Main.Model.Segs;
// aPCL: anterior bundle of PCL
AnyFolder aPCL =
{
AnySeg& RefSeg0 = .RefSegFolder.Femur;
AnySeg& RefSeg1 = .RefSegFolder.Tibia;
AnyVec3 PosInSeg0 = {0.004379269, -0.02120045, 0.005164387};
AnyVec3 PosInSeg1 = {0.01819545, -0.008882026, -0.00310113} + {0, 0, 0.004} ;
AnyVar InitLength = vnorm(PosInSeg0 - PosInSeg1);
AnyVar RefLength = DesignVar(InitLength);
AnyVar Stiffness = DesignVar(k_aPCL);
AnyVar RefStrain = DesignVar(er_aPCL);
AnyFloat InitWrapPosVectors = 0.02*{ {0, 1, 0}, {0, 1, 1} };
AnyParamSurf& RefSurf0 = RefSeg1.FitBaseNode_Posterior.FitEllipsoid ;
};
// pPCL: posterior bundle of PCL
AnyFolder pPCL =
{
AnySeg& RefSeg0 = .RefSegFolder.Femur;
AnySeg& RefSeg1 = .RefSegFolder.Tibia;
AnyVec3 PosInSeg0 = {0.01237116, -0.02119734, 0.01100644};
AnyVec3 PosInSeg1 = {0.02283761, -0.008482172, -0.005172473} + {0, 0, 0.004};
AnyVar InitLength = vnorm(PosInSeg0 - PosInSeg1);
AnyVar RefLength = DesignVar(InitLength);
AnyVar Stiffness = DesignVar(k_pPCL);
AnyVar RefStrain = DesignVar(er_pPCL);
AnyFloat InitWrapPosVectors = 0.02*{ {0, 1, 0}, {0, 1, 1} };
AnyParamSurf& RefSurf0 = RefSeg1.FitBaseNode_Posterior.FitEllipsoid ;
};
// ALS: antero-lateral structures
AnyFolder ALS =
{
AnySeg& RefSeg0 = .RefSegFolder.Femur;
AnySeg& RefSeg1 = .RefSegFolder.Tibia;
AnyVec3 PosInSeg0 = {0.01352942, 0.003609563, -0.04485299};
AnyVec3 PosInSeg1 = {-0.008477545, -0.01265685, -0.03850314} + {0, 0, 0.004};
AnyVar InitLength = vnorm(PosInSeg0 - PosInSeg1);
AnyVar RefLength = DesignVar(InitLength);
AnyVar Stiffness = DesignVar(k_ALS);
AnyVar RefStrain = DesignVar(er_ALS);
AnyFloat InitWrapPosVectors = { 0.01*{0, 0, -1}, 0.01*{0, 0, -1} };
AnyParamSurf& RefSurf0 = RefSeg1.FitBaseNode_Lateral ;
};
// LCL: lateral collateral ligament
AnyFolder LCL =
{
AnySeg& RefSeg0 = .RefSegFolder.Femur;
AnySeg& RefSeg1 = .RefSegFolder.Tibia;
AnyVec3 PosInSeg0 = {0.01559455, 0.004353253, -0.04442619};
AnyVec3 PosInSeg1 = {0.004858377, -0.02550506, -0.04643515} + {0, 0, 0.004};
AnyVar InitLength = vnorm(PosInSeg0 - PosInSeg1);
AnyVar RefLength = DesignVar(InitLength);
AnyVar Stiffness = DesignVar(k_LCL);
AnyVar RefStrain = DesignVar(er_LCL);
AnyFloat InitWrapPosVectors = { 0.01*{0, 0, -1}, 0.01*{0, 0,-1} };
};
// aMCL: anterior bundle of medial collateral ligament
AnyFolder aMCL =
{
AnySeg& RefSeg0 = .RefSegFolder.Femur;
AnySeg& RefSeg1 = .RefSegFolder.Tibia;
AnyVec3 PosInSeg0 = {0.0007583092, -0.006442963, 0.04383098};
AnyVec3 PosInSeg1 = {-0.0192063, -0.04632891, 0.01350731} + {0, 0, 0.004};
AnyVar InitLength = vnorm(PosInSeg0 - PosInSeg1);
AnyVar RefLength = DesignVar(InitLength);
AnyVar Stiffness = DesignVar(k_aMCL);
AnyVar RefStrain = DesignVar(er_aMCL);
AnyFloat InitWrapPosVectors = 0.02*{ {0, 0, 1}, {0, 0, 1} };
AnyParamSurf& RefSurf0 = RefSeg1.FitBaseNode_Medial ;
};
// cMCL: central bundle of medial collateral ligament
AnyFolder cMCL =
{
AnySeg& RefSeg0 = .RefSegFolder.Femur;
AnySeg& RefSeg1 = .RefSegFolder.Tibia;
AnyVec3 PosInSeg0 = {0.004048008, -0.003839782, 0.04446448};
AnyVec3 PosInSeg1 = {-0.01504607, -0.04886878, 0.0165473} + {0, 0, 0.004};
AnyVar InitLength = vnorm(PosInSeg0 - PosInSeg1);
AnyVar RefLength = DesignVar(InitLength);
AnyVar Stiffness = DesignVar(k_cMCL);
AnyVar RefStrain = DesignVar(er_cMCL);
AnyFloat InitWrapPosVectors = 0.02*{ {0, 0, 1}, {0, 0, 1} };
AnyParamSurf& RefSurf0 = RefSeg1.FitBaseNode_Medial ;
};
// pMCL: posterior bundle of medial collateral ligament
AnyFolder pMCL =
{
AnySeg& RefSeg0 = .RefSegFolder.Femur;
AnySeg& RefSeg1 = .RefSegFolder.Tibia;
AnyVec3 PosInSeg0 = {0.008690275, 0.001614655, 0.04530023};
AnyVec3 PosInSeg1 = {-0.002283377, -0.01714655, 0.03775613} + {0, 0, 0.004};
AnyVar InitLength = vnorm(PosInSeg0 - PosInSeg1);
AnyVar RefLength = DesignVar(InitLength);
AnyVar Stiffness = DesignVar(k_pMCL);
AnyVar RefStrain = DesignVar(er_pMCL);
AnyFloat InitWrapPosVectors = 0.02*{ {0, 0, 1}, {0, 0, 1} };
AnyParamSurf& RefSurf0 = RefSeg1.FitBaseNode_Medial ;
};
// aCM: anterior deep medial collateral ligament
AnyFolder aCM =
{
AnySeg& RefSeg0 = .RefSegFolder.Femur;
AnySeg& RefSeg1 = .RefSegFolder.Tibia;
AnyVec3 PosInSeg0 = {0.002225927, -0.01875181, 0.03943343};
AnyVec3 PosInSeg1 = {-0.006413535, -0.01357935, 0.03980963} + {0, 0, 0.004};
AnyVar InitLength = vnorm(PosInSeg0 - PosInSeg1);
AnyVar RefLength = DesignVar(InitLength);
AnyVar Stiffness = DesignVar(k_aCM);
AnyVar RefStrain = DesignVar(er_aCM);
AnyFloat InitWrapPosVectors = 0.02*{ {0, 0, 1}, {0, 0, 1} };
AnyParamSurf& RefSurf0 = RefSeg1.FitBaseNode_Medial ;
};
// pCM: posterior deep medial collateral ligament
AnyFolder pCM =
{
AnySeg& RefSeg0 = .RefSegFolder.Femur;
AnySeg& RefSeg1 = .RefSegFolder.Tibia;
AnyVec3 PosInSeg0 = {0.01005975, -0.02076779, 0.04018645};
AnyVec3 PosInSeg1 = {0.003698719, -0.01488356, 0.04001298} + {0, 0, 0.004};
AnyVar InitLength = vnorm(PosInSeg0 - PosInSeg1);
AnyVar RefLength = DesignVar(InitLength);
AnyVar Stiffness = DesignVar(k_pCM);
AnyVar RefStrain = DesignVar(er_pCM);
AnyFloat InitWrapPosVectors = 0.02*{ {1, 0, 0}, {1, 0, 0} };
AnyParamSurf& RefSurf0 = RefSeg1.FitBaseNode_Medial ;
};
// Lcap: lateral posterior capsule
AnyFolder Lcap =
{
AnySeg& RefSeg0 = .RefSegFolder.Femur;
AnySeg& RefSeg1 = .RefSegFolder.Tibia;
AnyVec3 PosInSeg0 = {0.02655239, 0.0110935, -0.02484317};
AnyVec3 PosInSeg1 = {0.02478246, -0.0118478, -0.02511966} + {0, 0, 0.004};
AnyVar InitLength = vnorm(PosInSeg0 - PosInSeg1);
AnyVar RefLength = DesignVar(InitLength);
AnyVar Stiffness = DesignVar(k_Lcap);
AnyVar RefStrain = DesignVar(er_Lcap);
AnyFloat InitWrapPosVectors = { 0.02*{1, 0, 0}, 0.015*{1, 0, 0} };
AnyParamSurf& RefSurf0 = RefSeg0.FitBaseNode_Posterior;
AnyParamSurf& RefSurf1 = RefSeg1.FitBaseNode_Lateral ;
};
// Mcap: medial posterior capsule
AnyFolder Mcap =
{
AnySeg& RefSeg0 = .RefSegFolder.Femur;
AnySeg& RefSeg1 = .RefSegFolder.Tibia;
AnyVec3 PosInSeg0 = {0.02587168, 0.01039356, 0.02418791};
AnyVec3 PosInSeg1 = {0.02633748, -0.01385142, 0.02239421} + {0, 0, 0.004};
AnyVar InitLength = vnorm(PosInSeg0 - PosInSeg1);
AnyVar RefLength = DesignVar(InitLength);
AnyVar Stiffness = DesignVar(k_Mcap);
AnyVar RefStrain = DesignVar(er_Mcap);
AnyFloat InitWrapPosVectors = { 0.02*{1, 0, 0}, 0.015*{1, 0, 0} };
AnyParamSurf& RefSurf0 = RefSeg0.FitBaseNode_Posterior;
AnyParamSurf& RefSurf1 = RefSeg1.FitBaseNode_Medial ;
};
// OPL: oblique popliteal ligament
AnyFolder OPL =
{
AnySeg& RefSeg0 = .RefSegFolder.Femur;
AnySeg& RefSeg1 = .RefSegFolder.Tibia;
AnyVec3 PosInSeg0 = {0.02505449, 0.01226585, -0.0313533};
AnyVec3 PosInSeg1 = {0.02519822, -0.0167346, 0.0212155} + {0, 0, 0.004};
AnyVar InitLength = vnorm(PosInSeg0 - PosInSeg1);
AnyVar RefLength = DesignVar(InitLength);
AnyVar Stiffness = DesignVar(k_OPL);
AnyVar RefStrain = DesignVar(er_OPL);
AnyFloat InitWrapPosVectors = { 0.02*{1, 0, 0}, 0.015*{1, 0, 0} };
AnyParamSurf& RefSurf0 = RefSeg0.FitBaseNode_Posterior;
AnyParamSurf& RefSurf1 = RefSeg1.FitBaseNode_Medial ;
};
// PFL: popliteofibular ligament
AnyFolder PFL =
{
AnySeg& RefSeg0 = .RefSegFolder.Femur;
AnySeg& RefSeg1 = .RefSegFolder.Tibia;
AnyVec3 PosInSeg0 = {0.01172467, -0.01631783, -0.04357169};
AnyVec3 PosInSeg1 = {0.02601485, -0.008051287, -0.04238429} + {0, 0, 0.004};
AnyVar InitLength = vnorm(PosInSeg0 - PosInSeg1);
AnyVar RefLength = DesignVar(InitLength);
AnyVar Stiffness = DesignVar(k_PFL);
AnyVar RefStrain = DesignVar(er_PFL);
AnyFloat InitWrapPosVectors = { 0.01*{-1, 0, 0}, 0.015*{1, 1, 1} };
};
// sMPFL: superior medial patellofemoral ligament
AnyFolder sMPFL =
{
AnySeg& RefSeg0 = .RefSegFolder.Femur;
AnySeg& RefSeg1 = .RefSegFolder.Patella;
AnyVec3 PosInSeg0 = {-0.0008673799, 0.003846788, 0.04313949};
AnyVec3 PosInSeg1 = {-0.0003952951, 0.01165435, 0.02308688};
AnyVar InitLength = vnorm(PosInSeg0 - PosInSeg1);
AnyVar RefLength = DesignVar(InitLength);
AnyVar Stiffness = DesignVar(k_sMPFL);
AnyVar RefStrain = DesignVar(er_sMPFL);
AnyFloat InitWrapPosVectors = 0.015*{ {0, 0, 1}, {0, 0, 1} };
AnyParamSurf& RefSurf0 = RefSeg0.FitBaseNode_Medial.RotNode.FitEllip ;
};
// mMPFL: middle medial patellofemoral ligament
AnyFolder mMPFL =
{
AnySeg& RefSeg0 = .RefSegFolder.Femur;
AnySeg& RefSeg1 = .RefSegFolder.Patella;
AnyVec3 PosInSeg0 = {-0.002774547, 6.761041e-05, 0.04489463}+{0.002,0.001,-0.0005};
AnyVec3 PosInSeg1 = {-0.003625066, 0.0009966616, 0.02682617};
AnyVar InitLength = vnorm(PosInSeg0 - PosInSeg1);
AnyVar RefLength = DesignVar(InitLength);
AnyVar Stiffness = DesignVar(k_mMPFL);
AnyVar RefStrain = DesignVar(er_mMPFL);
AnyFloat InitWrapPosVectors = 0.015*{ {0, 0, 1}, {0, 0, 1} };
AnyParamSurf& RefSurf0 = RefSeg0.FitBaseNode_Medial.RotNode.FitEllip ;
};
// iMPFL: inferior medial patellofemoral ligament
AnyFolder iMPFL =
{
AnySeg& RefSeg0 = .RefSegFolder.Femur;
AnySeg& RefSeg1 = .RefSegFolder.Patella;
AnyVec3 PosInSeg0 = {-0.00126412, -0.005171204, 0.04437172}+{0.002,0.003,-0.0005};
AnyVec3 PosInSeg1 = {-0.004021806, -0.008021331, 0.02805841};
AnyVar InitLength = vnorm(PosInSeg0 - PosInSeg1);
AnyVar RefLength = DesignVar(InitLength);
AnyVar Stiffness = DesignVar(k_iMPFL);
AnyVar RefStrain = DesignVar(er_iMPFL);
AnyFloat InitWrapPosVectors = 0.015*{ {0, 0, 1}, {0, 0, 1} };
AnyParamSurf& RefSurf0 = RefSeg0.FitBaseNode_Medial.RotNode.FitEllip ;
};
// sLPFL: superior lateral patellofemoral ligament
AnyFolder sLPFL =
{
AnySeg& RefSeg0 = .RefSegFolder.Femur;
AnySeg& RefSeg1 = .RefSegFolder.Patella;
AnyVec3 PosInSeg0 = {0.01281685, 0.005717128, -0.04507754};
AnyVec3 PosInSeg1 = {-0.004625278, 0.01403737, -0.0168309};
AnyVar InitLength = vnorm(PosInSeg0 - PosInSeg1);
AnyVar RefLength = DesignVar(InitLength);
AnyVar Stiffness = DesignVar(k_sLPFL);
AnyVar RefStrain = DesignVar(er_sLPFL);
AnyFloat InitWrapPosVectors = 0.015*{ {0, 0, -1}, {0, 0, -1} };
AnyParamSurf& RefSurf0 = RefSeg0.FitBaseNode_Lateral.RotNode.FitEllip;
};
// mLPFL: middle lateral patellofemoral ligament
AnyFolder mLPFL =
{
AnySeg& RefSeg0 = .RefSegFolder.Femur;
AnySeg& RefSeg1 = .RefSegFolder.Patella;
AnyVec3 PosInSeg0 = {0.01036772, 0.001998146, -0.04549095};
AnyVec3 PosInSeg1 = {-0.006745957, 0.0001809484, -0.01991348};
AnyVar InitLength = vnorm(PosInSeg0 - PosInSeg1);
AnyVar RefLength = DesignVar(InitLength);
AnyVar Stiffness = DesignVar(k_mLPFL);
AnyVar RefStrain = DesignVar(er_mLPFL);
AnyFloat InitWrapPosVectors = 0.015*{ {0, 0, -1}, {0, 0, -1} };
AnyParamSurf& RefSurf0 = RefSeg0.FitBaseNode_Lateral.RotNode.FitEllip;
};
// iLPFL: inferior lateral patellofemoral ligament
AnyFolder iLPFL =
{
AnySeg& RefSeg0 = .RefSegFolder.Femur;
AnySeg& RefSeg1 = .RefSegFolder.Patella;
AnyVec3 PosInSeg0 = {0.01103758, -0.002124868, -0.04623395};
AnyVec3 PosInSeg1 = {-0.007697297, -0.009764967, -0.01672385};
AnyVar InitLength = vnorm(PosInSeg0 - PosInSeg1);
AnyVar RefLength = DesignVar(InitLength);
AnyVar Stiffness = DesignVar(k_iLPFL);
AnyVar RefStrain = DesignVar(er_iLPFL);
AnyFloat InitWrapPosVectors = 0.015*{ {0, 0, -1}, {0, 0, -1} };
AnyParamSurf& RefSurf0 = RefSeg0.FitBaseNode_Lateral.RotNode.FitEllip;
};
};