241 lines (192 with data), 5.3 kB
//The temporo mandibular joints (TMJ) on the left and right side
#if TMJ_CONTACT_MODEL == 0 & TMJ_LIGAMENT_REFRENCE_CONFIGURATION_MODEL == 0 & FREE_MOVEMENT == 0
AnyMuscleModel ArtificialMuscle={
F0=20000;
};
//The right TMJ
AnyKinLinear TMJ_JntR={
AnyRefNode &SkullRef = ..Seg.Skull.TMJ_NodeR;
AnyRefNode &MandibleRef = ..Seg.Mandible.TMJ_NodeR;
Ref=0;
};
AnyKinEqSimpleDriver TMJ_JntR_Z_Constraint = {
AnyKinMeasureOrg TMJ_JntR_Z={
AnyKinLinear &ref = ..TMJ_JntR;
MeasureOrganizer={2};
};
DriverPos = {0.0};
DriverVel = {0.0};
Reaction.Type = {Off};
};
AnyRecruitedActuator ReactionForceTMJ_R= {
Strength = .ArtificialMuscle.F0;
AnyKinMeasure& ref2=.TMJ_JntR_Z_Constraint.TMJ_JntR_Z;
Type = NonPositive;
SET_DEFAULT_ACTUATOR_VOLUME;
};
//----------------------------
//The left TMJ
AnyKinLinear TMJ_JntL={
AnyRefNode &SkullRef = ..Seg.Skull.TMJ_NodeL;
AnyRefNode &MandibleRef = ..Seg.Mandible.TMJ_NodeL;
Ref=0;
};
AnyKinEqSimpleDriver TMJ_JntL_Z_Constraint = {
AnyKinMeasureOrg TMJ_JntL_Z={
AnyKinLinear &ref = ..TMJ_JntL;
MeasureOrganizer={2};
};
DriverPos = {0.0};
DriverVel = {0.0};
Reaction.Type = {Off};
};
AnyRecruitedActuator ReactionForceTMJ_L= {
Strength = .ArtificialMuscle.F0;
AnyKinMeasure& ref2=.TMJ_JntL_Z_Constraint.TMJ_JntL_Z;
Type = NonPositive;
SET_DEFAULT_ACTUATOR_VOLUME;
};
// ML dof
AnyKinEqSimpleDriver TMJ_ML_Constraint = {
AnyKinMeasureOrg meas={
AnyKinLinear lin ={
Ref=0;
AnySeg &SkullRef = ....Seg.Skull;
AnySeg &MandibleRef = ....Seg.Mandible;
};
MeasureOrganizer={1};
};
DriverPos = {0.00};
DriverVel = {0.0};
Reaction.Type = {On};
CType={Hard};
};
//---------------------------
#else
#if TMJ_CONTACT_MODEL == 1
// FDK joint
//The right TMJ
AnyKinLinear TMJ_JntR={
AnyRefNode &SkullRef = ..Seg.Skull.TMJ_NodeR;
AnyRefNode &MandibleRef = ..Seg.Mandible.TMJ_NodeR;
Ref=0;
};
AnyKinEqSimpleDriver TMJ_JntR_Z_Constraint = {
AnyKinMeasureOrg TMJ_JntR_Z={
AnyKinLinear &ref = ..TMJ_JntR;
MeasureOrganizer={2};
};
DriverPos = {0.00};
DriverVel = {0.0};
Reaction.Type = {Off};
CType={ForceDep};
};
AnyForceSurfaceContact TMJ_JntR_Contact =
{
AnySurface &sMaster = ..Seg.Skull.SkullSurfNode.SurfContactRight;
AnySurface &sSlave = ..Seg.Mandible.MandibleSurfNode.SurfContactRight;
// PressureModule = 5e9;
PressureModule = 10e9;
ForceViewOnOff = On;
MeshRefinementMaster = 0;
MeshRefinementSlave = 0;
SingleSidedOnOff= Off;
AnyDrawForceSurface Drw =
{
//Visible = On;
//Opacity = 1;
//DrawSurf1RGB = {0, 0, 0};
//DrawSurf2RGB = {1, 1, 1};
//AnyStyleDrawMaterial &<Insert name0> = <Insert object reference (or full object definition)>; You can make any number of these objects!
};
};
//----------------------------
//The left TMJ
AnyKinLinear TMJ_JntL={
AnyRefNode &SkullRef = ..Seg.Skull.TMJ_NodeL;
AnyRefNode &MandibleRef = ..Seg.Mandible.TMJ_NodeL;
Ref=0;
};
AnyKinEqSimpleDriver TMJ_JntL_Z_Constraint = {
AnyKinMeasureOrg TMJ_JntL_Z={
AnyKinLinear &ref = ..TMJ_JntL;
MeasureOrganizer={2};
};
DriverPos = {0.00};
DriverVel = {0.0};
Reaction.Type = {Off};
CType={ForceDep};
};
// ML FDK dof
AnyKinEqSimpleDriver TMJ_ML_Constraint = {
AnyKinMeasureOrg meas={
AnyKinLinear lin ={
Ref=0;
AnySeg &SkullRef = ....Seg.Skull;
AnySeg &MandibleRef = ....Seg.Mandible;
};
MeasureOrganizer={1};
};
DriverPos = {0.00};
DriverVel = {0.0};
Reaction.Type = {Off};
CType={ForceDep};
};
AnyForceSurfaceContact TMJ_JntL_Contact =
{
AnySurface &sMaster = ..Seg.Skull.SkullSurfNode.SurfContactLeft;
AnySurface &sSlave = ..Seg.Mandible.MandibleSurfNode.SurfContactLeft;
// PressureModule = 5e9;
PressureModule = 10e9;
ForceViewOnOff = On;
MeshRefinementMaster = 0;
MeshRefinementSlave = 0;
SingleSidedOnOff= Off;
AnyDrawForceSurface Drw =
{
//Visible = On;
//Opacity = 1;
//DrawSurf1RGB = {0, 0, 0};
//DrawSurf2RGB = {1, 1, 1};
//AnyStyleDrawMaterial &<Insert name0> = <Insert object reference (or full object definition)>; You can make any number of these objects!
};
};
//---------------------------
// artificial springs
AnyForce TMJ_JntR_Z_force = {
AnyKinMeasureOrg meas={
AnyKinLinear &ref = ..TMJ_JntR;
MeasureOrganizer={2};
};
AnyVar k = 0.1;
AnyVar l0= 0.0;
#include "LigamentModelLinear.any"
F = Val;
};
// artificial springs
AnyForce TMJ_ML_force = {
AnyKinMeasureOrg meas={
AnyKinLinear lin ={
Ref=0;
AnySeg &SkullRef = ....Seg.Skull;
AnySeg &MandibleRef = ....Seg.Mandible;
};
MeasureOrganizer={1};
};
AnyVar k = 0.1;
AnyVar l0= 0.0;
#include "LigamentModelLinear.any"
F = Val;
};
AnyForce TMJ_JntL_Z_force = {
AnyKinMeasureOrg meas={
AnyKinLinear &ref = ..TMJ_JntL;
MeasureOrganizer={2};
};
AnyVar k = 0.1;
AnyVar l0= 0.0;
#include "LigamentModelLinear.any"
F = Val;
};
#endif // #if TMJ_CONTACT_MODEL== 0
#endif