#include "../libdef.any" //This model presents a new methodology for implementation of facet joints in the lumbar spine model //developed by De Zee et al. (2007: J Biomech. 40, 1219-1227). It enables the facet joint forces //to become part of a redundant system of equilibrium equations for the entire system including //the muscles. This redundant system is subsequently solved uniquely thereby making it possible //to analyze the effect of whole body movements and loads on facet joint loading for the whole //lumbar spine together with its muscles. //More details can also be found in the webcast //"Implementation of facet joints in a lumbar spine model (Mark de Zee, 25. September, 2008)" //it can be found at http://www.anybodytech.com //NOTE: for dynamic situation this model should be used with care since the facet //joint forces in this situation may add energy to the mechanical system. Main = { // ---------------------------------------------------------- // Path to draw settings // ---------------------------------------------------------- #include "Model/DrawSettings.any" // ---------------------------------------------------------- // Body Model Configuration // ---------------------------------------------------------- #include "Model/BodyModelConfiguration.any" // The Mannequin file specifies load-time positions for all the segments // in the HumanModel. This is important for the model's ablity to resolve // all the kinematic constraints when the model is analyzed. // The mannequin file also drives those degrees of freedom of the human // model that are not governed by problem-specific drivers at run time. #include "Model/Mannequin.any" // Model of the human body to be used for the analysis #include "<ANYBODY_PATH_BODY>/HumanModel.any" /// The actual model where all components are assembled AnyFolder Model = { /// Body model without default drivers AnyFolder &BodyModel=.HumanModel.BodyModel; /// Reference to the mannequin folder (used by drivers) AnyFolder &Mannequin =.HumanModel.Mannequin; ///Create a link to trunk folder AnyFolder &TrunkFolder = Main.HumanModel.BodyModel.Trunk; TrunkFolder = { //include the facet joints #include "Model/FacetJoints/FacetJointsLumbar.any" }; AnyFolder EnvironmentModel = { #include "Model/Environment.any" }; AnyFolder ModelEnvironmentConnection = { #include "Model/JointsAndDriversSimple.any" }; // ModelEnvironmentConnection }; // Model // -------------------------------------------------------------- // Studies // -------------------------------------------------------------- AnyBodyStudy Study = { AnyFolder &Model = .Model; InverseDynamics.Criterion.Type=MR_Quadratic; tEnd = 1; tStart=0; Gravity = {0.00, -9.81, 0.00}; nStep = 1; AnyOutputFile VertebraForcesL4L5 = { FileName = ANYBODY_PATH_OUTPUT+"/L4L5Forces.csv"; AnyVar FacetForceL4L5R_A = Main.HumanModel.BodyModel.Trunk.JointsLumbar.FacetJointL4L5R.Push.NormalForceScalar; AnyVar FacetForceL4L5R_B = Main.HumanModel.BodyModel.Trunk.JointsLumbar.FacetJointL4L5R.Push.NormalForceScalar2; AnyVar ReactionForceL4L5 = (Main.HumanModel.BodyModel.Trunk.JointsLumbar.L4L5Jnt.Constraints.Reaction.Fout[0]^2 + Main.HumanModel.BodyModel.Trunk.JointsLumbar.L4L5Jnt.Constraints.Reaction.Fout[1]^2 + Main.HumanModel.BodyModel.Trunk.JointsLumbar.L4L5Jnt.Constraints.Reaction.Fout[2]^2)^0.5; AnyVar SpineAngle = Main.HumanModel.BodyModel.Trunk.JointsLumbar.PelvisThoraxRotMeasure.Pos[2]*180/pi*-1; }; AnyOutputFun FacetL4L5R = { Val = .VertebraForcesL4L5.FacetForceL4L5R_B; }; AnyOutputFun ReactionForceL4L5= { Val = .VertebraForcesL4L5.ReactionForceL4L5; }; }; // Study // Include an operation sequence to run all required steps of your application (see Operations tab) #include "<ANYBODY_PATH_MODELUTILS>\Operations\RunAppSequence.any" };// Main