From 2f648b9e27554acb7636e75f03ec26ce507b1b54 Mon Sep 17 00:00:00 2001 From: hs Date: Thu, 25 Apr 2024 09:56:36 +0200 Subject: [PATCH 01/31] fix bug_ Muscle volumes assigns after if statement for each muscle group to have different muscle volumes in different configs --- .../TrunkModelMuscleParameters.any | 74 ++++++++++--------- 1 file changed, 38 insertions(+), 36 deletions(-) diff --git a/Body/AAUHuman/Trunk/TrunkData1.1/TrunkModelMuscleParameters.any b/Body/AAUHuman/Trunk/TrunkData1.1/TrunkModelMuscleParameters.any index 31a51a392..6b38c31a7 100644 --- a/Body/AAUHuman/Trunk/TrunkData1.1/TrunkModelMuscleParameters.any +++ b/Body/AAUHuman/Trunk/TrunkData1.1/TrunkModelMuscleParameters.any @@ -31,8 +31,8 @@ AnyFolder Muscles = AnyVar VolumeUnitFactor ??= 1e-6; ///< Unit conversion factor for volume (1e-6 > volume in cm^3) AnyFolder TransversusSingle = { - AnyVar Volume ??= DesignVar(49.40); ///< Total volume of the muscle group (ml) #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_BUCKLE_ + AnyVar Volume ??= DesignVar(49.40); ///< Total volume of the muscle group (ml) AnyFolder Transversus_1 = { AnyString Muscle = "Transversus"; ///< Descriptive name for the muscle, e.g. for plotting @@ -124,8 +124,8 @@ AnyFolder Muscles = }; // TransversusSingle group AnyFolder Spinalis = { - AnyVar Volume ??= DesignVar(40.62); ///< Total volume of the muscle group (ml) #if BM_TRUNK_MUSCLES + AnyVar Volume ??= DesignVar(40.62); ///< Total volume of the muscle group (ml) AnyFolder SPL1T2 = { AnyString Muscle = "SPL1T2"; ///< Descriptive name for the muscle, e.g. for plotting @@ -235,8 +235,8 @@ AnyFolder Muscles = }; // Spinalis group AnyFolder Multifidi = { - AnyVar Volume ??= DesignVar(89.32); ///< Total volume of the muscle group (ml) #if BM_TRUNK_MUSCLES + AnyVar Volume ??= DesignVar(89.32); ///< Total volume of the muscle group (ml) AnyFolder MFdL1L3 = { AnyString Muscle = "MFdL1L3"; ///< Descriptive name for the muscle, e.g. for plotting @@ -580,8 +580,8 @@ AnyFolder Muscles = }; // Multifidi group AnyFolder ErectorSpinae = { - AnyVar Volume ??= DesignVar(554.92); ///< Total volume of the muscle group (ml) #if BM_TRUNK_MUSCLES + AnyVar Volume ??= DesignVar(554.92); ///< Total volume of the muscle group (ml) AnyFolder ILplL1CI = { AnyString Muscle = "ILplL1CI"; ///< Descriptive name for the muscle, e.g. for plotting @@ -1375,8 +1375,8 @@ AnyFolder Muscles = }; // ErectorSpinae group AnyFolder PsoasMajor = { - AnyVar Volume ??= DesignVar(321.43); ///< Total volume of the muscle group (ml) #if BM_TRUNK_MUSCLES | BM_LEG_MUSCLES_LEFT | BM_LEG_MUSCLES_RIGHT + AnyVar Volume ??= DesignVar(321.43); ///< Total volume of the muscle group (ml) AnyFolder PMT12I_TM = { AnyString Muscle = "PMT12I_TM"; ///< Descriptive name for the muscle, e.g. for plotting @@ -1576,8 +1576,8 @@ AnyFolder Muscles = }; // PsoasMajor group AnyFolder QuadratusLumborum = { - AnyVar Volume ??= DesignVar(39.85); ///< Total volume of the muscle group (ml) #if BM_TRUNK_MUSCLES + AnyVar Volume ??= DesignVar(39.85); ///< Total volume of the muscle group (ml) AnyFolder QL_1 = { AnyString Muscle = "Quadratus Lumborum"; ///< Descriptive name for the muscle, e.g. for plotting @@ -2083,8 +2083,8 @@ AnyFolder Muscles = }; // QuadratusLumborum group AnyFolder RectusAbdominis = { - AnyVar Volume ??= DesignVar(133.49); ///< Total volume of the muscle group (ml) #if BM_TRUNK_MUSCLES + AnyVar Volume ??= DesignVar(133.49); ///< Total volume of the muscle group (ml) AnyFolder RA_1 = { AnyString Muscle = "Rectus Abdominis"; ///< Descriptive name for the muscle, e.g. for plotting @@ -2122,8 +2122,8 @@ AnyFolder Muscles = }; // RectusAbdominis group AnyFolder ObliquusInternus = { - AnyVar Volume ??= DesignVar(91.37); ///< Total volume of the muscle group (ml) #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_BUCKLE_ + AnyVar Volume ??= DesignVar(91.37); ///< Total volume of the muscle group (ml) AnyFolder OIC_1 = { AnyString Muscle = "Obliquus Internus"; ///< Descriptive name for the muscle, e.g. for plotting @@ -2304,6 +2304,7 @@ AnyFolder Muscles = #endif #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ + AnyVar Volume ??= DesignVar(131.10); ///< Total volume of the muscle group (ml) AnyFolder OIC_1 = { AnyString Muscle = "Obliquus Internus"; ///< Descriptive name for the muscle, e.g. for plotting @@ -2539,8 +2540,8 @@ AnyFolder Muscles = }; // ObliquusInternus group AnyFolder ObliquusExternus = { - AnyVar Volume ??= DesignVar(93.94); ///< Total volume of the muscle group (ml) #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_BUCKLE_ + AnyVar Volume ??= DesignVar(93.94); ///< Total volume of the muscle group (ml) AnyFolder OEC_1 = { AnyString Muscle = "Obliquus Externus"; ///< Descriptive name for the muscle, e.g. for plotting @@ -2685,6 +2686,7 @@ AnyFolder Muscles = #endif #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ + AnyVar Volume ??= DesignVar(178.46); ///< Total volume of the muscle group (ml) AnyFolder OEC_1 = { AnyString Muscle = "Obliquus Externus"; ///< Descriptive name for the muscle, e.g. for plotting @@ -2902,8 +2904,8 @@ AnyFolder Muscles = }; // ObliquusExternus group AnyFolder Transversus = { - AnyVar Volume ??= DesignVar(49.40); ///< Total volume of the muscle group (ml) #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ + AnyVar Volume ??= DesignVar(49.40); ///< Total volume of the muscle group (ml) AnyFolder Transversus_1 = { AnyString Muscle = "Transversus"; ///< Descriptive name for the muscle, e.g. for plotting @@ -2995,8 +2997,8 @@ AnyFolder Muscles = }; // Transversus group AnyFolder ThoracicMultifidi = { - AnyVar Volume ??= DesignVar(242.34); ///< Total volume of the muscle group (ml) #if BM_TRUNK_MUSCLES + AnyVar Volume ??= DesignVar(242.34); ///< Total volume of the muscle group (ml) AnyFolder MFT4T1 = { AnyString Muscle = "MFT4T1"; ///< Descriptive name for the muscle, e.g. for plotting @@ -3646,8 +3648,8 @@ AnyFolder Muscles = }; // ThoracicMultifidi group AnyFolder LongusColli = { - AnyVar Volume ??= DesignVar(21.93); ///< Total volume of the muscle group (ml) #if BM_TRUNK_MUSCLES + AnyVar Volume ??= DesignVar(21.93); ///< Total volume of the muscle group (ml) AnyFolder LongusColliT3C6 = { AnyString Muscle = "LongusColliT3C6"; ///< Descriptive name for the muscle, e.g. for plotting @@ -3757,8 +3759,8 @@ AnyFolder Muscles = }; // LongusColli group AnyFolder LongusCapitis = { - AnyVar Volume ??= DesignVar(10.48); ///< Total volume of the muscle group (ml) #if BM_TRUNK_MUSCLES + AnyVar Volume ??= DesignVar(10.48); ///< Total volume of the muscle group (ml) AnyFolder LongusCapitisC6C0 = { AnyString Muscle = "LongusCapitisC6C0"; ///< Descriptive name for the muscle, e.g. for plotting @@ -3832,8 +3834,8 @@ AnyFolder Muscles = }; // LongusCapitis group AnyFolder Scalenus = { - AnyVar Volume ??= DesignVar(44.73); ///< Total volume of the muscle group (ml) #if BM_TRUNK_MUSCLES + AnyVar Volume ??= DesignVar(44.73); ///< Total volume of the muscle group (ml) AnyFolder ScalenusAnteriorR1C6 = { AnyString Muscle = "ScalenusAnteriorR1C6"; ///< Descriptive name for the muscle, e.g. for plotting @@ -4069,8 +4071,8 @@ AnyFolder Muscles = }; // Scalenus group AnyFolder SpleniusCapitis = { - AnyVar Volume ??= DesignVar(51.23); ///< Total volume of the muscle group (ml) #if BM_TRUNK_MUSCLES + AnyVar Volume ??= DesignVar(51.23); ///< Total volume of the muscle group (ml) AnyFolder SpleniusCapitisC7C0 = { AnyString Muscle = "SpleniusCapitisC7C0"; ///< Descriptive name for the muscle, e.g. for plotting @@ -4144,8 +4146,8 @@ AnyFolder Muscles = }; // SpleniusCapitis group AnyFolder SpleniusCervicis = { - AnyVar Volume ??= DesignVar(57.17); ///< Total volume of the muscle group (ml) #if BM_TRUNK_MUSCLES + AnyVar Volume ??= DesignVar(57.17); ///< Total volume of the muscle group (ml) AnyFolder SpleniusCervicisT3C1 = { AnyString Muscle = "SpleniusCervicisT3C1"; ///< Descriptive name for the muscle, e.g. for plotting @@ -4219,8 +4221,8 @@ AnyFolder Muscles = }; // SpleniusCervicis group AnyFolder SemispinalisCapitis = { - AnyVar Volume ??= DesignVar(73.26); ///< Total volume of the muscle group (ml) #if BM_TRUNK_MUSCLES + AnyVar Volume ??= DesignVar(73.26); ///< Total volume of the muscle group (ml) AnyFolder SemispinalisCapitisC4C0 = { AnyString Muscle = "SemispinalisCapitisC4C0"; ///< Descriptive name for the muscle, e.g. for plotting @@ -4402,8 +4404,8 @@ AnyFolder Muscles = }; // SemispinalisCapitis group AnyFolder SemispinalisCervicis = { - AnyVar Volume ??= DesignVar(43.83); ///< Total volume of the muscle group (ml) #if BM_TRUNK_MUSCLES + AnyVar Volume ??= DesignVar(43.83); ///< Total volume of the muscle group (ml) AnyFolder SemispinalisCervicisT1C2 = { AnyString Muscle = "SemispinalisCervicisT1C2"; ///< Descriptive name for the muscle, e.g. for plotting @@ -4513,8 +4515,8 @@ AnyFolder Muscles = }; // SemispinalisCervicis group AnyFolder LongissimusCapitis = { - AnyVar Volume ??= DesignVar(11.06); ///< Total volume of the muscle group (ml) #if BM_TRUNK_MUSCLES + AnyVar Volume ??= DesignVar(11.06); ///< Total volume of the muscle group (ml) AnyFolder LongissimusCapitisC3C0 = { AnyString Muscle = "LongissimusCapitisC3C0"; ///< Descriptive name for the muscle, e.g. for plotting @@ -4696,8 +4698,8 @@ AnyFolder Muscles = }; // LongissimusCapitis group AnyFolder LongissimusCervicis = { - AnyVar Volume ??= DesignVar(17.61); ///< Total volume of the muscle group (ml) #if BM_TRUNK_MUSCLES + AnyVar Volume ??= DesignVar(17.61); ///< Total volume of the muscle group (ml) AnyFolder LongissimusCervicisT1C2 = { AnyString Muscle = "LongissimusCervicisT1C2"; ///< Descriptive name for the muscle, e.g. for plotting @@ -4789,8 +4791,8 @@ AnyFolder Muscles = }; // LongissimusCervicis group AnyFolder MultifidusCervicis = { - AnyVar Volume ??= DesignVar(28.82); ///< Total volume of the muscle group (ml) #if BM_TRUNK_MUSCLES + AnyVar Volume ??= DesignVar(28.82); ///< Total volume of the muscle group (ml) AnyFolder MultifidusCervicisC5C2 = { AnyString Muscle = "MultifidusCervicisC5C2"; ///< Descriptive name for the muscle, e.g. for plotting @@ -5008,8 +5010,8 @@ AnyFolder Muscles = }; // MultifidusCervicis group AnyFolder InterCostalisExternal = { - AnyVar Volume ??= DesignVar(130.63); ///< Total volume of the muscle group (ml) #if BM_TRUNK_MUSCLES + AnyVar Volume ??= DesignVar(130.63); ///< Total volume of the muscle group (ml) AnyFolder IC_Ext_R1R2 = { AnyString Muscle = "Intercostales externi R1R2"; ///< Descriptive name for the muscle, e.g. for plotting @@ -5209,8 +5211,8 @@ AnyFolder Muscles = }; // InterCostalisExternal group AnyFolder InterCostalisInternal = { - AnyVar Volume ??= DesignVar(71.10); ///< Total volume of the muscle group (ml) #if BM_TRUNK_MUSCLES + AnyVar Volume ??= DesignVar(71.10); ///< Total volume of the muscle group (ml) AnyFolder IC_Int_R1R2 = { AnyString Muscle = "intercostales interni R1R2"; ///< Descriptive name for the muscle, e.g. for plotting @@ -5410,8 +5412,8 @@ AnyFolder Muscles = }; // InterCostalisInternal group AnyFolder InterCostalisInnermost = { - AnyVar Volume ??= DesignVar(48.92); ///< Total volume of the muscle group (ml) #if BM_TRUNK_MUSCLES + AnyVar Volume ??= DesignVar(48.92); ///< Total volume of the muscle group (ml) AnyFolder IC_Inn_R1R2 = { AnyString Muscle = "intercostales innermost R1R2"; ///< Descriptive name for the muscle, e.g. for plotting @@ -5611,8 +5613,8 @@ AnyFolder Muscles = }; // InterCostalisInnermost group AnyFolder LevatorCostarum = { - AnyVar Volume ??= DesignVar(22.42); ///< Total volume of the muscle group (ml) #if BM_TRUNK_MUSCLES + AnyVar Volume ??= DesignVar(22.42); ///< Total volume of the muscle group (ml) AnyFolder LCModel_1 = { AnyString Muscle = "LCModel"; ///< Descriptive name for the muscle, e.g. for plotting @@ -5938,8 +5940,8 @@ AnyFolder Muscles = }; // LevatorCostarum group AnyFolder TransversusThoracis = { - AnyVar Volume ??= DesignVar(46.62); ///< Total volume of the muscle group (ml) #if BM_TRUNK_MUSCLES + AnyVar Volume ??= DesignVar(46.62); ///< Total volume of the muscle group (ml) AnyFolder TransvThModel_1 = { AnyString Muscle = "TransvThModel"; ///< Descriptive name for the muscle, e.g. for plotting @@ -6175,8 +6177,8 @@ AnyFolder Muscles = }; // TransversusThoracis group AnyFolder Subcostalis = { - AnyVar Volume ??= DesignVar(36.20); ///< Total volume of the muscle group (ml) #if BM_TRUNK_MUSCLES + AnyVar Volume ??= DesignVar(36.20); ///< Total volume of the muscle group (ml) AnyFolder SCModel_1 = { AnyString Muscle = "SCModel"; ///< Descriptive name for the muscle, e.g. for plotting @@ -6484,8 +6486,8 @@ AnyFolder Muscles = }; // Subcostalis group AnyFolder LumpedHyoid = { - AnyVar Volume ??= DesignVar(64.00); ///< Total volume of the muscle group (ml) #if BM_TRUNK_MUSCLES + AnyVar Volume ??= DesignVar(64.00); ///< Total volume of the muscle group (ml) AnyFolder LumpedHyoidStC0 = { AnyString Muscle = "LumpedHyoidStC0"; ///< Descriptive name for the muscle, e.g. for plotting @@ -6505,8 +6507,8 @@ AnyFolder Muscles = }; // LumpedHyoid group AnyFolder Puporectalis = { - AnyVar Volume ??= DesignVar(4.32); ///< Total volume of the muscle group (ml) #if BM_TRUNK_MUSCLES + AnyVar Volume ??= DesignVar(4.32); ///< Total volume of the muscle group (ml) AnyFolder Puporectalis_1 = { AnyString Muscle = "Puporectalis"; ///< Descriptive name for the muscle, e.g. for plotting @@ -6544,8 +6546,8 @@ AnyFolder Muscles = }; // Puporectalis group AnyFolder Pupococcygeus = { - AnyVar Volume ??= DesignVar(7.38); ///< Total volume of the muscle group (ml) #if BM_TRUNK_MUSCLES + AnyVar Volume ??= DesignVar(7.38); ///< Total volume of the muscle group (ml) AnyFolder Pupococcygeus_1 = { AnyString Muscle = "Pupococcygeus"; ///< Descriptive name for the muscle, e.g. for plotting @@ -6583,8 +6585,8 @@ AnyFolder Muscles = }; // Pupococcygeus group AnyFolder SemispinalisThoracis = { - AnyVar Volume ??= DesignVar(12.85); ///< Total volume of the muscle group (ml) #if BM_TRUNK_MUSCLES + AnyVar Volume ??= DesignVar(12.85); ///< Total volume of the muscle group (ml) AnyFolder SSTT12T4 = { AnyString Muscle = "Semispinalis Thoracis T12T4"; ///< Descriptive name for the muscle, e.g. for plotting @@ -6694,8 +6696,8 @@ AnyFolder Muscles = }; // SemispinalisThoracis group AnyFolder SerratusPosteriorSuperior = { - AnyVar Volume ??= DesignVar(17.42); ///< Total volume of the muscle group (ml) #if BM_TRUNK_MUSCLES + AnyVar Volume ??= DesignVar(17.42); ///< Total volume of the muscle group (ml) AnyFolder SPSR2C7 = { AnyString Muscle = "Serratus Posterior Superior R2C7"; ///< Descriptive name for the muscle, e.g. for plotting @@ -6769,8 +6771,8 @@ AnyFolder Muscles = }; // SerratusPosteriorSuperior group AnyFolder SerratusPosteriorInferior = { - AnyVar Volume ??= DesignVar(22.03); ///< Total volume of the muscle group (ml) #if BM_TRUNK_MUSCLES + AnyVar Volume ??= DesignVar(22.03); ///< Total volume of the muscle group (ml) AnyFolder SPIL2R12 = { AnyString Muscle = "Serratus Posterior Inferior L2R12"; ///< Descriptive name for the muscle, e.g. for plotting @@ -6844,8 +6846,8 @@ AnyFolder Muscles = }; // SerratusPosteriorInferior group AnyFolder RotatoresBrevis = { - AnyVar Volume ??= DesignVar(4.65); ///< Total volume of the muscle group (ml) #if BM_TRUNK_MUSCLES + AnyVar Volume ??= DesignVar(4.65); ///< Total volume of the muscle group (ml) AnyFolder RotatoresBrevis_1 = { AnyString Muscle = "RotatoresBrevis"; ///< Descriptive name for the muscle, e.g. for plotting @@ -7063,8 +7065,8 @@ AnyFolder Muscles = }; // RotatoresBrevis group AnyFolder RotatoresLongus = { - AnyVar Volume ??= DesignVar(7.31); ///< Total volume of the muscle group (ml) #if BM_TRUNK_MUSCLES + AnyVar Volume ??= DesignVar(7.31); ///< Total volume of the muscle group (ml) AnyFolder RotatoresLongus_1 = { AnyString Muscle = "RotatoresLongus"; ///< Descriptive name for the muscle, e.g. for plotting @@ -7264,8 +7266,8 @@ AnyFolder Muscles = }; // RotatoresLongus group AnyFolder Diaphragm = { - AnyVar Volume ??= DesignVar(61.73); ///< Total volume of the muscle group (ml) #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ + AnyVar Volume ??= DesignVar(61.73); ///< Total volume of the muscle group (ml) AnyFolder L1_Diaphragm1 = { AnyString Muscle = "Diaphragm"; ///< Descriptive name for the muscle, e.g. for plotting From 09f66a79c79e98298073b4c88952e5277e0cb5e1 Mon Sep 17 00:00:00 2001 From: hs Date: Thu, 25 Apr 2024 09:56:36 +0200 Subject: [PATCH 02/31] New obliq wrapping ellipsoid --- .../Abdominal/AbdominalPressureModel.any | 11 +- Body/AAUHuman/Trunk/CreateMeshForWrapping.any | 208 +++- Body/AAUHuman/Trunk/MusclesLeft.any | 912 +++++++++-------- Body/AAUHuman/Trunk/MusclesRight.any | 928 ++++++++++-------- .../Trunk/TrunkData1.1/PointOnLineCal.any | 2 +- 5 files changed, 1240 insertions(+), 821 deletions(-) diff --git a/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any b/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any index ee68ea3f4..7022c5901 100644 --- a/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any +++ b/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any @@ -802,7 +802,16 @@ Reaction.Type ??={Off,Off,Off,Off,Off}; }; }; - + AnySurfSphere mesh = + { + //viewRefFrame.Visible = Off; + //viewNodes.Visible = Off; + sRel = {0.0, 0.03, 0.0}; + //ARel = {{1.0, 0.0, 0.0}, {0.0, 1.0, 0.0}, {0.0, 0.0, 1.0}}; + viewSurface.Visible = On; + Radius = 0.09; + }; + }; AnySeg &CavitySegAnterior = BaseSegAnterior; }; diff --git a/Body/AAUHuman/Trunk/CreateMeshForWrapping.any b/Body/AAUHuman/Trunk/CreateMeshForWrapping.any index cafb63ba7..750759f00 100644 --- a/Body/AAUHuman/Trunk/CreateMeshForWrapping.any +++ b/Body/AAUHuman/Trunk/CreateMeshForWrapping.any @@ -76,6 +76,159 @@ AnySurfEllipsoid mesh_Full = { }; + + + + + + + + + + AnyFloat FrontNodes_sRels = { + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn12.sRel, + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn11.sRel, + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn10.sRel, + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn09.sRel, + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn08.sRel, + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn07.sRel, + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn06.sRel, + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn05.sRel, + + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn12.sRel, + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn11.sRel, + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn10.sRel, + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn09.sRel, + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn08.sRel, + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn07.sRel, + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn06.sRel, + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn05.sRel, + } ; + AnyFloat FrontNodes_mirror_sRels = { + {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn12.sRel[0], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn12.sRel[1], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn12.sRel[2], +}, +{2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn11.sRel[0], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn11.sRel[1], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn11.sRel[2], +}, + {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn10.sRel[0], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn10.sRel[1], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn10.sRel[2], +}, + {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn09.sRel[0], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn09.sRel[1], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn09.sRel[2], +}, + {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn08.sRel[0], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn08.sRel[1], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn08.sRel[2], +}, + {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn07.sRel[0], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn07.sRel[1], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn07.sRel[2], +}, + {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn06.sRel[0], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn06.sRel[1], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn06.sRel[2], +}, + {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn05.sRel[0], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn05.sRel[1], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn05.sRel[2], +}, + + {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn12.sRel[0], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn12.sRel[1], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn12.sRel[2], +}, + {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn11.sRel[0], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn11.sRel[1], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn11.sRel[2], +}, + {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn10.sRel[0], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn10.sRel[1], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn10.sRel[2], +}, + {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn09.sRel[0], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn09.sRel[1], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn09.sRel[2], +}, + {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn08.sRel[0], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn08.sRel[1], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn08.sRel[2], +}, + {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn07.sRel[0], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn07.sRel[1], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn07.sRel[2], +}, + {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn06.sRel[0], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn06.sRel[1], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn06.sRel[2], +}, + {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn05.sRel[0], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn05.sRel[1], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn05.sRel[2], +}, +} ; + +AnyRefNodeGroup FrontNodes = { +NodeAmount =16; +Node_sRels = .FrontNodes_sRels; +}; +AnyRefNodeGroup FrontNodes_mirror = { +NodeAmount =16; +Node_sRels = .FrontNodes_mirror_sRels; +}; + + + +AnySurfEllipsoidFit mesh3 = +{ + viewRefFrame.Visible = Off; + viewNodes.Visible = Off; + viewSurface.Visible = On; + FixedAxes = On; + //AxisSymmetry = Off; + //Spherical = Off; + Axis = y; + +// AnyFloat Center = mean(AllPoints'); +AnyFloat ExtraPoints =reshape(arrcat( +0.5*(Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel+ +Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Left.nn01.sRel)+ +{0,0.03,0}, +0.5*(Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel+ +Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Left.nn01.sRel)+ +{0,-0.03,0}),{2,3}); +// Points=arrcat(.anterior_l_mirror.Node_sRels, +// .anterior_r_mirror.Node_sRels, +// .anterior_l.Node_sRels, +// .anterior_r.Node_sRels, +// ExtraPoints); + Points = arrcat( .FrontNodes_mirror.Node_sRels, .FrontNodes.Node_sRels, ExtraPoints ); + +}; + + AnyDrawPointCloud drw = {Points=.mesh3.Points; PointStyle.Size=0.01; Points3D = On;}; + + AnyRefNode Right ={ AnyRefNode Center = {sRel=..ScaleFunction(.....Data.unscaled.ModelParameters.Abdominal._LAYER_.AbdominalCavityPoints.Right.EllipsoidCalculation.Cal.Center);}; AnyRefNode EP1 = {sRel=..ScaleFunction(.....Data.unscaled.ModelParameters.Abdominal._LAYER_.AbdominalCavityPoints.Right.EllipsoidCalculation.Cal.Point1);}; @@ -99,6 +252,59 @@ AnyRefNode Right ={ // Visible =On; // }; }; + + AnySurfEllipsoid mesh2 = { + sRel = .ECenterSideEllipsoid.sRel+ {-0.05,0,0.02}; + ARel = .mesh.ARel * RotMat (-pi/4, z); + + // AnyDrawRefFrame drw ={}; + AnyFloat R1 = 0.5*vnorm(.EP1.sRel-.EP3.sRel); + AnyFloat R3 = vnorm(.ECalculatedPoint0.sRel-.ECenterSideEllipsoid.sRel); + + Radius ={R1,R3,(R1+R3)/4}; + // viewSurface ={ + // RGB={0,1,0}; + // Visible =On; + // }; + }; + +// AnyFloat FrontNodes_sRels = { +// Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn12.sRel, +// Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn11.sRel, +// Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn10.sRel, +// Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn09.sRel, +// Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn08.sRel, +// Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn07.sRel, +// Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn06.sRel, +// Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn05.sRel, +// +// Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn12.sRel, +// Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn11.sRel, +// Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn10.sRel, +// Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn09.sRel, +// Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn08.sRel, +// Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn07.sRel, +// Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn06.sRel, +// Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn05.sRel, +// } ; + +// AnySurfEllipsoidFit mesh3_posterior = +//{ +// viewRefFrame.Visible = Off; +// viewNodes.Visible = Off; +// viewSurface.Visible = On; +// //FixedAxes = Off; +// AxisSymmetry = On; +// //Spherical = Off; +// Axis = y; +// AnyFloat AllPoints = arrcat( +// ) ; +// AnyFloat Center = mean(AllPoints'); +// AnyFloat ExtraPoints =reshape(arrcat(Center+{0,0.03,0},Center+{0,-0.03,0}),{2,3}); +// Points=arrcat(AllPoints,ExtraPoints); +//}; + + }; @@ -138,7 +344,7 @@ AnyRefNode Left ={ AnySurfTriCylMesh mesh = { - viewSurface ={ + viewSurface ={es Visible =On; AnyStyleDrawMaterial1 mat ={ EnableWireframe =On; diff --git a/Body/AAUHuman/Trunk/MusclesLeft.any b/Body/AAUHuman/Trunk/MusclesLeft.any index 8af6b25b9..116a20faf 100644 --- a/Body/AAUHuman/Trunk/MusclesLeft.any +++ b/Body/AAUHuman/Trunk/MusclesLeft.any @@ -2856,11 +2856,12 @@ AnyMuscleShortestPath OEC_3 = { #endif - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.Left.mesh; - #else - AnySurfTriCylMesh &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh; - #endif +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.Left.mesh; +// #else +// AnySurfTriCylMesh &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh; +// #endif + AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh3; @@ -2871,33 +2872,34 @@ AnyMuscleShortestPath OEC_3 = { SPLine ={ - #if MESH_TYPE == "ELLIPSOID" - AnyMatrix InitWrapPos = { - transf3D({0,.srf1.MajorRadius+.srf1.MinorRadius, 0}, &.srf1), - transf3D({.mesh2.Radius[0],0,0}, &.mesh2), - }; - #endif - - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnyMatrix InitWrapPos = { - transf3D({0,.srf1.MajorRadius+.srf1.MinorRadius, 0}, &.srf1), - - transf3D({0,.mesh2.Radius[1],0}, &.mesh2), - - }; - #endif - - +// #if MESH_TYPE == "ELLIPSOID" +// AnyMatrix InitWrapPos = { +// transf3D({0,.srf1.MajorRadius+.srf1.MinorRadius, 0}, &.srf1), +// transf3D({.mesh2.Radius[0],0,0}, &.mesh2), +// }; +// #endif +// +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnyMatrix InitWrapPos = { +// transf3D({0,.srf1.MajorRadius+.srf1.MinorRadius, 0}, &.srf1), +// +// transf3D({0,.mesh2.Radius[1],0}, &.mesh2), +// +// }; +// #endif +// +// #if MESH_TYPE == "QUAD" +// AnyMatrix InitWrapPos = { +// transf3D({0,.srf1.MajorRadius+.srf1.MinorRadius, 0}, &.srf1), +// transf3D(.mesh2.Points[floor(.mesh2.MeshSize*0.9)+2*.mesh2.MeshSize*6]+{0.02,0,0}, &.mesh2), +// }; +// #endif - - #if MESH_TYPE == "QUAD" - AnyMatrix InitWrapPos = { + AnyMatrix InitWrapPos = { transf3D({0,.srf1.MajorRadius+.srf1.MinorRadius, 0}, &.srf1), - transf3D(.mesh2.Points[floor(.mesh2.MeshSize*0.9)+2*.mesh2.MeshSize*6]+{0.02,0,0}, &.mesh2), + transf3D({.mesh2.Radius[0],0,0}, &.mesh2), }; - #endif - - + @@ -2921,53 +2923,52 @@ AnyMuscleShortestPath OEC_4 = { #endif - #if MESH_TYPE == "ELLIPSOID_SIDE" - //AnySurfTriCylMesh &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh; - AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.Left.mesh; - //AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; - #else - //AnySurfTriCylMesh &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh; - AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; - //AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; - #endif +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// //AnySurfTriCylMesh &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh; +// AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.Left.mesh; +// //AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; +// #else +// //AnySurfTriCylMesh &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh; +// AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; +// //AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; +// #endif + AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh3; SPLine.StringMesh=60; SPLine ={ - #if MESH_TYPE == "ELLIPSOID" +// #if MESH_TYPE == "ELLIPSOID" +// AnyMatrix InitWrapPos = { +// transf3D({0,.srf1.MajorRadius+.srf1.MinorRadius, 0}, &.srf1), +// //transf3D({.mesh2.Radius[0],0,0}, &.mesh2), +// transf3D({.mesh3.Radius[0],0,0}, &.mesh3), +// //transf3D({.mesh4.Radius[0],0,0}, &.mesh4), +// }; +// #endif +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnyMatrix InitWrapPos = { +// transf3D({0,.srf1.MajorRadius+.srf1.MinorRadius, 0}, &.srf1), +// transf3D({0,.mesh3.Radius[1],0}, &.mesh3), +// }; +// #endif +// +// #if MESH_TYPE == "QUAD" +//AnyMatrix InitWrapPos = { +// transf3D({0,.srf1.MajorRadius+.srf1.MinorRadius, 0}, &.srf1), +// +// // transf3D(.mesh2.Points[floor(.mesh2.MeshSize*0.85)+2*.mesh2.MeshSize*6]+{0.02,0,0}, &.mesh2), +// // transf3D(.mesh3.Points[floor(.mesh3.MeshSize*0.95)+2*.mesh3.MeshSize*6]+{0.02,0,0}, &.mesh3) +// transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.95)+2*.mesh4.MeshSize*6]+{0.02,0,0}, &.mesh4) +// }; +// #endif AnyMatrix InitWrapPos = { transf3D({0,.srf1.MajorRadius+.srf1.MinorRadius, 0}, &.srf1), //transf3D({.mesh2.Radius[0],0,0}, &.mesh2), transf3D({.mesh3.Radius[0],0,0}, &.mesh3), //transf3D({.mesh4.Radius[0],0,0}, &.mesh4), }; - #endif - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnyMatrix InitWrapPos = { - transf3D({0,.srf1.MajorRadius+.srf1.MinorRadius, 0}, &.srf1), - transf3D({0,.mesh3.Radius[1],0}, &.mesh3), - }; - #endif - - - - - #if MESH_TYPE == "QUAD" -AnyMatrix InitWrapPos = { - transf3D({0,.srf1.MajorRadius+.srf1.MinorRadius, 0}, &.srf1), - - // transf3D(.mesh2.Points[floor(.mesh2.MeshSize*0.85)+2*.mesh2.MeshSize*6]+{0.02,0,0}, &.mesh2), - // transf3D(.mesh3.Points[floor(.mesh3.MeshSize*0.95)+2*.mesh3.MeshSize*6]+{0.02,0,0}, &.mesh3) - transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.95)+2*.mesh4.MeshSize*6]+{0.02,0,0}, &.mesh4) - - - }; - #endif - - - - + InitWrapPosVecArr = {&InitWrapPos}; }; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; @@ -2989,42 +2990,48 @@ AnyMuscleShortestPath OEC_5= { // AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.Left.mesh; - #else - AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; - #endif +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.Left.mesh; +// #else +// AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; +// #endif + AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh3; + AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh3; SPLine.StringMesh=60; SPLine ={ - #if MESH_TYPE == "ELLIPSOID" +// #if MESH_TYPE == "ELLIPSOID" +// AnyMatrix InitWrapPos = { +// transf3D({0,.srf0.MajorRadius+.srf0.MinorRadius, 0}, &.srf0), +// // transf3D({.mesh3.Radius[0],0,0}, &.mesh3), +// transf3D({.mesh4.Radius[0],0,0}, &.mesh4), +// }; +// #endif +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnyMatrix InitWrapPos = { +// transf3D({0,.srf0.MajorRadius+.srf0.MinorRadius, 0}, &.srf0), +// +// transf3D({0,.mesh4.Radius[1],0}, &.mesh4), +// +// }; +// #endif +// +// #if MESH_TYPE == "QUAD" +//AnyMatrix InitWrapPos = { +// transf3D({0,.srf0.MajorRadius+.srf0.MinorRadius, 0}, &.srf0), +// //transf3D(.mesh3.Points[floor(.mesh3.MeshSize*0.85)+2*.mesh3.MeshSize*6]+{0.02,0,0}, &.mesh3), +// transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.85)+2*.mesh4.MeshSize*6]+{0.02,0,0}, &.mesh4) +// }; +// #endif AnyMatrix InitWrapPos = { transf3D({0,.srf0.MajorRadius+.srf0.MinorRadius, 0}, &.srf0), - // transf3D({.mesh3.Radius[0],0,0}, &.mesh3), + transf3D({.mesh3.Radius[0],0,0}, &.mesh3), transf3D({.mesh4.Radius[0],0,0}, &.mesh4), }; - #endif - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnyMatrix InitWrapPos = { - transf3D({0,.srf0.MajorRadius+.srf0.MinorRadius, 0}, &.srf0), - - transf3D({0,.mesh4.Radius[1],0}, &.mesh4), - - }; - #endif - - - #if MESH_TYPE == "QUAD" -AnyMatrix InitWrapPos = { - transf3D({0,.srf0.MajorRadius+.srf0.MinorRadius, 0}, &.srf0), - //transf3D(.mesh3.Points[floor(.mesh3.MeshSize*0.85)+2*.mesh3.MeshSize*6]+{0.02,0,0}, &.mesh3), - transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.85)+2*.mesh4.MeshSize*6]+{0.02,0,0}, &.mesh4) - }; - #endif InitWrapPosVecArr = {&InitWrapPos}; }; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; @@ -3039,41 +3046,45 @@ AnyMuscleShortestPath OEC_6 = { //AnySurfTriCylMesh &mesh4= Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; // AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnySurfEllipsoid &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.Left.mesh; - #else - AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; - #endif +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnySurfEllipsoid &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.Left.mesh; +// #else +// AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; +// #endif + AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh3; + AnySurfEllipsoid &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh3; - SPLine.StringMesh=60; + SPLine.StringMesh=80; SPLine ={ - #if MESH_TYPE == "ELLIPSOID" +// #if MESH_TYPE == "ELLIPSOID" +// AnyMatrix InitWrapPos = { +// // transf3D({.mesh4.Radius[0],0,0}, &.mesh4), +// transf3D({.mesh5.Radius[0],0,0}, &.mesh5), +// }; +// #endif +// +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnyMatrix InitWrapPos = { +// transf3D({0,.mesh5.Radius[1],0}, &.mesh5), +// +// }; +// #endif +// +// #if MESH_TYPE == "QUAD" +// +// AnyMatrix InitWrapPos = { +// // transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.8)+2*.mesh4.MeshSize*6]+{0.02,0,0}, &.mesh4), +// transf3D(.mesh5.Points[floor(.mesh5.MeshSize*0.85)+2*.mesh5.MeshSize*6]+{0.02,0,0}, &.mesh5) +// +// }; +// #endif AnyMatrix InitWrapPos = { - // transf3D({.mesh4.Radius[0],0,0}, &.mesh4), + transf3D({.mesh4.Radius[0],0,0}, &.mesh4), transf3D({.mesh5.Radius[0],0,0}, &.mesh5), }; - #endif - - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnyMatrix InitWrapPos = { - transf3D({0,.mesh5.Radius[1],0}, &.mesh5), - - }; - #endif - - - - #if MESH_TYPE == "QUAD" - - AnyMatrix InitWrapPos = { - // transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.8)+2*.mesh4.MeshSize*6]+{0.02,0,0}, &.mesh4), - transf3D(.mesh5.Points[floor(.mesh5.MeshSize*0.85)+2*.mesh5.MeshSize*6]+{0.02,0,0}, &.mesh5) - - }; - #endif InitWrapPosVecArr = {&InitWrapPos}; @@ -3093,41 +3104,52 @@ AnyMuscleShortestPath OEC_7 = { // AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; // AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; // - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.Left.mesh; - AnySurfEllipsoid &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.Left.mesh; - #else - AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; - AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; - #endif +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.Left.mesh; +// AnySurfEllipsoid &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.Left.mesh; +// #else +// AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; +// AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; +// #endif + + AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh3; + AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh3; + AnySurfEllipsoid &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh3; - SPLine.StringMesh=60; + SPLine.StringMesh=120; SPLine ={ - #if MESH_TYPE == "ELLIPSOID" +// #if MESH_TYPE == "ELLIPSOID" +// AnyMatrix InitWrapPos = { +// transf3D({.mesh4.Radius[0],0,0}, &.mesh4), +// transf3D({.mesh5.Radius[0],0,0}, &.mesh5), +// }; +// #endif +// +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnyMatrix InitWrapPos = { +// transf3D({0,.mesh4.Radius[1],0}, &.mesh4), +// transf3D({0,.mesh5.Radius[1],0}, &.mesh5), +// +// }; +// #endif +// +// +// #if MESH_TYPE == "QUAD" +// +// AnyMatrix InitWrapPos = { +// transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.8)+2*20*4]+{0.01,0,0}, &.mesh4), +// transf3D(.mesh5.Points[floor(.mesh5.MeshSize*0.85)+2*20*4]+{0.01,0,0}, &.mesh5) +// }; +// #endif + AnyMatrix InitWrapPos = { + transf3D({.mesh3.Radius[0],0,0}, &.mesh3), transf3D({.mesh4.Radius[0],0,0}, &.mesh4), transf3D({.mesh5.Radius[0],0,0}, &.mesh5), }; - #endif - - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnyMatrix InitWrapPos = { - transf3D({0,.mesh4.Radius[1],0}, &.mesh4), - transf3D({0,.mesh5.Radius[1],0}, &.mesh5), - }; - #endif - - - #if MESH_TYPE == "QUAD" - - AnyMatrix InitWrapPos = { - transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.8)+2*20*4]+{0.01,0,0}, &.mesh4), - transf3D(.mesh5.Points[floor(.mesh5.MeshSize*0.85)+2*20*4]+{0.01,0,0}, &.mesh5) - }; - #endif InitWrapPosVecArr = {&InitWrapPos}; }; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; @@ -3581,42 +3603,47 @@ AnyMuscleShortestPath OIC_6 = { //AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; //AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.Left.mesh; - #else - AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; - #endif +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.Left.mesh; +// #else +// AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; +// #endif + AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh3; SPLine.StringMesh=60; SPLine ={ - #if MESH_TYPE == "ELLIPSOID" +// #if MESH_TYPE == "ELLIPSOID" +// AnyMatrix InitWrapPos = { +// // transf3D({.mesh2.Radius[0],0,0}, &.mesh2), +// transf3D({.mesh3.Radius[0],0,0}, &.mesh3), +// // transf3D({.mesh4.Radius[0],0,0}, &.mesh4), +// // transf3D({.mesh5.Radius[0],0,0}, &.mesh5), +// }; +// #endif +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnyMatrix InitWrapPos = { +// +// transf3D({0,.mesh3.Radius[1],0}, &.mesh3), +// //transf3D({0,.mesh4.Radius[1],0}, &.mesh4), +// }; +// #endif +// +// +// #if MESH_TYPE == "QUAD" +// AnyMatrix InitWrapPos = { +// // transf3D(.mesh2.Points[floor(.mesh2.MeshSize*0.75)+2*.mesh2.MeshSize*6]+{0.02,0,0}, &.mesh2), +// transf3D(.mesh3.Points[floor(.mesh3.MeshSize*0.75)+2*.mesh3.MeshSize*6]+{0.02,0,0}, &.mesh3), +// transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.7)+2*.mesh4.MeshSize*6]+{0.02,0,0}, &.mesh4), +// // transf3D(.mesh5.Points[floor(.mesh5.MeshSize*0.65)+2*.mesh5.MeshSize*6]+{0.02,0,0}, &.mesh5) +// }; +// #endif AnyMatrix InitWrapPos = { - // transf3D({.mesh2.Radius[0],0,0}, &.mesh2), transf3D({.mesh3.Radius[0],0,0}, &.mesh3), - // transf3D({.mesh4.Radius[0],0,0}, &.mesh4), - // transf3D({.mesh5.Radius[0],0,0}, &.mesh5), }; - #endif - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnyMatrix InitWrapPos = { - - transf3D({0,.mesh3.Radius[1],0}, &.mesh3), - //transf3D({0,.mesh4.Radius[1],0}, &.mesh4), - }; - #endif - - #if MESH_TYPE == "QUAD" - AnyMatrix InitWrapPos = { - // transf3D(.mesh2.Points[floor(.mesh2.MeshSize*0.75)+2*.mesh2.MeshSize*6]+{0.02,0,0}, &.mesh2), - transf3D(.mesh3.Points[floor(.mesh3.MeshSize*0.75)+2*.mesh3.MeshSize*6]+{0.02,0,0}, &.mesh3), - transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.7)+2*.mesh4.MeshSize*6]+{0.02,0,0}, &.mesh4), - // transf3D(.mesh5.Points[floor(.mesh5.MeshSize*0.65)+2*.mesh5.MeshSize*6]+{0.02,0,0}, &.mesh5) - }; - #endif InitWrapPosVecArr = {&InitWrapPos}; }; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; @@ -3632,51 +3659,60 @@ AnyMuscleShortestPath OIC_7 = { #endif AnyRefNode &Ins = ....Segments.PelvisSeg.Left.ObliquusInternusNode_5; -// AnySurfTriCylMesh &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh; -// AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; -// AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; -// AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.Left.mesh; - AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.Left.mesh; - AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.Left.mesh; - #else - AnySurfTriCylMesh &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh; - AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; - AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; - #endif +//// AnySurfTriCylMesh &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh; +//// AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; +//// AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; +//// AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.Left.mesh; +// AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.Left.mesh; +// AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.Left.mesh; +// #else +// AnySurfTriCylMesh &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh; +// AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; +// AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; +// #endif + AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh3; + AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh3; + AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh3; SPLine.StringMesh=60; SPLine ={ - #if MESH_TYPE == "ELLIPSOID" - AnyMatrix InitWrapPos = { +// #if MESH_TYPE == "ELLIPSOID" +// AnyMatrix InitWrapPos = { +// transf3D({.mesh2.Radius[0],0,0}, &.mesh2), +// transf3D({.mesh3.Radius[0],0,0}, &.mesh3), +// transf3D({.mesh4.Radius[0],0,0}, &.mesh4), +// // transf3D({.mesh5.Radius[0],0,0}, &.mesh5), +// }; +// #endif +// +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnyMatrix InitWrapPos = { +// transf3D({0,.mesh2.Radius[1],0}, &.mesh2), +// transf3D({0,.mesh3.Radius[1],0}, &.mesh3), +// transf3D({0,.mesh4.Radius[1],0}, &.mesh4), +// }; +// #endif +// +// #if MESH_TYPE == "QUAD" +// AnyMatrix InitWrapPos = { +// transf3D(.mesh2.Points[floor(.mesh2.MeshSize*0.75)+2*.mesh2.MeshSize*6]+{0.02,0,0}, &.mesh2), +// transf3D(.mesh3.Points[floor(.mesh3.MeshSize*0.75)+2*.mesh3.MeshSize*6]+{0.02,0,0}, &.mesh3), +// transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.7)+2*.mesh4.MeshSize*6]+{0.02,0,0}, &.mesh4), +// // transf3D(.mesh5.Points[floor(.mesh5.MeshSize*0.65)+2*.mesh5.MeshSize*6]+{0.02,0,0}, &.mesh5) +// }; +// #endif + AnyMatrix InitWrapPos = { transf3D({.mesh2.Radius[0],0,0}, &.mesh2), transf3D({.mesh3.Radius[0],0,0}, &.mesh3), transf3D({.mesh4.Radius[0],0,0}, &.mesh4), // transf3D({.mesh5.Radius[0],0,0}, &.mesh5), }; - #endif - - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnyMatrix InitWrapPos = { - transf3D({0,.mesh2.Radius[1],0}, &.mesh2), - transf3D({0,.mesh3.Radius[1],0}, &.mesh3), - transf3D({0,.mesh4.Radius[1],0}, &.mesh4), - }; - #endif - #if MESH_TYPE == "QUAD" - AnyMatrix InitWrapPos = { - transf3D(.mesh2.Points[floor(.mesh2.MeshSize*0.75)+2*.mesh2.MeshSize*6]+{0.02,0,0}, &.mesh2), - transf3D(.mesh3.Points[floor(.mesh3.MeshSize*0.75)+2*.mesh3.MeshSize*6]+{0.02,0,0}, &.mesh3), - transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.7)+2*.mesh4.MeshSize*6]+{0.02,0,0}, &.mesh4), - // transf3D(.mesh5.Points[floor(.mesh5.MeshSize*0.65)+2*.mesh5.MeshSize*6]+{0.02,0,0}, &.mesh5) - }; - #endif - InitWrapPosVecArr = {&InitWrapPos}; }; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; @@ -3696,16 +3732,19 @@ AnyMuscleShortestPath OIC_8 = { //AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; // AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.Left.mesh; - AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.Left.mesh; - AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.Left.mesh; - #else - AnySurfTriCylMesh &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh; - AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; - AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; - #endif +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.Left.mesh; +// AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.Left.mesh; +// AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.Left.mesh; +// #else +// AnySurfTriCylMesh &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh; +// AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; +// AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; +// #endif + AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh3; + AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh3; + AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh3; SPLine.StringMesh=60; @@ -3713,31 +3752,37 @@ AnyMuscleShortestPath OIC_8 = { SPLine ={ StringSurfaceMap={{Off,Off,Off},{On,On,On}}; //no wrap before after via - #if MESH_TYPE == "ELLIPSOID" +// #if MESH_TYPE == "ELLIPSOID" +// AnyMatrix InitWrapPos = { +// transf3D({.mesh2.Radius[0],0,0}, &.mesh2), +// transf3D({.mesh3.Radius[0],0,0}, &.mesh3), +// transf3D({.mesh4.Radius[0],0,0}, &.mesh4), +// // transf3D({.mesh5.Radius[0],0,0}, &.mesh5), +// }; +// #endif +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnyMatrix InitWrapPos = { +// transf3D({0,.mesh2.Radius[1],0}, &.mesh2), +// transf3D({0,.mesh3.Radius[1],0}, &.mesh3), +// transf3D({0,.mesh4.Radius[1],0}, &.mesh4), +// }; +// #endif +// +// #if MESH_TYPE == "QUAD" +// AnyMatrix InitWrapPos = { +// transf3D(.mesh2.Points[floor(.mesh2.MeshSize*0.8)+2*.mesh2.MeshSize*6]+{0.02,0,0}, &.mesh2), +// transf3D(.mesh3.Points[floor(.mesh3.MeshSize*0.7)+2*.mesh3.MeshSize*6]+{0.02,0,0}, &.mesh3), +// transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.6)+2*.mesh4.MeshSize*6]+{0.02,0,0}, &.mesh4), +// // transf3D(.mesh5.Points[floor(.mesh5.MeshSize*0.6)+2*.mesh5.MeshSize*6]+{0.02,0,0}, &.mesh5) +// }; +// +// #endif AnyMatrix InitWrapPos = { transf3D({.mesh2.Radius[0],0,0}, &.mesh2), transf3D({.mesh3.Radius[0],0,0}, &.mesh3), transf3D({.mesh4.Radius[0],0,0}, &.mesh4), // transf3D({.mesh5.Radius[0],0,0}, &.mesh5), }; - #endif - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnyMatrix InitWrapPos = { - transf3D({0,.mesh2.Radius[1],0}, &.mesh2), - transf3D({0,.mesh3.Radius[1],0}, &.mesh3), - transf3D({0,.mesh4.Radius[1],0}, &.mesh4), - }; - #endif - - #if MESH_TYPE == "QUAD" - AnyMatrix InitWrapPos = { - transf3D(.mesh2.Points[floor(.mesh2.MeshSize*0.8)+2*.mesh2.MeshSize*6]+{0.02,0,0}, &.mesh2), - transf3D(.mesh3.Points[floor(.mesh3.MeshSize*0.7)+2*.mesh3.MeshSize*6]+{0.02,0,0}, &.mesh3), - transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.6)+2*.mesh4.MeshSize*6]+{0.02,0,0}, &.mesh4), - // transf3D(.mesh5.Points[floor(.mesh5.MeshSize*0.6)+2*.mesh5.MeshSize*6]+{0.02,0,0}, &.mesh5) - }; - - #endif InitWrapPosVecArr = {None,&InitWrapPos}; }; @@ -3751,60 +3796,69 @@ AnyMuscleShortestPath OIC_8_extra = { // AnyRefNode &Via = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L1.BaseSegAnterior.TransversusPoints.Left.nn05; AnyRefNode &Ins = ....Segments.PelvisSeg.Left.ObliquusInternusNode_6; -// AnySurfTriCylMesh &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh; -// AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; -// AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.Left.mesh; - AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.Left.mesh; - AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.Left.mesh; - #else - AnySurfTriCylMesh &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh; - AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; - AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; - #endif - +//// AnySurfTriCylMesh &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh; +//// AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; +//// AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.Left.mesh; +// AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.Left.mesh; +// AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.Left.mesh; +// #else +// AnySurfTriCylMesh &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh; +// AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; +// AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; +// #endif + +// AnySurfEllipsoid &mesh1 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L1.BaseSegAnterior.mesh3; + AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh3; + AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh3; + AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh3; -SPLine.StringMesh=60; +SPLine.StringMesh=100; SPLine ={ // SolverVersion=3; // StringSurfaceMap={{Off,Off,Off,Off},{On,On,On,On}}; //no wrap before after via - #if MESH_TYPE == "ELLIPSOID" - AnyMatrix InitWrapPos = { +// #if MESH_TYPE == "ELLIPSOID" +// AnyMatrix InitWrapPos = { +// transf3D({.mesh2.Radius[0],0,0}, &.mesh2), +// transf3D({.mesh3.Radius[0],0,0}, &.mesh3), +// transf3D({.mesh4.Radius[0],0,0}, &.mesh4), +// }; +// #endif +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnyMatrix InitWrapPos = { +// transf3D({0,.mesh2.Radius[1],0}, &.mesh2), +// transf3D({0,.mesh3.Radius[1],0}, &.mesh3), +// transf3D({0,.mesh4.Radius[1],0}, &.mesh4), +// }; +// #endif + +// #if MESH_TYPE == "QUAD" +// AnyMatrix InitWrapPos = { +// // transf3D({0.0,2*.srf1.MajorRadius,-.srf1.MajorRadius}, &.srf1), +// // transf3D(.mesh1.Points[52]+{0.03,0,0}, &.mesh1), +// // transf3D(.mesh1.Points[floor(.mesh2.MeshSize*0.8)+2*.mesh2.MeshSize*4]+{0.01,0,0}, &.mesh1), +// transf3D(.mesh2.Points[floor(.mesh2.MeshSize*0.75)+2*.mesh2.MeshSize*6]+{0.02,0,0}, &.mesh2), +// transf3D(.mesh3.Points[floor(.mesh3.MeshSize*0.7)+2*.mesh3.MeshSize*6]+{0.02,0,0}, &.mesh3), +// transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.65)+2*.mesh4.MeshSize*6]+{0.02,0,0}, &.mesh4), +//// transf3D(mesh.Points[floor(.mesh.MeshSize*4]+{0.01,0,0}, &.mesh), +// +// // transf3D(.mesh5.Points[floor(.mesh5.MeshSize*0.65)+2*.mesh5.MeshSize*6]+{0.02,0,0}, &.mesh5) +// }; +// +// #endif + + AnyMatrix InitWrapPos = { +// transf3D({.mesh1.Radius[0],0,0}, &.mesh1), transf3D({.mesh2.Radius[0],0,0}, &.mesh2), transf3D({.mesh3.Radius[0],0,0}, &.mesh3), transf3D({.mesh4.Radius[0],0,0}, &.mesh4), }; - #endif - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnyMatrix InitWrapPos = { - transf3D({0,.mesh2.Radius[1],0}, &.mesh2), - transf3D({0,.mesh3.Radius[1],0}, &.mesh3), - transf3D({0,.mesh4.Radius[1],0}, &.mesh4), - }; - #endif - - #if MESH_TYPE == "QUAD" - AnyMatrix InitWrapPos = { - // transf3D({0.0,2*.srf1.MajorRadius,-.srf1.MajorRadius}, &.srf1), - // transf3D(.mesh1.Points[52]+{0.03,0,0}, &.mesh1), - // transf3D(.mesh1.Points[floor(.mesh2.MeshSize*0.8)+2*.mesh2.MeshSize*4]+{0.01,0,0}, &.mesh1), - transf3D(.mesh2.Points[floor(.mesh2.MeshSize*0.75)+2*.mesh2.MeshSize*6]+{0.02,0,0}, &.mesh2), - transf3D(.mesh3.Points[floor(.mesh3.MeshSize*0.7)+2*.mesh3.MeshSize*6]+{0.02,0,0}, &.mesh3), - transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.65)+2*.mesh4.MeshSize*6]+{0.02,0,0}, &.mesh4), -// transf3D(mesh.Points[floor(.mesh.MeshSize*4]+{0.01,0,0}, &.mesh), - - // transf3D(.mesh5.Points[floor(.mesh5.MeshSize*0.65)+2*.mesh5.MeshSize*6]+{0.02,0,0}, &.mesh5) - }; - - #endif - - InitWrapPosVecArr = {&InitWrapPos}; //InitWrapPosVecArr = {&InitWrapPos}; @@ -3821,22 +3875,26 @@ AnyMuscleShortestPath OIC_9 = { AnyRefNode &Org = ....Abdominal.Layer_L1.BaseSegAnterior.mid; AnyRefNode &Ins = ....Segments.PelvisSeg.Left.ObliquusInternusNode_6; -// AnySurfTriCylMesh &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh; -// AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; - // AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; - //AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; - - - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.Left.mesh; - AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.Left.mesh; - AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.Left.mesh; - #else - AnySurfTriCylMesh &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh; - AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; - AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; - #endif - +//// AnySurfTriCylMesh &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh; +//// AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; +// // AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; +// //AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; +// +// +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.Left.mesh; +// AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.Left.mesh; +// AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.Left.mesh; +// AnySurfEllipsoid &meshpelvis = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_Pelvic1.BaseSegAnterior.mesh; +// #else +// AnySurfTriCylMesh &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh; +// AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; +// AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; +// #endif + + AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh3; + AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh3; + AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh3; SPLine.StringMesh=60; @@ -3844,36 +3902,43 @@ AnyMuscleShortestPath OIC_9 = { SPLine ={ - #if MESH_TYPE == "ELLIPSOID" - AnyMatrix InitWrapPos = { +// #if MESH_TYPE == "ELLIPSOID" +// AnyMatrix InitWrapPos = { +// transf3D({.mesh2.Radius[0],0,0}, &.mesh2), +// transf3D({.mesh3.Radius[0],0,0}, &.mesh3), +// transf3D({.mesh4.Radius[0],0,0}, &.mesh4), +// // transf3D({.mesh5.Radius[0],0,0}, &.mesh5), +// +// }; +// #endif +// +// +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnyMatrix InitWrapPos = { +// transf3D({0,.mesh2.Radius[1],0}, &.mesh2), +// transf3D({0,.mesh3.Radius[1],0}, &.mesh3), +// transf3D({0,.mesh4.Radius[1],0}, &.mesh4), +// }; +// #endif +// +// +// +// #if MESH_TYPE == "QUAD" +// AnyMatrix InitWrapPos = { +// transf3D(.mesh2.Points[floor(.mesh2.MeshSize*0.75)+2*.mesh2.MeshSize*6]+{0.02,0,0}, &.mesh2), +// transf3D(.mesh3.Points[floor(.mesh3.MeshSize*0.7) +2*.mesh3.MeshSize*6]+{0.02,0,0}, &.mesh3), +// transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.65)+2*.mesh4.MeshSize*6]+{0.02,0,0}, &.mesh4), +// // transf3D(.mesh5.Points[floor(.mesh5.MeshSize*0.6) +2*.mesh5.MeshSize*6]+{0.02,0,0}, &.mesh5) +// }; +// #endif + AnyMatrix InitWrapPos = { transf3D({.mesh2.Radius[0],0,0}, &.mesh2), transf3D({.mesh3.Radius[0],0,0}, &.mesh3), transf3D({.mesh4.Radius[0],0,0}, &.mesh4), // transf3D({.mesh5.Radius[0],0,0}, &.mesh5), }; - #endif - - - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnyMatrix InitWrapPos = { - transf3D({0,.mesh2.Radius[1],0}, &.mesh2), - transf3D({0,.mesh3.Radius[1],0}, &.mesh3), - transf3D({0,.mesh4.Radius[1],0}, &.mesh4), - }; - #endif - - - #if MESH_TYPE == "QUAD" - AnyMatrix InitWrapPos = { - transf3D(.mesh2.Points[floor(.mesh2.MeshSize*0.75)+2*.mesh2.MeshSize*6]+{0.02,0,0}, &.mesh2), - transf3D(.mesh3.Points[floor(.mesh3.MeshSize*0.7) +2*.mesh3.MeshSize*6]+{0.02,0,0}, &.mesh3), - transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.65)+2*.mesh4.MeshSize*6]+{0.02,0,0}, &.mesh4), - // transf3D(.mesh5.Points[floor(.mesh5.MeshSize*0.6) +2*.mesh5.MeshSize*6]+{0.02,0,0}, &.mesh5) - }; - #endif - InitWrapPosVecArr = {&InitWrapPos}; }; @@ -3888,22 +3953,26 @@ AnyMuscleShortestPath OIC_10 = { AnyRefNode &Org = ....Abdominal.Layer_L2.BaseSegAnterior.mid; AnyRefNode &Ins = ....Segments.PelvisSeg.Left.ObliquusInternusNode_6; -// AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; -// AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; -// AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; - - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.Left.mesh; - AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.Left.mesh; - AnySurfEllipsoid &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.Left.mesh; - - #else - AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; - AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; - AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; - - #endif +//// AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; +//// AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; +//// AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; +// +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.Left.mesh; +// AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.Left.mesh; +// AnySurfEllipsoid &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.Left.mesh; +// AnySurfEllipsoid &meshpelvis = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_Pelvic1.BaseSegAnterior.mesh; +// +// #else +// AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; +// AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; +// AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; +// +// #endif + AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh3; + AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh3; +// AnySurfEllipsoid &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh3; SPLine.StringMesh=60; @@ -3912,40 +3981,47 @@ AnyMuscleShortestPath OIC_10 = { SPLine ={ - #if MESH_TYPE == "ELLIPSOID" - AnyMatrix InitWrapPos = { +// #if MESH_TYPE == "ELLIPSOID" +// AnyMatrix InitWrapPos = { +// +// transf3D({.mesh3.Radius[0],0,0}, &.mesh3), +// transf3D({.mesh4.Radius[0],0,0}, &.mesh4), +// transf3D({.mesh5.Radius[0],0,0}, &.mesh5), +// +// }; +// #endif +// +// +// +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnyMatrix InitWrapPos = { +// transf3D({0,.mesh3.Radius[1],0}, &.mesh3), +// transf3D({0,.mesh4.Radius[1],0}, &.mesh4), +// transf3D({0,.mesh5.Radius[1],0}, &.mesh5), +// +// }; +// #endif +// +// +// +// #if MESH_TYPE == "QUAD" +// AnyMatrix InitWrapPos = { +// +// transf3D(.mesh3.Points[floor(.mesh3.MeshSize*0.75)+2*.mesh3.MeshSize*6]+{0.02,0,0}, &.mesh3), +// transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.7)+2*.mesh4.MeshSize*6]+{0.02,0,0}, &.mesh4), +// transf3D(.mesh5.Points[floor(.mesh5.MeshSize*0.65)+2*.mesh5.MeshSize*6]+{0.02,0,0}, &.mesh5) +// }; +// #endif + + AnyMatrix InitWrapPos = { transf3D({.mesh3.Radius[0],0,0}, &.mesh3), transf3D({.mesh4.Radius[0],0,0}, &.mesh4), - transf3D({.mesh5.Radius[0],0,0}, &.mesh5), +// transf3D({.mesh5.Radius[0],0,0}, &.mesh5), }; - #endif - - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnyMatrix InitWrapPos = { - transf3D({0,.mesh3.Radius[1],0}, &.mesh3), - transf3D({0,.mesh4.Radius[1],0}, &.mesh4), - transf3D({0,.mesh5.Radius[1],0}, &.mesh5), - - }; - #endif - - - - #if MESH_TYPE == "QUAD" - AnyMatrix InitWrapPos = { - - transf3D(.mesh3.Points[floor(.mesh3.MeshSize*0.75)+2*.mesh3.MeshSize*6]+{0.02,0,0}, &.mesh3), - transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.7)+2*.mesh4.MeshSize*6]+{0.02,0,0}, &.mesh4), - transf3D(.mesh5.Points[floor(.mesh5.MeshSize*0.65)+2*.mesh5.MeshSize*6]+{0.02,0,0}, &.mesh5) - }; - #endif - - - InitWrapPosVecArr = {&InitWrapPos}; }; @@ -3961,21 +4037,24 @@ AnyMuscleShortestPath OIC_11 = { AnyRefNode &Org = ....Abdominal.Layer_L3.BaseSegAnterior.mid; AnyRefNode &Ins = ....Segments.PelvisSeg.Left.ObliquusInternusNode_7; - // AnyParamSurf &srf1 =....Abdominal.ObliquusWrapping.WrappingSeg.Layer4WrappingPoints.Left.nn11.Translate.InwardCyl; - // AnyParamSurf &srf2 =....Abdominal.ObliquusWrapping.WrappingSeg.Layer5WrappingPoints.Left.nn08.Translate.InwardCyl; -// AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; -// AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; - - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.Left.mesh; - AnySurfEllipsoid &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.Left.mesh; - - #else - AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; - AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; - - #endif +// // AnyParamSurf &srf1 =....Abdominal.ObliquusWrapping.WrappingSeg.Layer4WrappingPoints.Left.nn11.Translate.InwardCyl; +// // AnyParamSurf &srf2 =....Abdominal.ObliquusWrapping.WrappingSeg.Layer5WrappingPoints.Left.nn08.Translate.InwardCyl; +//// AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; +//// AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; +// +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.Left.mesh; +// AnySurfEllipsoid &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.Left.mesh; +// AnySurfEllipsoid &meshpelvis = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_Pelvic1.BaseSegAnterior.mesh; +// +// #else +// AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; +// AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; +// +// #endif + AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh3; + AnySurfEllipsoid &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh3; SPLine.StringMesh=60; @@ -3983,31 +4062,37 @@ AnyMuscleShortestPath OIC_11 = { SPLine ={ - #if MESH_TYPE == "ELLIPSOID" - AnyMatrix InitWrapPos = { +// #if MESH_TYPE == "ELLIPSOID" +// AnyMatrix InitWrapPos = { +// +// transf3D({.mesh4.Radius[0],0,0}, &.mesh4), +// transf3D({.mesh5.Radius[0],0,0}, &.mesh5), +// +// }; +// #endif +// +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnyMatrix InitWrapPos = { +// transf3D({0,.mesh4.Radius[1],0}, &.mesh4), +// transf3D({0,.mesh5.Radius[1],0}, &.mesh5), +// }; +// #endif +// +// #if MESH_TYPE == "QUAD" +// AnyMatrix InitWrapPos = { +// +// transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.75)+2*.mesh4.MeshSize*6]+{0.02,0,0}, &.mesh4), +// transf3D(.mesh5.Points[floor(.mesh5.MeshSize*0.65)+2*.mesh5.MeshSize*6]+{0.02,0,0}, &.mesh5) +// }; +// +// #endif + AnyMatrix InitWrapPos = { transf3D({.mesh4.Radius[0],0,0}, &.mesh4), transf3D({.mesh5.Radius[0],0,0}, &.mesh5), }; - #endif - - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnyMatrix InitWrapPos = { - transf3D({0,.mesh4.Radius[1],0}, &.mesh4), - transf3D({0,.mesh5.Radius[1],0}, &.mesh5), - }; - #endif - #if MESH_TYPE == "QUAD" - AnyMatrix InitWrapPos = { - - transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.75)+2*.mesh4.MeshSize*6]+{0.02,0,0}, &.mesh4), - transf3D(.mesh5.Points[floor(.mesh5.MeshSize*0.65)+2*.mesh5.MeshSize*6]+{0.02,0,0}, &.mesh5) - }; - - #endif - InitWrapPosVecArr = {&InitWrapPos}; }; @@ -4022,15 +4107,17 @@ AnyMuscleShortestPath OIC_12 = { AnyRefNode &Ins = ....Segments.PelvisSeg.Left.ObliquusInternusNode_7; -// AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; - - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnySurfEllipsoid &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.Left.mesh; - - #else - AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; - - #endif +//// AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; +// +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnySurfEllipsoid &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.Left.mesh; +// AnySurfEllipsoid &meshpelvis = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_Pelvic1.BaseSegAnterior.mesh; +// +// #else +// AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; +// +// #endif + AnySurfEllipsoid &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh3; SPLine.StringMesh=60; @@ -4038,27 +4125,30 @@ AnyMuscleShortestPath OIC_12 = { SPLine ={ - #if MESH_TYPE == "ELLIPSOID" - AnyMatrix InitWrapPos = { +// #if MESH_TYPE == "ELLIPSOID" +// AnyMatrix InitWrapPos = { +// transf3D({.mesh5.Radius[0],0,0}, &.mesh5), +// }; +// #endif +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnyMatrix InitWrapPos = { +// transf3D({0,.mesh5.Radius[1],0}, &.mesh5), +// }; +// #endif +// +// +// #if MESH_TYPE == "QUAD" +// AnyMatrix InitWrapPos = { +// +// transf3D(.mesh5.Points[floor(.mesh5.MeshSize*0.65)+2*.mesh5.MeshSize*6]+{0.02,0,0}, &.mesh5) +// }; +// +// #endif + AnyMatrix InitWrapPos = { transf3D({.mesh5.Radius[0],0,0}, &.mesh5), }; - #endif - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnyMatrix InitWrapPos = { - transf3D({0,.mesh5.Radius[1],0}, &.mesh5), - }; - #endif - #if MESH_TYPE == "QUAD" - AnyMatrix InitWrapPos = { - - transf3D(.mesh5.Points[floor(.mesh5.MeshSize*0.65)+2*.mesh5.MeshSize*6]+{0.02,0,0}, &.mesh5) - }; - - #endif - - InitWrapPosVecArr = {&InitWrapPos}; }; diff --git a/Body/AAUHuman/Trunk/MusclesRight.any b/Body/AAUHuman/Trunk/MusclesRight.any index 97a808caa..6beb62a08 100644 --- a/Body/AAUHuman/Trunk/MusclesRight.any +++ b/Body/AAUHuman/Trunk/MusclesRight.any @@ -2880,11 +2880,12 @@ AnyMuscleShortestPath OEC_3 = { #endif - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.Right.mesh; - #else - AnySurfTriCylMesh &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh; - #endif +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.Right.mesh; +// #else +// AnySurfTriCylMesh &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh; +// #endif + AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh3; @@ -2895,35 +2896,35 @@ AnyMuscleShortestPath OEC_3 = { SPLine ={ - #if MESH_TYPE == "ELLIPSOID" - AnyMatrix InitWrapPos = { - transf3D({0,.srf1.MajorRadius+.srf1.MinorRadius, 0}, &.srf1), - transf3D({.mesh2.Radius[0],0,0}, &.mesh2), - }; - #endif - - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnyMatrix InitWrapPos = { - transf3D({0,.srf1.MajorRadius+.srf1.MinorRadius, 0}, &.srf1), - - transf3D({0,.mesh2.Radius[1],0}, &.mesh2), - - }; - #endif - - +// #if MESH_TYPE == "ELLIPSOID" +// AnyMatrix InitWrapPos = { +// transf3D({0,.srf1.MajorRadius+.srf1.MinorRadius, 0}, &.srf1), +// transf3D({.mesh2.Radius[0],0,0}, &.mesh2), +// }; +// #endif +// +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnyMatrix InitWrapPos = { +// transf3D({0,.srf1.MajorRadius+.srf1.MinorRadius, 0}, &.srf1), +// +// transf3D({0,.mesh2.Radius[1],0}, &.mesh2), +// +// }; +// #endif +// +// #if MESH_TYPE == "QUAD" +// AnyMatrix InitWrapPos = { +// transf3D({0,.srf1.MajorRadius+.srf1.MinorRadius, 0}, &.srf1), +// transf3D(.mesh2.Points[floor(.mesh2.MeshSize*0.9)+2*.mesh2.MeshSize*6]+{0.02,0,0}, &.mesh2), +// }; +// #endif - #if MESH_TYPE == "QUAD" AnyMatrix InitWrapPos = { transf3D({0,.srf1.MajorRadius+.srf1.MinorRadius, 0}, &.srf1), - transf3D(.mesh2.Points[floor(.mesh2.MeshSize*0.9)+2*.mesh2.MeshSize*6]+{0.02,0,0}, &.mesh2), + transf3D({.mesh2.Radius[0],0,0}, &.mesh2), }; - #endif - - - - + InitWrapPosVecArr = {&InitWrapPos}; }; @@ -2945,53 +2946,54 @@ AnyMuscleShortestPath OEC_4 = { #endif - #if MESH_TYPE == "ELLIPSOID_SIDE" - //AnySurfTriCylMesh &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh; - AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.Right.mesh; - //AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; - #else - //AnySurfTriCylMesh &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh; - AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; - //AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; - #endif +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// //AnySurfTriCylMesh &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh; +// AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.Right.mesh; +// //AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; +// #else +// //AnySurfTriCylMesh &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh; +// AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; +// //AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; +// #endif + AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh3; SPLine.StringMesh=60; SPLine ={ - #if MESH_TYPE == "ELLIPSOID" +// #if MESH_TYPE == "ELLIPSOID" +// AnyMatrix InitWrapPos = { +// transf3D({0,.srf1.MajorRadius+.srf1.MinorRadius, 0}, &.srf1), +// //transf3D({.mesh2.Radius[0],0,0}, &.mesh2), +// transf3D({.mesh3.Radius[0],0,0}, &.mesh3), +// //transf3D({.mesh4.Radius[0],0,0}, &.mesh4), +// }; +// #endif +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnyMatrix InitWrapPos = { +// transf3D({0,.srf1.MajorRadius+.srf1.MinorRadius, 0}, &.srf1), +// transf3D({0,.mesh3.Radius[1],0}, &.mesh3), +// }; +// #endif +// +// #if MESH_TYPE == "QUAD" +//AnyMatrix InitWrapPos = { +// transf3D({0,.srf1.MajorRadius+.srf1.MinorRadius, 0}, &.srf1), +// +// // transf3D(.mesh2.Points[floor(.mesh2.MeshSize*0.85)+2*.mesh2.MeshSize*6]+{0.02,0,0}, &.mesh2), +// // transf3D(.mesh3.Points[floor(.mesh3.MeshSize*0.95)+2*.mesh3.MeshSize*6]+{0.02,0,0}, &.mesh3) +// transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.95)+2*.mesh4.MeshSize*6]+{0.02,0,0}, &.mesh4) +// +// +// }; +// #endif AnyMatrix InitWrapPos = { transf3D({0,.srf1.MajorRadius+.srf1.MinorRadius, 0}, &.srf1), //transf3D({.mesh2.Radius[0],0,0}, &.mesh2), transf3D({.mesh3.Radius[0],0,0}, &.mesh3), //transf3D({.mesh4.Radius[0],0,0}, &.mesh4), }; - #endif - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnyMatrix InitWrapPos = { - transf3D({0,.srf1.MajorRadius+.srf1.MinorRadius, 0}, &.srf1), - transf3D({0,.mesh3.Radius[1],0}, &.mesh3), - }; - #endif - - - - - #if MESH_TYPE == "QUAD" -AnyMatrix InitWrapPos = { - transf3D({0,.srf1.MajorRadius+.srf1.MinorRadius, 0}, &.srf1), - - // transf3D(.mesh2.Points[floor(.mesh2.MeshSize*0.85)+2*.mesh2.MeshSize*6]+{0.02,0,0}, &.mesh2), - // transf3D(.mesh3.Points[floor(.mesh3.MeshSize*0.95)+2*.mesh3.MeshSize*6]+{0.02,0,0}, &.mesh3) - transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.95)+2*.mesh4.MeshSize*6]+{0.02,0,0}, &.mesh4) - - - }; - #endif - - - - + InitWrapPosVecArr = {&InitWrapPos}; }; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; @@ -3013,42 +3015,50 @@ AnyMuscleShortestPath OEC_5= { // AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.Right.mesh; - #else - AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; - #endif +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.Right.mesh; +// #else +// AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; +// #endif + AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh3; + AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh3; SPLine.StringMesh=60; SPLine ={ - #if MESH_TYPE == "ELLIPSOID" +// #if MESH_TYPE == "ELLIPSOID" +// AnyMatrix InitWrapPos = { +// transf3D({0,.srf0.MajorRadius+.srf0.MinorRadius, 0}, &.srf0), +// // transf3D({.mesh3.Radius[0],0,0}, &.mesh3), +// transf3D({.mesh4.Radius[0],0,0}, &.mesh4), +// }; +// #endif +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnyMatrix InitWrapPos = { +// transf3D({0,.srf0.MajorRadius+.srf0.MinorRadius, 0}, &.srf0), +// +// transf3D({0,.mesh4.Radius[1],0}, &.mesh4), +// +// }; +// #endif +// +// +// +// #if MESH_TYPE == "QUAD" +//AnyMatrix InitWrapPos = { +// transf3D({0,.srf0.MajorRadius+.srf0.MinorRadius, 0}, &.srf0), +// //transf3D(.mesh3.Points[floor(.mesh3.MeshSize*0.85)+2*.mesh3.MeshSize*6]+{0.02,0,0}, &.mesh3), +// transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.85)+2*.mesh4.MeshSize*6]+{0.02,0,0}, &.mesh4) +// }; +// #endif AnyMatrix InitWrapPos = { transf3D({0,.srf0.MajorRadius+.srf0.MinorRadius, 0}, &.srf0), - // transf3D({.mesh3.Radius[0],0,0}, &.mesh3), + transf3D({.mesh3.Radius[0],0,0}, &.mesh3), transf3D({.mesh4.Radius[0],0,0}, &.mesh4), }; - #endif - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnyMatrix InitWrapPos = { - transf3D({0,.srf0.MajorRadius+.srf0.MinorRadius, 0}, &.srf0), - - transf3D({0,.mesh4.Radius[1],0}, &.mesh4), - - }; - #endif - - - #if MESH_TYPE == "QUAD" -AnyMatrix InitWrapPos = { - transf3D({0,.srf0.MajorRadius+.srf0.MinorRadius, 0}, &.srf0), - //transf3D(.mesh3.Points[floor(.mesh3.MeshSize*0.85)+2*.mesh3.MeshSize*6]+{0.02,0,0}, &.mesh3), - transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.85)+2*.mesh4.MeshSize*6]+{0.02,0,0}, &.mesh4) - }; - #endif InitWrapPosVecArr = {&InitWrapPos}; }; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; @@ -3063,41 +3073,47 @@ AnyMuscleShortestPath OEC_6 = { //AnySurfTriCylMesh &mesh4= Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; // AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnySurfEllipsoid &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.Right.mesh; - #else - AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; - #endif +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnySurfEllipsoid &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.Right.mesh; +// #else +// AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; +// #endif + AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh3; + AnySurfEllipsoid &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh3; - SPLine.StringMesh=60; + SPLine.StringMesh=80; SPLine ={ - #if MESH_TYPE == "ELLIPSOID" +// #if MESH_TYPE == "ELLIPSOID" +// AnyMatrix InitWrapPos = { +// // transf3D({.mesh4.Radius[0],0,0}, &.mesh4), +// transf3D({.mesh5.Radius[0],0,0}, &.mesh5), +// }; +// #endif +// +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnyMatrix InitWrapPos = { +// transf3D({0,.mesh5.Radius[1],0}, &.mesh5), +// +// }; +// #endif +// +// +// +// #if MESH_TYPE == "QUAD" +// +// AnyMatrix InitWrapPos = { +// // transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.8)+2*.mesh4.MeshSize*6]+{0.02,0,0}, &.mesh4), +// transf3D(.mesh5.Points[floor(.mesh5.MeshSize*0.85)+2*.mesh5.MeshSize*6]+{0.02,0,0}, &.mesh5) +// +// }; +// #endif AnyMatrix InitWrapPos = { - // transf3D({.mesh4.Radius[0],0,0}, &.mesh4), + transf3D({.mesh4.Radius[0],0,0}, &.mesh4), transf3D({.mesh5.Radius[0],0,0}, &.mesh5), }; - #endif - - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnyMatrix InitWrapPos = { - transf3D({0,.mesh5.Radius[1],0}, &.mesh5), - - }; - #endif - - - - #if MESH_TYPE == "QUAD" - - AnyMatrix InitWrapPos = { - // transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.8)+2*.mesh4.MeshSize*6]+{0.02,0,0}, &.mesh4), - transf3D(.mesh5.Points[floor(.mesh5.MeshSize*0.85)+2*.mesh5.MeshSize*6]+{0.02,0,0}, &.mesh5) - - }; - #endif InitWrapPosVecArr = {&InitWrapPos}; @@ -3117,41 +3133,52 @@ AnyMuscleShortestPath OEC_7 = { // AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; // AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; // - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.Right.mesh; - AnySurfEllipsoid &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.Right.mesh; - #else - AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; - AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; - #endif +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.Right.mesh; +// AnySurfEllipsoid &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.Right.mesh; +// #else +// AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; +// AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; +// #endif + + AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh3; + AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh3; + AnySurfEllipsoid &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh3; - SPLine.StringMesh=60; + SPLine.StringMesh=120; SPLine ={ - #if MESH_TYPE == "ELLIPSOID" +// #if MESH_TYPE == "ELLIPSOID" +// AnyMatrix InitWrapPos = { +// transf3D({.mesh4.Radius[0],0,0}, &.mesh4), +// transf3D({.mesh5.Radius[0],0,0}, &.mesh5), +// }; +// #endif +// +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnyMatrix InitWrapPos = { +// transf3D({0,.mesh4.Radius[1],0}, &.mesh4), +// transf3D({0,.mesh5.Radius[1],0}, &.mesh5), +// +// }; +// #endif +// +// +// #if MESH_TYPE == "QUAD" +// +// AnyMatrix InitWrapPos = { +// transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.8)+2*20*4]+{0.01,0,0}, &.mesh4), +// transf3D(.mesh5.Points[floor(.mesh5.MeshSize*0.85)+2*20*4]+{0.01,0,0}, &.mesh5) +// }; +// #endif + AnyMatrix InitWrapPos = { + transf3D({.mesh3.Radius[0],0,0}, &.mesh3), transf3D({.mesh4.Radius[0],0,0}, &.mesh4), transf3D({.mesh5.Radius[0],0,0}, &.mesh5), }; - #endif - - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnyMatrix InitWrapPos = { - transf3D({0,.mesh4.Radius[1],0}, &.mesh4), - transf3D({0,.mesh5.Radius[1],0}, &.mesh5), - - }; - #endif - - #if MESH_TYPE == "QUAD" - - AnyMatrix InitWrapPos = { - transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.8)+2*20*4]+{0.01,0,0}, &.mesh4), - transf3D(.mesh5.Points[floor(.mesh5.MeshSize*0.85)+2*20*4]+{0.01,0,0}, &.mesh5) - }; - #endif InitWrapPosVecArr = {&InitWrapPos}; }; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; @@ -3598,41 +3625,47 @@ AnyMuscleShortestPath OIC_6 = { //AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; //AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.Right.mesh; - #else - AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; - #endif +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.Right.mesh; +// #else +// AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; +// #endif + AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh3; SPLine.StringMesh=60; SPLine ={ - #if MESH_TYPE == "ELLIPSOID" +// #if MESH_TYPE == "ELLIPSOID" +// AnyMatrix InitWrapPos = { +// // transf3D({.mesh2.Radius[0],0,0}, &.mesh2), +// transf3D({.mesh3.Radius[0],0,0}, &.mesh3), +// // transf3D({.mesh4.Radius[0],0,0}, &.mesh4), +// // transf3D({.mesh5.Radius[0],0,0}, &.mesh5), +// }; +// #endif +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnyMatrix InitWrapPos = { +// +// transf3D({0,.mesh3.Radius[1],0}, &.mesh3), +// //transf3D({0,.mesh4.Radius[1],0}, &.mesh4), +// }; +// #endif +// +// +// #if MESH_TYPE == "QUAD" +// AnyMatrix InitWrapPos = { +// // transf3D(.mesh2.Points[floor(.mesh2.MeshSize*0.75)+2*.mesh2.MeshSize*6]+{0.02,0,0}, &.mesh2), +// transf3D(.mesh3.Points[floor(.mesh3.MeshSize*0.75)+2*.mesh3.MeshSize*6]+{0.02,0,0}, &.mesh3), +// transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.7)+2*.mesh4.MeshSize*6]+{0.02,0,0}, &.mesh4), +// // transf3D(.mesh5.Points[floor(.mesh5.MeshSize*0.65)+2*.mesh5.MeshSize*6]+{0.02,0,0}, &.mesh5) +// }; +// #endif + AnyMatrix InitWrapPos = { - // transf3D({.mesh2.Radius[0],0,0}, &.mesh2), transf3D({.mesh3.Radius[0],0,0}, &.mesh3), - // transf3D({.mesh4.Radius[0],0,0}, &.mesh4), - // transf3D({.mesh5.Radius[0],0,0}, &.mesh5), - }; - #endif - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnyMatrix InitWrapPos = { - - transf3D({0,.mesh3.Radius[1],0}, &.mesh3), - //transf3D({0,.mesh4.Radius[1],0}, &.mesh4), }; - #endif - - #if MESH_TYPE == "QUAD" - AnyMatrix InitWrapPos = { - // transf3D(.mesh2.Points[floor(.mesh2.MeshSize*0.75)+2*.mesh2.MeshSize*6]+{0.02,0,0}, &.mesh2), - transf3D(.mesh3.Points[floor(.mesh3.MeshSize*0.75)+2*.mesh3.MeshSize*6]+{0.02,0,0}, &.mesh3), - transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.7)+2*.mesh4.MeshSize*6]+{0.02,0,0}, &.mesh4), - // transf3D(.mesh5.Points[floor(.mesh5.MeshSize*0.65)+2*.mesh5.MeshSize*6]+{0.02,0,0}, &.mesh5) - }; - #endif InitWrapPosVecArr = {&InitWrapPos}; }; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; @@ -3648,51 +3681,62 @@ AnyMuscleShortestPath OIC_7 = { #endif AnyRefNode &Ins = ....Segments.PelvisSeg.Right.ObliquusInternusNode_5; -// AnySurfTriCylMesh &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh; -// AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; -// AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; -// AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.Right.mesh; - AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.Right.mesh; - AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.Right.mesh; - #else - AnySurfTriCylMesh &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh; - AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; - AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; - #endif - +//// AnySurfTriCylMesh &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh; +//// AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; +//// AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; +//// AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.Right.mesh; +// AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.Right.mesh; +// AnySurfEllipsoid &mesh3_extra = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.Right.mesh2; +// AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.Right.mesh; +// #else +// AnySurfTriCylMesh &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh; +// AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; +// AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; +// #endif + + AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh3; + AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh3; + AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh3; SPLine.StringMesh=60; SPLine ={ - #if MESH_TYPE == "ELLIPSOID" +// #if MESH_TYPE == "ELLIPSOID" +// AnyMatrix InitWrapPos = { +// transf3D({.mesh2.Radius[0],0,0}, &.mesh2), +// transf3D({.mesh3.Radius[0],0,0}, &.mesh3), +// transf3D({.mesh4.Radius[0],0,0}, &.mesh4), +// // transf3D({.mesh5.Radius[0],0,0}, &.mesh5), +// }; +// #endif +// +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnyMatrix InitWrapPos = { +// transf3D({0,.mesh2.Radius[1],0}, &.mesh2), +// transf3D({0,.mesh3.Radius[1],0}, &.mesh3), +//// transf3D({0,.mesh3_extra.Radius[1],0}, &.mesh3_extra), +// transf3D({0,.mesh4.Radius[1],0}, &.mesh4), +// }; +// #endif +// +// #if MESH_TYPE == "QUAD" +// AnyMatrix InitWrapPos = { +// transf3D(.mesh2.Points[floor(.mesh2.MeshSize*0.75)+2*.mesh2.MeshSize*6]+{0.02,0,0}, &.mesh2), +// transf3D(.mesh3.Points[floor(.mesh3.MeshSize*0.75)+2*.mesh3.MeshSize*6]+{0.02,0,0}, &.mesh3), +// transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.7)+2*.mesh4.MeshSize*6]+{0.02,0,0}, &.mesh4), +// // transf3D(.mesh5.Points[floor(.mesh5.MeshSize*0.65)+2*.mesh5.MeshSize*6]+{0.02,0,0}, &.mesh5) +// }; +// #endif AnyMatrix InitWrapPos = { transf3D({.mesh2.Radius[0],0,0}, &.mesh2), transf3D({.mesh3.Radius[0],0,0}, &.mesh3), transf3D({.mesh4.Radius[0],0,0}, &.mesh4), // transf3D({.mesh5.Radius[0],0,0}, &.mesh5), }; - #endif - - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnyMatrix InitWrapPos = { - transf3D({0,.mesh2.Radius[1],0}, &.mesh2), - transf3D({0,.mesh3.Radius[1],0}, &.mesh3), - transf3D({0,.mesh4.Radius[1],0}, &.mesh4), - }; - #endif - #if MESH_TYPE == "QUAD" - AnyMatrix InitWrapPos = { - transf3D(.mesh2.Points[floor(.mesh2.MeshSize*0.75)+2*.mesh2.MeshSize*6]+{0.02,0,0}, &.mesh2), - transf3D(.mesh3.Points[floor(.mesh3.MeshSize*0.75)+2*.mesh3.MeshSize*6]+{0.02,0,0}, &.mesh3), - transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.7)+2*.mesh4.MeshSize*6]+{0.02,0,0}, &.mesh4), - // transf3D(.mesh5.Points[floor(.mesh5.MeshSize*0.65)+2*.mesh5.MeshSize*6]+{0.02,0,0}, &.mesh5) - }; - #endif - InitWrapPosVecArr = {&InitWrapPos}; }; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; @@ -3711,52 +3755,81 @@ AnyMuscleShortestPath OIC_8 = { //AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; //AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; // AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; - - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.Right.mesh; - AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.Right.mesh; - AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.Right.mesh; - #else - AnySurfTriCylMesh &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh; - AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; - AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; - #endif - +//#ifndef WRAPPING_TEST +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.Right.mesh; +// AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.Right.mesh; +// AnySurfEllipsoid &mesh3_extra = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.Right.mesh2; +// AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.Right.mesh; +// #else +// AnySurfTriCylMesh &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh; +// AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; +// AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; +// #endif +//#else + AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh3; + AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh3; + AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh3; +//#endif SPLine.StringMesh=60; - - SPLine ={ - StringSurfaceMap={{Off,Off,Off},{On,On,On}}; //no wrap before after via +// #ifndef WRAPPING_TEST - #if MESH_TYPE == "ELLIPSOID" - AnyMatrix InitWrapPos = { + SPLine ={ +// StringSurfaceMap={{Off,Off,Off,Off},{On,On,On,On}}; //no wrap before after via + StringSurfaceMap={{Off,Off,Off},{On,On,On}}; //no wrap before after via + +// #if MESH_TYPE == "ELLIPSOID" +// AnyMatrix InitWrapPos = { +// transf3D({.mesh2.Radius[0],0,0}, &.mesh2), +// transf3D({.mesh3.Radius[0],0,0}, &.mesh3), +// transf3D({.mesh4.Radius[0],0,0}, &.mesh4), +// // transf3D({.mesh5.Radius[0],0,0}, &.mesh5), +// }; +// #endif +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnyMatrix InitWrapPos = { +// transf3D({0,.mesh2.Radius[1],0}, &.mesh2), +// transf3D({0,.mesh3.Radius[1],0}, &.mesh3), +//// transf3D({0,.mesh3_extra.Radius[1],0}, &.mesh3_extra), +// transf3D({0,.mesh4.Radius[1],0}, &.mesh4), +// }; +// #endif +// +// #if MESH_TYPE == "QUAD" +// AnyMatrix InitWrapPos = { +// transf3D(.mesh2.Points[floor(.mesh2.MeshSize*0.8)+2*.mesh2.MeshSize*6]+{0.02,0,0}, &.mesh2), +// transf3D(.mesh3.Points[floor(.mesh3.MeshSize*0.7)+2*.mesh3.MeshSize*6]+{0.02,0,0}, &.mesh3), +// transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.6)+2*.mesh4.MeshSize*6]+{0.02,0,0}, &.mesh4), +// // transf3D(.mesh5.Points[floor(.mesh5.MeshSize*0.6)+2*.mesh5.MeshSize*6]+{0.02,0,0}, &.mesh5) +// }; +// #endif + AnyMatrix InitWrapPos = { transf3D({.mesh2.Radius[0],0,0}, &.mesh2), transf3D({.mesh3.Radius[0],0,0}, &.mesh3), transf3D({.mesh4.Radius[0],0,0}, &.mesh4), - // transf3D({.mesh5.Radius[0],0,0}, &.mesh5), - }; - #endif - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnyMatrix InitWrapPos = { - transf3D({0,.mesh2.Radius[1],0}, &.mesh2), - transf3D({0,.mesh3.Radius[1],0}, &.mesh3), - transf3D({0,.mesh4.Radius[1],0}, &.mesh4), + // transf3D({.mesh5.Radius[0],0,0}, &.mesh5), }; - #endif - - #if MESH_TYPE == "QUAD" - AnyMatrix InitWrapPos = { - transf3D(.mesh2.Points[floor(.mesh2.MeshSize*0.8)+2*.mesh2.MeshSize*6]+{0.02,0,0}, &.mesh2), - transf3D(.mesh3.Points[floor(.mesh3.MeshSize*0.7)+2*.mesh3.MeshSize*6]+{0.02,0,0}, &.mesh3), - transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.6)+2*.mesh4.MeshSize*6]+{0.02,0,0}, &.mesh4), - // transf3D(.mesh5.Points[floor(.mesh5.MeshSize*0.6)+2*.mesh5.MeshSize*6]+{0.02,0,0}, &.mesh5) - }; - - #endif - InitWrapPosVecArr = {None,&InitWrapPos}; + InitWrapPosVecArr = {None,&InitWrapPos}; }; + +// #else +// SPLine ={ +// StringSurfaceMap={{Off},{On}}; //no wrap before after via +// +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnyMatrix InitWrapPos = { +// transf3D({0,.mesh3_extra.Radius[1],0}, &.mesh3_extra), +// }; +// #endif +// +// +// +// InitWrapPosVecArr = {None,&InitWrapPos}; +// }; +// #endif viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; viewForce.Visible ??= Off; }; @@ -3767,61 +3840,71 @@ AnyMuscleShortestPath OIC_8_extra = { // AnyRefNode &Via = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L1.BaseSegAnterior.TransversusPoints.Right.nn05; AnyRefNode &Ins = ....Segments.PelvisSeg.Right.ObliquusInternusNode_6; -// AnySurfTriCylMesh &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh; -// AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; -// AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.Right.mesh; - AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.Right.mesh; - AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.Right.mesh; - #else - AnySurfTriCylMesh &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh; - AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; - AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; - #endif +//// AnySurfTriCylMesh &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh; +//// AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; +//// AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.Right.mesh; +// AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.Right.mesh; +// AnySurfEllipsoid &mesh3_extra = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.Right.mesh2; +// AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.Right.mesh; +// #else +// AnySurfTriCylMesh &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh; +// AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; +// AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; +// #endif +// AnySurfEllipsoid &mesh1 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L1.BaseSegAnterior.mesh3; + AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh3; + AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh3; + AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh3; -SPLine.StringMesh=60; +SPLine.StringMesh=100; SPLine ={ // SolverVersion=3; // StringSurfaceMap={{Off,Off,Off,Off},{On,On,On,On}}; //no wrap before after via - #if MESH_TYPE == "ELLIPSOID" +// #if MESH_TYPE == "ELLIPSOID" +// AnyMatrix InitWrapPos = { +// transf3D({.mesh2.Radius[0],0,0}, &.mesh2), +// transf3D({.mesh3.Radius[0],0,0}, &.mesh3), +// transf3D({.mesh4.Radius[0],0,0}, &.mesh4), +// }; +// #endif +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnyMatrix InitWrapPos = { +// transf3D({0,.mesh2.Radius[1],0}, &.mesh2), +// transf3D({0,.mesh3.Radius[1],0},&.mesh3), +//// transf3D({0,.mesh3_extra.Radius[1],0},&.mesh3_extra), +// transf3D({0,.mesh4.Radius[1],0}, &.mesh4), +// }; +// #endif +// +// #if MESH_TYPE == "QUAD" +// AnyMatrix InitWrapPos = { +// // transf3D({0.0,2*.srf1.MajorRadius,-.srf1.MajorRadius}, &.srf1), +// // transf3D(.mesh1.Points[52]+{0.03,0,0}, &.mesh1), +// // transf3D(.mesh1.Points[floor(.mesh2.MeshSize*0.8)+2*.mesh2.MeshSize*4]+{0.01,0,0}, &.mesh1), +// transf3D(.mesh2.Points[floor(.mesh2.MeshSize*0.75)+2*.mesh2.MeshSize*6]+{0.02,0,0}, &.mesh2), +// transf3D(.mesh3.Points[floor(.mesh3.MeshSize*0.7)+2*.mesh3.MeshSize*6]+{0.02,0,0}, &.mesh3), +// transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.65)+2*.mesh4.MeshSize*6]+{0.02,0,0}, &.mesh4), +//// transf3D(mesh.Points[floor(.mesh.MeshSize*4]+{0.01,0,0}, &.mesh), +// +// // transf3D(.mesh5.Points[floor(.mesh5.MeshSize*0.65)+2*.mesh5.MeshSize*6]+{0.02,0,0}, &.mesh5) +// }; +// +// #endif AnyMatrix InitWrapPos = { +// transf3D({.mesh1.Radius[0],0,0}, &.mesh1), transf3D({.mesh2.Radius[0],0,0}, &.mesh2), transf3D({.mesh3.Radius[0],0,0}, &.mesh3), transf3D({.mesh4.Radius[0],0,0}, &.mesh4), }; - #endif - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnyMatrix InitWrapPos = { - transf3D({0,.mesh2.Radius[1],0}, &.mesh2), - transf3D({0,.mesh3.Radius[1],0},&.mesh3), - transf3D({0,.mesh4.Radius[1],0}, &.mesh4), - }; - #endif - - - #if MESH_TYPE == "QUAD" - AnyMatrix InitWrapPos = { - // transf3D({0.0,2*.srf1.MajorRadius,-.srf1.MajorRadius}, &.srf1), - // transf3D(.mesh1.Points[52]+{0.03,0,0}, &.mesh1), - // transf3D(.mesh1.Points[floor(.mesh2.MeshSize*0.8)+2*.mesh2.MeshSize*4]+{0.01,0,0}, &.mesh1), - transf3D(.mesh2.Points[floor(.mesh2.MeshSize*0.75)+2*.mesh2.MeshSize*6]+{0.02,0,0}, &.mesh2), - transf3D(.mesh3.Points[floor(.mesh3.MeshSize*0.7)+2*.mesh3.MeshSize*6]+{0.02,0,0}, &.mesh3), - transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.65)+2*.mesh4.MeshSize*6]+{0.02,0,0}, &.mesh4), -// transf3D(mesh.Points[floor(.mesh.MeshSize*4]+{0.01,0,0}, &.mesh), - - // transf3D(.mesh5.Points[floor(.mesh5.MeshSize*0.65)+2*.mesh5.MeshSize*6]+{0.02,0,0}, &.mesh5) - }; - - #endif - InitWrapPosVecArr = {&InitWrapPos}; @@ -3842,16 +3925,20 @@ AnyMuscleShortestPath OIC_9 = { //AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.Right.mesh; - AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.Right.mesh; - AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.Right.mesh; - #else - AnySurfTriCylMesh &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh; - AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; - AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; - #endif +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.Right.mesh; +// AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.Right.mesh; +// AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.Right.mesh; +//// AnySurfEllipsoid &meshpelvis = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_Pelvic1.BaseSegAnterior.mesh; +// #else +// AnySurfTriCylMesh &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh; +// AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; +// AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; +// #endif + AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh3; + AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh3; + AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh3; SPLine.StringMesh=60; @@ -3859,36 +3946,43 @@ AnyMuscleShortestPath OIC_9 = { SPLine ={ - #if MESH_TYPE == "ELLIPSOID" - AnyMatrix InitWrapPos = { +// #if MESH_TYPE == "ELLIPSOID" +// AnyMatrix InitWrapPos = { +// transf3D({.mesh2.Radius[0],0,0}, &.mesh2), +// transf3D({.mesh3.Radius[0],0,0}, &.mesh3), +// transf3D({.mesh4.Radius[0],0,0}, &.mesh4), +// // transf3D({.mesh5.Radius[0],0,0}, &.mesh5), +// +// }; +// #endif +// +// +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnyMatrix InitWrapPos = { +// transf3D({0,.mesh2.Radius[1],0}, &.mesh2), +// transf3D({0,.mesh3.Radius[1],0}, &.mesh3), +// transf3D({0,.mesh4.Radius[1],0}, &.mesh4), +// }; +// #endif +// +// +// +// #if MESH_TYPE == "QUAD" +// AnyMatrix InitWrapPos = { +// transf3D(.mesh2.Points[floor(.mesh2.MeshSize*0.75)+2*.mesh2.MeshSize*6]+{0.02,0,0}, &.mesh2), +// transf3D(.mesh3.Points[floor(.mesh3.MeshSize*0.7) +2*.mesh3.MeshSize*6]+{0.02,0,0}, &.mesh3), +// transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.65)+2*.mesh4.MeshSize*6]+{0.02,0,0}, &.mesh4), +// // transf3D(.mesh5.Points[floor(.mesh5.MeshSize*0.6) +2*.mesh5.MeshSize*6]+{0.02,0,0}, &.mesh5) +// }; +// #endif + AnyMatrix InitWrapPos = { transf3D({.mesh2.Radius[0],0,0}, &.mesh2), transf3D({.mesh3.Radius[0],0,0}, &.mesh3), transf3D({.mesh4.Radius[0],0,0}, &.mesh4), // transf3D({.mesh5.Radius[0],0,0}, &.mesh5), }; - #endif - - - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnyMatrix InitWrapPos = { - transf3D({0,.mesh2.Radius[1],0}, &.mesh2), - transf3D({0,.mesh3.Radius[1],0}, &.mesh3), - transf3D({0,.mesh4.Radius[1],0}, &.mesh4), - }; - #endif - - - #if MESH_TYPE == "QUAD" - AnyMatrix InitWrapPos = { - transf3D(.mesh2.Points[floor(.mesh2.MeshSize*0.75)+2*.mesh2.MeshSize*6]+{0.02,0,0}, &.mesh2), - transf3D(.mesh3.Points[floor(.mesh3.MeshSize*0.7) +2*.mesh3.MeshSize*6]+{0.02,0,0}, &.mesh3), - transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.65)+2*.mesh4.MeshSize*6]+{0.02,0,0}, &.mesh4), - // transf3D(.mesh5.Points[floor(.mesh5.MeshSize*0.6) +2*.mesh5.MeshSize*6]+{0.02,0,0}, &.mesh5) - }; - #endif - InitWrapPosVecArr = {&InitWrapPos}; }; @@ -3903,22 +3997,26 @@ AnyMuscleShortestPath OIC_10 = { AnyRefNode &Org = ....Abdominal.Layer_L2.BaseSegAnterior.mid; AnyRefNode &Ins = ....Segments.PelvisSeg.Right.ObliquusInternusNode_6; -// AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; -// AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; -// AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; - - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.Right.mesh; - AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.Right.mesh; - AnySurfEllipsoid &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.Right.mesh; - - #else - AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; - AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; - AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; - - #endif +//// AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; +//// AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; +//// AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; +// +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.Right.mesh; +// AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.Right.mesh; +// AnySurfEllipsoid &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.Right.mesh; +//// AnySurfEllipsoid &meshpelvis = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_Pelvic1.BaseSegAnterior.mesh; +// +// #else +// AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; +// AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; +// AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; +// +// #endif + AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh3; + AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh3; +// AnySurfEllipsoid &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh3; SPLine.StringMesh=60; @@ -3927,39 +4025,45 @@ AnyMuscleShortestPath OIC_10 = { SPLine ={ - #if MESH_TYPE == "ELLIPSOID" - AnyMatrix InitWrapPos = { +// #if MESH_TYPE == "ELLIPSOID" +// AnyMatrix InitWrapPos = { +// +// transf3D({.mesh3.Radius[0],0,0}, &.mesh3), +// transf3D({.mesh4.Radius[0],0,0}, &.mesh4), +// transf3D({.mesh5.Radius[0],0,0}, &.mesh5), +// +// }; +// #endif +// +// +// +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnyMatrix InitWrapPos = { +// transf3D({0,.mesh3.Radius[1],0}, &.mesh3), +// transf3D({0,.mesh4.Radius[1],0}, &.mesh4), +// transf3D({0,.mesh5.Radius[1],0}, &.mesh5), +// +// }; +// #endif +// +// +// +// #if MESH_TYPE == "QUAD" +// AnyMatrix InitWrapPos = { +// +// transf3D(.mesh3.Points[floor(.mesh3.MeshSize*0.75)+2*.mesh3.MeshSize*6]+{0.02,0,0}, &.mesh3), +// transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.7)+2*.mesh4.MeshSize*6]+{0.02,0,0}, &.mesh4), +// transf3D(.mesh5.Points[floor(.mesh5.MeshSize*0.65)+2*.mesh5.MeshSize*6]+{0.02,0,0}, &.mesh5) +// }; +// #endif + AnyMatrix InitWrapPos = { transf3D({.mesh3.Radius[0],0,0}, &.mesh3), transf3D({.mesh4.Radius[0],0,0}, &.mesh4), - transf3D({.mesh5.Radius[0],0,0}, &.mesh5), +// transf3D({.mesh5.Radius[0],0,0}, &.mesh5), }; - #endif - - - - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnyMatrix InitWrapPos = { - transf3D({0,.mesh3.Radius[1],0}, &.mesh3), - transf3D({0,.mesh4.Radius[1],0}, &.mesh4), - transf3D({0,.mesh5.Radius[1],0}, &.mesh5), - - }; - #endif - - - - #if MESH_TYPE == "QUAD" - AnyMatrix InitWrapPos = { - - transf3D(.mesh3.Points[floor(.mesh3.MeshSize*0.75)+2*.mesh3.MeshSize*6]+{0.02,0,0}, &.mesh3), - transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.7)+2*.mesh4.MeshSize*6]+{0.02,0,0}, &.mesh4), - transf3D(.mesh5.Points[floor(.mesh5.MeshSize*0.65)+2*.mesh5.MeshSize*6]+{0.02,0,0}, &.mesh5) - }; - #endif - - + InitWrapPosVecArr = {&InitWrapPos}; }; @@ -3981,15 +4085,18 @@ AnyMuscleShortestPath OIC_11 = { // AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; // AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.Right.mesh; - AnySurfEllipsoid &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.Right.mesh; - - #else - AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; - AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; - - #endif +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.Right.mesh; +// AnySurfEllipsoid &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.Right.mesh; +//// AnySurfEllipsoid &meshpelvis = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_Pelvic1.BaseSegAnterior.mesh; +// +// #else +// AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; +// AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; +// +// #endif + AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh3; + AnySurfEllipsoid &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh3; @@ -3998,32 +4105,37 @@ AnyMuscleShortestPath OIC_11 = { SPLine ={ - #if MESH_TYPE == "ELLIPSOID" - AnyMatrix InitWrapPos = { +// #if MESH_TYPE == "ELLIPSOID" +// AnyMatrix InitWrapPos = { +// +// transf3D({.mesh4.Radius[0],0,0}, &.mesh4), +// transf3D({.mesh5.Radius[0],0,0}, &.mesh5), +// +// }; +// #endif +// +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnyMatrix InitWrapPos = { +// transf3D({0,.mesh4.Radius[1],0}, &.mesh4), +// transf3D({0,.mesh5.Radius[1],0}, &.mesh5), +// }; +// #endif +// +// #if MESH_TYPE == "QUAD" +// AnyMatrix InitWrapPos = { +// +// transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.75)+2*.mesh4.MeshSize*6]+{0.02,0,0}, &.mesh4), +// transf3D(.mesh5.Points[floor(.mesh5.MeshSize*0.65)+2*.mesh5.MeshSize*6]+{0.02,0,0}, &.mesh5) +// }; +// +// #endif + AnyMatrix InitWrapPos = { transf3D({.mesh4.Radius[0],0,0}, &.mesh4), transf3D({.mesh5.Radius[0],0,0}, &.mesh5), }; - #endif - - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnyMatrix InitWrapPos = { - transf3D({0,.mesh4.Radius[1],0}, &.mesh4), - transf3D({0,.mesh5.Radius[1],0}, &.mesh5), - }; - #endif - - #if MESH_TYPE == "QUAD" - AnyMatrix InitWrapPos = { - - transf3D(.mesh4.Points[floor(.mesh4.MeshSize*0.75)+2*.mesh4.MeshSize*6]+{0.02,0,0}, &.mesh4), - transf3D(.mesh5.Points[floor(.mesh5.MeshSize*0.65)+2*.mesh5.MeshSize*6]+{0.02,0,0}, &.mesh5) - }; - - #endif - - + InitWrapPosVecArr = {&InitWrapPos}; }; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; @@ -4039,13 +4151,14 @@ AnyMuscleShortestPath OIC_12 = { // AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnySurfEllipsoid &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.Right.mesh; - - #else - AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; - - #endif +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnySurfEllipsoid &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.Right.mesh; +//// AnySurfEllipsoid &meshpelvis = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_Pelvic1.BaseSegAnterior.mesh; +// #else +// AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; +// +// #endif + AnySurfEllipsoid &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh3; SPLine.StringMesh=60; @@ -4053,27 +4166,28 @@ AnyMuscleShortestPath OIC_12 = { SPLine ={ - #if MESH_TYPE == "ELLIPSOID" - AnyMatrix InitWrapPos = { +// #if MESH_TYPE == "ELLIPSOID" +// AnyMatrix InitWrapPos = { +// transf3D({.mesh5.Radius[0],0,0}, &.mesh5), +// }; +// #endif +// #if MESH_TYPE == "ELLIPSOID_SIDE" +// AnyMatrix InitWrapPos = { +// transf3D({0,.mesh5.Radius[1],0}, &.mesh5), +// }; +// #endif +// +// #if MESH_TYPE == "QUAD" +// AnyMatrix InitWrapPos = { +// +// transf3D(.mesh5.Points[floor(.mesh5.MeshSize*0.65)+2*.mesh5.MeshSize*6]+{0.02,0,0}, &.mesh5) +// }; +// +// #endif + AnyMatrix InitWrapPos = { transf3D({.mesh5.Radius[0],0,0}, &.mesh5), }; - #endif - #if MESH_TYPE == "ELLIPSOID_SIDE" - AnyMatrix InitWrapPos = { - transf3D({0,.mesh5.Radius[1],0}, &.mesh5), - }; - #endif - - #if MESH_TYPE == "QUAD" - AnyMatrix InitWrapPos = { - - transf3D(.mesh5.Points[floor(.mesh5.MeshSize*0.65)+2*.mesh5.MeshSize*6]+{0.02,0,0}, &.mesh5) - }; - - #endif - - InitWrapPosVecArr = {&InitWrapPos}; }; diff --git a/Body/AAUHuman/Trunk/TrunkData1.1/PointOnLineCal.any b/Body/AAUHuman/Trunk/TrunkData1.1/PointOnLineCal.any index f43386cb7..566f724e7 100644 --- a/Body/AAUHuman/Trunk/TrunkData1.1/PointOnLineCal.any +++ b/Body/AAUHuman/Trunk/TrunkData1.1/PointOnLineCal.any @@ -28,7 +28,7 @@ AnyFolder Cal ={ AnyFloat Angles = farr(-pi/2,pi/7,8); AnyFloat CalculatedPoints = {RadiusOneEllipsoid[0]*sin(Angles)+Center[0],._y*ones(1,8)[0],RadiusOneEllipsoid[2]*cos(Angles)+Center[2]}' ; - + // AnyFixedRefFrame Visual_Debug ={ // // From 6accd5a64cb8a7f79a882f3a6bcd9304a1c77f43 Mon Sep 17 00:00:00 2001 From: hs Date: Thu, 25 Apr 2024 09:56:37 +0200 Subject: [PATCH 03/31] clean up --- .../Abdominal/AbdominalPressureModel.any | 10 ---- Body/AAUHuman/Trunk/CreateMeshForWrapping.any | 53 +------------------ 2 files changed, 1 insertion(+), 62 deletions(-) diff --git a/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any b/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any index 7022c5901..88df9abbc 100644 --- a/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any +++ b/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any @@ -802,16 +802,6 @@ Reaction.Type ??={Off,Off,Off,Off,Off}; }; }; - AnySurfSphere mesh = - { - //viewRefFrame.Visible = Off; - //viewNodes.Visible = Off; - sRel = {0.0, 0.03, 0.0}; - //ARel = {{1.0, 0.0, 0.0}, {0.0, 1.0, 0.0}, {0.0, 0.0, 1.0}}; - viewSurface.Visible = On; - Radius = 0.09; - }; - }; AnySeg &CavitySegAnterior = BaseSegAnterior; }; diff --git a/Body/AAUHuman/Trunk/CreateMeshForWrapping.any b/Body/AAUHuman/Trunk/CreateMeshForWrapping.any index 750759f00..463c710bc 100644 --- a/Body/AAUHuman/Trunk/CreateMeshForWrapping.any +++ b/Body/AAUHuman/Trunk/CreateMeshForWrapping.any @@ -253,57 +253,6 @@ AnyRefNode Right ={ // }; }; - AnySurfEllipsoid mesh2 = { - sRel = .ECenterSideEllipsoid.sRel+ {-0.05,0,0.02}; - ARel = .mesh.ARel * RotMat (-pi/4, z); - - // AnyDrawRefFrame drw ={}; - AnyFloat R1 = 0.5*vnorm(.EP1.sRel-.EP3.sRel); - AnyFloat R3 = vnorm(.ECalculatedPoint0.sRel-.ECenterSideEllipsoid.sRel); - - Radius ={R1,R3,(R1+R3)/4}; - // viewSurface ={ - // RGB={0,1,0}; - // Visible =On; - // }; - }; - -// AnyFloat FrontNodes_sRels = { -// Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn12.sRel, -// Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn11.sRel, -// Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn10.sRel, -// Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn09.sRel, -// Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn08.sRel, -// Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn07.sRel, -// Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn06.sRel, -// Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn05.sRel, -// -// Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn12.sRel, -// Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn11.sRel, -// Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn10.sRel, -// Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn09.sRel, -// Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn08.sRel, -// Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn07.sRel, -// Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn06.sRel, -// Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn05.sRel, -// } ; - -// AnySurfEllipsoidFit mesh3_posterior = -//{ -// viewRefFrame.Visible = Off; -// viewNodes.Visible = Off; -// viewSurface.Visible = On; -// //FixedAxes = Off; -// AxisSymmetry = On; -// //Spherical = Off; -// Axis = y; -// AnyFloat AllPoints = arrcat( -// ) ; -// AnyFloat Center = mean(AllPoints'); -// AnyFloat ExtraPoints =reshape(arrcat(Center+{0,0.03,0},Center+{0,-0.03,0}),{2,3}); -// Points=arrcat(AllPoints,ExtraPoints); -//}; - }; @@ -344,7 +293,7 @@ AnyRefNode Left ={ AnySurfTriCylMesh mesh = { - viewSurface ={es + viewSurface ={ Visible =On; AnyStyleDrawMaterial1 mat ={ EnableWireframe =On; From 0cf2470e1e34ec1f0449e82f10946f106d0a0618 Mon Sep 17 00:00:00 2001 From: hs Date: Thu, 25 Apr 2024 09:56:37 +0200 Subject: [PATCH 04/31] AbdomenPassiveReactions to AMMR --- Body/AAUHuman/Trunk/AbdomenPassiveReactions.any | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/Body/AAUHuman/Trunk/AbdomenPassiveReactions.any b/Body/AAUHuman/Trunk/AbdomenPassiveReactions.any index 43c7966e5..b1b81352c 100644 --- a/Body/AAUHuman/Trunk/AbdomenPassiveReactions.any +++ b/Body/AAUHuman/Trunk/AbdomenPassiveReactions.any @@ -1,4 +1,4 @@ -AnyReacForce RotationalLayerReactions = { +AnyReacForce LayerReactions = { AnyJoint &Layer1_SphericalRotational = .Abdominal.Layer_L1.Joints.Vertebrate_Layer; AnyJoint &Layer2_SphericalRotational = .Abdominal.Layer_L2.Joints.Vertebrate_Layer; AnyJoint &Layer3_SphericalRotational = .Abdominal.Layer_L3.Joints.Vertebrate_Layer; @@ -11,14 +11,15 @@ AnyReacForce RotationalLayerReactions = { AnyJoint &Layer4_YCavitySeg_Driver = .Abdominal.Layer_L4.Joints.BaseSegPosterior_CavitySegPosterior; AnyJoint &Layer5_YCavitySeg_Driver = .Abdominal.Layer_L5.Joints.BaseSegPosterior_CavitySegPosterior; - AnyKinMeasure &Layer1_X_Driver = .Abdominal.Layer_Constraints_RectusLine.LayerDrivers.ref1; - AnyKinMeasure &Layer2_X_Driver = .Abdominal.Layer_Constraints_RectusLine.LayerDrivers.ref2; - AnyKinMeasure &Layer3_X_Driver = .Abdominal.Layer_Constraints_RectusLine.LayerDrivers.ref3; - AnyKinMeasure &Layer4_X_Driver = .Abdominal.Layer_Constraints_RectusLine.LayerDrivers.ref4; - AnyKinMeasure &Layer5_X_Driver = .Abdominal.Layer_Constraints_RectusLine.LayerDrivers.ref5; + AnyKinMeasure &Layer1_X_Driver = .Abdominal.Layer_L1.Joints.BaseSeg_Posterior_Anterior_constraint; + AnyKinMeasure &Layer2_X_Driver = .Abdominal.Layer_L2.Joints.BaseSeg_Posterior_Anterior_constraint; + AnyKinMeasure &Layer3_X_Driver = .Abdominal.Layer_L3.Joints.BaseSeg_Posterior_Anterior_constraint; + AnyKinMeasure &Layer4_X_Driver = .Abdominal.Layer_L4.Joints.BaseSeg_Posterior_Anterior_constraint; + AnyKinMeasure &Layer5_X_Driver = .Abdominal.Layer_L5.Joints.BaseSeg_Posterior_Anterior_constraint; + AnyKinMeasureOrg DiaphraghmSupport = { AnyKinMeasure &ref = ..Abdominal.Diaphragm.Joints.CavitySegConstraint.measure; MeasureOrganizer = {1}; }; -}; \ No newline at end of file +}; From 69e7b89a9f375c44d735f6ee24e368ece953de15 Mon Sep 17 00:00:00 2001 From: hs Date: Thu, 25 Apr 2024 09:56:37 +0200 Subject: [PATCH 05/31] remove some layers ellipsoid from obliq wrappings to avoid more penetration --- Body/AAUHuman/Trunk/MusclesLeft.any | 19 ++++++++++--------- Body/AAUHuman/Trunk/MusclesRight.any | 19 ++++++++++--------- 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/Body/AAUHuman/Trunk/MusclesLeft.any b/Body/AAUHuman/Trunk/MusclesLeft.any index 116a20faf..e54fd7e20 100644 --- a/Body/AAUHuman/Trunk/MusclesLeft.any +++ b/Body/AAUHuman/Trunk/MusclesLeft.any @@ -3112,7 +3112,7 @@ AnyMuscleShortestPath OEC_7 = { // AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; // #endif - AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh3; +// AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh3; AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh3; AnySurfEllipsoid &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh3; @@ -3145,7 +3145,7 @@ AnyMuscleShortestPath OEC_7 = { // #endif AnyMatrix InitWrapPos = { - transf3D({.mesh3.Radius[0],0,0}, &.mesh3), +// transf3D({.mesh3.Radius[0],0,0}, &.mesh3), transf3D({.mesh4.Radius[0],0,0}, &.mesh4), transf3D({.mesh5.Radius[0],0,0}, &.mesh5), }; @@ -3672,7 +3672,7 @@ AnyMuscleShortestPath OIC_7 = { // AnySurfTriCylMesh &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh; // AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; // #endif - AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh3; +// AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh3; AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh3; AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh3; @@ -3707,7 +3707,7 @@ AnyMuscleShortestPath OIC_7 = { // }; // #endif AnyMatrix InitWrapPos = { - transf3D({.mesh2.Radius[0],0,0}, &.mesh2), +// transf3D({.mesh2.Radius[0],0,0}, &.mesh2), transf3D({.mesh3.Radius[0],0,0}, &.mesh3), transf3D({.mesh4.Radius[0],0,0}, &.mesh4), // transf3D({.mesh5.Radius[0],0,0}, &.mesh5), @@ -3742,7 +3742,7 @@ AnyMuscleShortestPath OIC_8 = { // AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; // #endif - AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh3; +// AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh3; AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh3; AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh3; @@ -3750,7 +3750,8 @@ AnyMuscleShortestPath OIC_8 = { SPLine.StringMesh=60; SPLine ={ - StringSurfaceMap={{Off,Off,Off},{On,On,On}}; //no wrap before after via +// StringSurfaceMap={{Off,Off,Off},{On,On,On}}; //no wrap before after via + StringSurfaceMap={{Off,Off},{On,On}}; //no wrap before after via // #if MESH_TYPE == "ELLIPSOID" // AnyMatrix InitWrapPos = { @@ -3778,7 +3779,7 @@ AnyMuscleShortestPath OIC_8 = { // // #endif AnyMatrix InitWrapPos = { - transf3D({.mesh2.Radius[0],0,0}, &.mesh2), +// transf3D({.mesh2.Radius[0],0,0}, &.mesh2), transf3D({.mesh3.Radius[0],0,0}, &.mesh3), transf3D({.mesh4.Radius[0],0,0}, &.mesh4), // transf3D({.mesh5.Radius[0],0,0}, &.mesh5), @@ -3810,7 +3811,7 @@ AnyMuscleShortestPath OIC_8_extra = { // #endif // AnySurfEllipsoid &mesh1 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L1.BaseSegAnterior.mesh3; - AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh3; +// AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh3; AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh3; AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh3; @@ -3854,7 +3855,7 @@ SPLine ={ AnyMatrix InitWrapPos = { // transf3D({.mesh1.Radius[0],0,0}, &.mesh1), - transf3D({.mesh2.Radius[0],0,0}, &.mesh2), +// transf3D({.mesh2.Radius[0],0,0}, &.mesh2), transf3D({.mesh3.Radius[0],0,0}, &.mesh3), transf3D({.mesh4.Radius[0],0,0}, &.mesh4), }; diff --git a/Body/AAUHuman/Trunk/MusclesRight.any b/Body/AAUHuman/Trunk/MusclesRight.any index 6beb62a08..95a265ca2 100644 --- a/Body/AAUHuman/Trunk/MusclesRight.any +++ b/Body/AAUHuman/Trunk/MusclesRight.any @@ -3141,7 +3141,7 @@ AnyMuscleShortestPath OEC_7 = { // AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; // #endif - AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh3; +// AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh3; AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh3; AnySurfEllipsoid &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh3; @@ -3174,7 +3174,7 @@ AnyMuscleShortestPath OEC_7 = { // #endif AnyMatrix InitWrapPos = { - transf3D({.mesh3.Radius[0],0,0}, &.mesh3), +// transf3D({.mesh3.Radius[0],0,0}, &.mesh3), transf3D({.mesh4.Radius[0],0,0}, &.mesh4), transf3D({.mesh5.Radius[0],0,0}, &.mesh5), }; @@ -3696,7 +3696,7 @@ AnyMuscleShortestPath OIC_7 = { // AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; // #endif - AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh3; +// AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh3; AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh3; AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh3; @@ -3731,7 +3731,7 @@ AnyMuscleShortestPath OIC_7 = { // }; // #endif AnyMatrix InitWrapPos = { - transf3D({.mesh2.Radius[0],0,0}, &.mesh2), +// transf3D({.mesh2.Radius[0],0,0}, &.mesh2), transf3D({.mesh3.Radius[0],0,0}, &.mesh3), transf3D({.mesh4.Radius[0],0,0}, &.mesh4), // transf3D({.mesh5.Radius[0],0,0}, &.mesh5), @@ -3767,7 +3767,7 @@ AnyMuscleShortestPath OIC_8 = { // AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; // #endif //#else - AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh3; +// AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh3; AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh3; AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh3; //#endif @@ -3778,7 +3778,8 @@ AnyMuscleShortestPath OIC_8 = { SPLine ={ // StringSurfaceMap={{Off,Off,Off,Off},{On,On,On,On}}; //no wrap before after via - StringSurfaceMap={{Off,Off,Off},{On,On,On}}; //no wrap before after via +// StringSurfaceMap={{Off,Off,Off},{On,On,On}}; //no wrap before after via + StringSurfaceMap={{Off,Off},{On,On}}; //no wrap before after via // #if MESH_TYPE == "ELLIPSOID" // AnyMatrix InitWrapPos = { @@ -3806,7 +3807,7 @@ AnyMuscleShortestPath OIC_8 = { // }; // #endif AnyMatrix InitWrapPos = { - transf3D({.mesh2.Radius[0],0,0}, &.mesh2), +// transf3D({.mesh2.Radius[0],0,0}, &.mesh2), transf3D({.mesh3.Radius[0],0,0}, &.mesh3), transf3D({.mesh4.Radius[0],0,0}, &.mesh4), // transf3D({.mesh5.Radius[0],0,0}, &.mesh5), @@ -3854,7 +3855,7 @@ AnyMuscleShortestPath OIC_8_extra = { // AnySurfTriCylMesh &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh; // #endif // AnySurfEllipsoid &mesh1 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L1.BaseSegAnterior.mesh3; - AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh3; +// AnySurfEllipsoid &mesh2 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L2.BaseSegAnterior.mesh3; AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh3; AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh3; @@ -3899,7 +3900,7 @@ SPLine ={ // #endif AnyMatrix InitWrapPos = { // transf3D({.mesh1.Radius[0],0,0}, &.mesh1), - transf3D({.mesh2.Radius[0],0,0}, &.mesh2), +// transf3D({.mesh2.Radius[0],0,0}, &.mesh2), transf3D({.mesh3.Radius[0],0,0}, &.mesh3), transf3D({.mesh4.Radius[0],0,0}, &.mesh4), }; From b56e2253cbdced9c304745e2eabb6c5a714b59df Mon Sep 17 00:00:00 2001 From: hs Date: Thu, 25 Apr 2024 09:56:38 +0200 Subject: [PATCH 06/31] Extra weak actuators between abdominal layers --- .../Abdominal/AbdominalPressureModel.any | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any b/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any index 88df9abbc..e6f974991 100644 --- a/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any +++ b/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any @@ -1035,6 +1035,40 @@ Reaction.Type ??={Off,Off,Off,Off,Off}; SET_DEFAULT_ACTUATOR_VOLUME; }; + + AnyRecruitedActuator LayerMomentReactionsNonNegative_Extra = { + AnyKinMeasureOrg Measures = { + AnyKinRotational ThoraxL1 = { + AnyRefFrame& r0 = .....Segments.SternalBodySeg; + AnyRefFrame& r1 = ....Layer_L1.BaseSegAnterior; + Axis1 = x; Axis2 = y; Axis3 = z; + Type = RotAxesAngles; + }; + + AnyKinRotational L5Pelvis = { + AnyRefFrame& r0 = ....Layer_L5.BaseSegAnterior; + AnyRefFrame& r1 = ....Layer_Pelvic1.BaseSegAnterior; + Axis1 = x; Axis2 = y; Axis3 = z; + Type = RotAxesAngles; + }; + + MeasureOrganizer = {0,2,3,5}; // to pelvis and thorax + // MeasureOrganizer = {0,2}; // to thorax + // MeasureOrganizer = {3}; // to pelvis + + }; + Type = NonNegative; + Strength = 0.025; + SET_DEFAULT_ACTUATOR_VOLUME; + }; + + AnyRecruitedActuator LayerMomentReactionsNonPositive_Extra = { + AnyKinMeasureOrg &Measures = .LayerMomentReactionsNonNegative_Extra.Measures; + Type = NonPositive; + Strength = .LayerMomentReactionsNonNegative_Extra.Strength; + SET_DEFAULT_ACTUATOR_VOLUME; + }; + #endif }; // Constraints From 02d427987b436469313ca6d77bec7e991b8d2de6 Mon Sep 17 00:00:00 2001 From: hs Date: Wed, 29 May 2024 15:46:12 +0200 Subject: [PATCH 07/31] Obliq muscle string mesh increase --- Body/AAUHuman/Trunk/MusclesLeft.any | 8 ++++---- Body/AAUHuman/Trunk/MusclesRight.any | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Body/AAUHuman/Trunk/MusclesLeft.any b/Body/AAUHuman/Trunk/MusclesLeft.any index e54fd7e20..b163c3928 100644 --- a/Body/AAUHuman/Trunk/MusclesLeft.any +++ b/Body/AAUHuman/Trunk/MusclesLeft.any @@ -2703,7 +2703,7 @@ AnyMuscleShortestPath OEC_6 = { // AnyParamSurf &srf1 =....Abdominal.ObliquusWrapping.WrappingSeg.Layer4WrappingPoints.Left.nn09.Translate.VerticalCyl; AnyParamSurf &srf2 =....Abdominal.ObliquusWrapping.WrappingSeg.Layer4WrappingPoints.Left.nn10.Translate.OutwardCyl; - SPLine.StringMesh=60; + SPLine.StringMesh=240; SPLine ={ AnyMatrix InitWrapPos = { @@ -2726,7 +2726,7 @@ AnyMuscleShortestPath OEC_7 = { // AnyParamSurf &srf1 =....Abdominal.ObliquusWrapping.WrappingSeg.Layer4WrappingPoints.Left.nn08.Translate.VerticalCyl; AnyParamSurf &srf2 =....Abdominal.ObliquusWrapping.WrappingSeg.Layer4WrappingPoints.Left.nn09.Translate.OutwardCyl; - SPLine.StringMesh=60; + SPLine.StringMesh=240; SPLine ={ AnyMatrix InitWrapPos = { @@ -3389,7 +3389,7 @@ AnyMuscleShortestPath OIC_8 = { AnyParamSurf &srf2 =....Abdominal.ObliquusWrapping.WrappingSeg.Layer2WrappingPoints.Left.nn10.Translate.InwardCyl; AnyParamSurf &srf3 =....Abdominal.ObliquusWrapping.WrappingSeg.Layer3WrappingPoints.Left.nn08.Translate.InwardCyl; - SPLine.StringMesh=60; + SPLine.StringMesh=240; SPLine ={ AnyMatrix InitWrapPos = { @@ -3417,7 +3417,7 @@ AnyMuscleShortestPath OIC_8_extra = { AnyParamSurf &srf2 =....Abdominal.ObliquusWrapping.WrappingSeg.Layer2WrappingPoints.Left.nn10.Translate.InwardCyl; AnyParamSurf &srf3 =....Abdominal.ObliquusWrapping.WrappingSeg.Layer3WrappingPoints.Left.nn08.Translate.InwardCyl; - SPLine.StringMesh=60; + SPLine.StringMesh=240; SPLine ={ AnyMatrix InitWrapPos = { diff --git a/Body/AAUHuman/Trunk/MusclesRight.any b/Body/AAUHuman/Trunk/MusclesRight.any index 95a265ca2..f127b316b 100644 --- a/Body/AAUHuman/Trunk/MusclesRight.any +++ b/Body/AAUHuman/Trunk/MusclesRight.any @@ -2730,7 +2730,7 @@ AnyMuscleShortestPath OEC_6 = { // AnyParamSurf &srf1 =....Abdominal.ObliquusWrapping.WrappingSeg.Layer4WrappingPoints.Right.nn09.Translate.VerticalCyl; AnyParamSurf &srf2 =....Abdominal.ObliquusWrapping.WrappingSeg.Layer4WrappingPoints.Right.nn10.Translate.OutwardCyl; - SPLine.StringMesh=60; + SPLine.StringMesh=240; SPLine ={ AnyMatrix InitWrapPos = { @@ -2753,7 +2753,7 @@ AnyMuscleShortestPath OEC_7 = { // AnyParamSurf &srf1 =....Abdominal.ObliquusWrapping.WrappingSeg.Layer4WrappingPoints.Right.nn08.Translate.VerticalCyl; AnyParamSurf &srf2 =....Abdominal.ObliquusWrapping.WrappingSeg.Layer4WrappingPoints.Right.nn09.Translate.OutwardCyl; - SPLine.StringMesh=60; + SPLine.StringMesh=240; SPLine ={ AnyMatrix InitWrapPos = { @@ -3411,7 +3411,7 @@ AnyMuscleShortestPath OIC_8 = { AnyParamSurf &srf2 =....Abdominal.ObliquusWrapping.WrappingSeg.Layer2WrappingPoints.Right.nn10.Translate.InwardCyl; AnyParamSurf &srf3 =....Abdominal.ObliquusWrapping.WrappingSeg.Layer3WrappingPoints.Right.nn08.Translate.InwardCyl; - SPLine.StringMesh=60; + SPLine.StringMesh=240; SPLine ={ AnyMatrix InitWrapPos = { @@ -3439,7 +3439,7 @@ AnyMuscleShortestPath OIC_8_extra = { AnyParamSurf &srf2 =....Abdominal.ObliquusWrapping.WrappingSeg.Layer2WrappingPoints.Right.nn10.Translate.InwardCyl; AnyParamSurf &srf3 =....Abdominal.ObliquusWrapping.WrappingSeg.Layer3WrappingPoints.Right.nn08.Translate.InwardCyl; - SPLine.StringMesh=60; + SPLine.StringMesh=240; SPLine ={ AnyMatrix InitWrapPos = { From ab529260ca326911cddc926acc36092ed4b4b34c Mon Sep 17 00:00:00 2001 From: hs Date: Wed, 29 May 2024 15:48:34 +0200 Subject: [PATCH 08/31] New abdomen with new inter-levels between Layer1 to ribcage and Layer5 to pelvis --- .../Abdominal/AbdominalPressureModel.any | 212 ++++++++++++++--- .../Trunk/Abdominal/Layer_Sternum.any | 72 ++++++ .../Trunk/Abdominal/NEW_SEG_L5PELVIC.any | 222 ++++++++++++++++++ Body/AAUHuman/Trunk/PelvisSeg.any | 4 + 4 files changed, 480 insertions(+), 30 deletions(-) create mode 100644 Body/AAUHuman/Trunk/Abdominal/Layer_Sternum.any create mode 100644 Body/AAUHuman/Trunk/Abdominal/NEW_SEG_L5PELVIC.any diff --git a/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any b/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any index e6f974991..182ff80b0 100644 --- a/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any +++ b/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any @@ -1,8 +1,16 @@ #define PELVIC_LAYER_MOVES -#define RECTUS_MUSCLE_LINE_CONTROL +#define RECTUS_MUSCLE_LINE_CONTROL // Comment for agada -/// The abdominal model consists of a series of layers with individual volumes and pressure muscles +#define RECTUS_MUSCLE_LINE_CONTROL_L1 + #define RECTUS_MUSCLE_LINE_CONTROL_L2 + #define RECTUS_MUSCLE_LINE_CONTROL_L3 + #define RECTUS_MUSCLE_LINE_CONTROL_L4 + #define RECTUS_MUSCLE_LINE_CONTROL_L5 + #define RECTUS_MUSCLE_LINE_CONTROL_RIBCAGE +#define NEW_SEG_LINE_CONTROL_L5PELVIC + + /// The abdominal model consists of a series of layers with individual volumes and pressure muscles AnyFolder Abdominal={ @@ -254,6 +262,45 @@ AnyFolder Abdominal={ }; }; + #ifdef RECTUS_MUSCLE_LINE_CONTROL_RIBCAGE + AnySeg CavitySegAnterior = { + r0 = .CavitySeg.r0; + Axes0 = .CavitySeg.Axes0; + Mass = 1e-5; + Jii = {0,0,0}; + AnyFolder &Data = ...Data.unscaled.ModelParameters.Abdominal; + AnyFunTransform3D &Scale = ...Scaling.GeometricalScaling.Lumbar.ScaleFunction; + + AnyRefNode LayerConstraintNodes = { + AnyFolder LayerPoints = { + PointGenerator points_right(fun=SplineFun, scale_fun=...Scale)={ + start=.....Parameters.LayerMeasureSplineStart; + amount = .....Parameters.LayerMeasureAmount; + AnyFunInterpol &SplineFun = .....Layer_L1.Data.AbdominalCavityPoints.Right.Parametric.Fun; + }; + PointGenerator points_left(fun=SplineFun, scale_fun=...Scale)={ + start=.....Parameters.LayerMeasureSplineStart; + amount = .....Parameters.LayerMeasureAmount; + AnyFunInterpol &SplineFun = .....Layer_L1.Data.AbdominalCavityPoints.Left.Parametric.Fun; + }; + }; + + AnyRefNodeGroup Nodes_Below_Layer ={ + NodeAmount = ....Layer_L1.BaseSegAnterior.LayerConstraintNodes.Nodes_Above_Layer.NodeAmount; // number nodes in group + NodeName = strval(iarr(1, NodeAmount), "_node%04i"); + Node_sRels =....Layer_L1.BaseSegAnterior.LayerConstraintNodes.Nodes_Above_Layer.Node_sRels; + NodeDefaults.CreateMotionOutput.r = On; + }; + AnyRefNodeGroup Nodes_Above_Layer ={ + NodeAmount = ....Layer_L1.BaseSegAnterior.LayerConstraintNodes.Nodes_Above_Layer.NodeAmount; // number nodes in group + NodeName = strval(iarr(1, NodeAmount), "_node%04i"); + Node_sRels =....Layer_L1.BaseSegAnterior.LayerConstraintNodes.Nodes_Above_Layer.Node_sRels; + NodeDefaults.CreateMotionOutput.r = On; + }; + + }; + }; + #endif AnySeg BaseSegInferior = { r0 = .CavitySeg.r0; @@ -495,7 +542,8 @@ AnyFolder Abdominal={ AnyRefNode &pos = ...CavitySegSuperoposterior.Layer_T10.Right.DomeNodeMid; }; }; - + + }; #if BM_TRUNK_DIAGPHRAM_FIXED_POSITION | (BM_TRUNK_THORACIC_MODEL == _THORACIC_MODEL_RIGID_) @@ -518,7 +566,11 @@ AnyFolder Abdominal={ AnyFolder &Data =...Trunk.Data.unscaled.ModelParameters.Abdominal.Layer_L1; AnyRefFrame &MomentProvider = .Layer_L2.BaseSegPosterior; BaseSegPosterior = {AnyFileVar OuterInertiaSTL = ...Data.unscaled.STL.FilenameLayer1Inertia;}; + #ifndef RECTUS_MUSCLE_LINE_CONTROL_RIBCAGE AnyFolder &layer_above = .Diaphragm.CavitySeg;//...Trunk.ThoracicCavity.Inertia.segment; //...Trunk.Segments.SternalBodySeg; //.Diaphragm.BaseSegAnterior; + #else + AnyFolder &layer_above = .Diaphragm.CavitySegAnterior;//...Trunk.ThoracicCavity.Inertia.segment; //...Trunk.Segments.SternalBodySeg; //.Diaphragm.BaseSegAnterior; + #endif AnyFolder &layer_below = .Layer_L2.BaseSegAnterior; AnyFolder &layer_above_inertia = .Diaphragm.CavitySeg; AnyFolder &layer_below_inertia = .Layer_L2.CavitySegAnterior; @@ -530,7 +582,7 @@ AnyFolder Abdominal={ AnyVar K_bot =1; - #ifdef RECTUS_MUSCLE_LINE_CONTROL + #ifdef RECTUS_MUSCLE_LINE_CONTROL_L1 AnyIntArray MeasureOrganizer = {3,4,5}; #else AnyIntArray MeasureOrganizer = {0,3,4,5}; @@ -598,7 +650,7 @@ AnyFolder Abdominal={ AnyVar K_bot =1; - #ifdef RECTUS_MUSCLE_LINE_CONTROL + #ifdef RECTUS_MUSCLE_LINE_CONTROL_L2 AnyIntArray MeasureOrganizer = {3,4,5}; #else AnyIntArray MeasureOrganizer = {0,3,4,5}; @@ -623,7 +675,7 @@ AnyFolder Abdominal={ AnyVar K_top =1; AnyVar K_bot =1; - #ifdef RECTUS_MUSCLE_LINE_CONTROL + #ifdef RECTUS_MUSCLE_LINE_CONTROL_L3 AnyIntArray MeasureOrganizer = {3,4,5}; #else AnyIntArray MeasureOrganizer = {0,3,4,5}; @@ -648,7 +700,7 @@ AnyFolder Abdominal={ AnyVar K_bot =1; - #ifdef RECTUS_MUSCLE_LINE_CONTROL + #ifdef RECTUS_MUSCLE_LINE_CONTROL_L4 AnyIntArray MeasureOrganizer = {3,4,5}; #else AnyIntArray MeasureOrganizer = {0,3,4,5}; @@ -664,7 +716,12 @@ AnyFolder Abdominal={ AnyRefFrame &MomentProvider = .Layer_Pelvic4.LayerRef; BaseSegPosterior = {AnyFileVar OuterInertiaSTL = ...Data.unscaled.STL.FilenameLayer5Inertia;}; AnyFolder &layer_above = .Layer_L4.BaseSegAnterior; - AnyFolder &layer_below = .Layer_Pelvic1.BaseSegAnterior; + #ifndef NEW_SEG_LINE_CONTROL_L5PELVIC + AnyFolder &layer_below = .Layer_Pelvic1.BaseSegAnterior; + #else + AnyFolder &layer_below = .Pelvis_New.BaseSegAnterior; + #endif + AnyFolder &layer_above_inertia = .Layer_L4.CavitySegAnterior; AnyFolder &layer_below_inertia = .Layer_Pelvic1.CavitySegAnterior; #include "Layer.any" @@ -672,7 +729,7 @@ AnyFolder Abdominal={ AnyVar K_top =1; AnyVar K_bot =1; - #ifdef RECTUS_MUSCLE_LINE_CONTROL + #ifdef RECTUS_MUSCLE_LINE_CONTROL_L5 AnyIntArray MeasureOrganizer = {3,4,5}; #else AnyIntArray MeasureOrganizer = {0,3,4,5}; @@ -682,6 +739,8 @@ AnyFolder Abdominal={ }; #ifdef RECTUS_MUSCLE_LINE_CONTROL + + AnyFolder Layer_Constraints_RectusLine ={ AnySeg Dummy ={ @@ -750,22 +809,75 @@ AnyFolder Abdominal={ #include "PointToLineDist.any" }; + + AnyFolder Layer_pelvic_new ={ + AnyRefFrame &LayerNode = ..Pelvis_New.BaseSegAnterior.mid; + AnyKinMeasureOrg MeasureLayer = { + AnyKinMeasure &mes = ...Pelvis_New.BaseSegAnterior_Constraint.Measurs.lin; + MeasureOrganizer = {0}; + }; + + + #include "PointToLineDist.any" + }; AnyKinEqSimpleDriver LayerDrivers ={ +#ifdef RECTUS_MUSCLE_LINE_CONTROL_L1 AnyKinMeasure &ref1=.Layer1.Norm; +#endif +#ifdef RECTUS_MUSCLE_LINE_CONTROL_L2 AnyKinMeasure &ref2=.Layer2.Norm; +#endif +#ifdef RECTUS_MUSCLE_LINE_CONTROL_L3 AnyKinMeasure &ref3=.Layer3.Norm; +#endif +#ifdef RECTUS_MUSCLE_LINE_CONTROL_L4 AnyKinMeasure &ref4=.Layer4.Norm; +#endif +#ifdef RECTUS_MUSCLE_LINE_CONTROL_L5 AnyKinMeasure &ref5=.Layer5.Norm; -DriverPos ={0,0,0,0,0}; -DriverVel ={0,0,0,0,0}; -Reaction.Type ??={Off,Off,Off,Off,Off}; +#endif +#ifdef NEW_SEG_LINE_CONTROL_L5PELVIC +//AnyKinMeasure &ref6=.Layer_pelvic_new.Norm; +#endif + +//DriverPos =repmat(nDim,-0.04);//{0,0,0,0,0};//{1,1,1,1,1}*0.006;// +//DriverVel =repmat(nDim,0.08)/4*2*pi/40; +DriverPos =repmat(nDim,0); +DriverVel =repmat(nDim,0); +Reaction.Type ??=repmat(nDim,Off); }; +//#ifdef RECTUS_MUSCLE_LINE_CONTROL_RIBCAGE +//AnyKinEqSimpleDriver LayerDrivers_CavitySegAnteriorPrismaticDOF ={ +//AnyKinMeasure &ref6=..Diaphragm.Joints.CavitySegAnteriorPrismaticDOF; +//DriverPos =repmat(nDim,0); +//DriverVel =repmat(nDim,0.005)/4*2*pi/40 * 0; +//Reaction.Type ??=repmat(nDim,Off); +//}; +// +////AnyKinEq LayerDrivers_CavitySegAnteriorPrismaticDOF = { +//// AnyKinMeasureLinComb lincomb = { +//// AnyKinMeasure &ref1 = ..Layer1.MeasureLayer; +//// AnyKinMeasure &ref6=...Diaphragm.Joints.CavitySegAnteriorPrismaticDOF; +//// Coef = {{1, -1}}; +//// OutDim = 1; +//// }; +//// Reaction.Type ??=repmat(nDim,Off); +////}; +// +//#endif - }; +}; + +#ifdef RECTUS_MUSCLE_LINE_CONTROL_RIBCAGE +#include "Layer_Sternum.any" +#endif +#ifdef NEW_SEG_LINE_CONTROL_L5PELVIC +#include "NEW_SEG_L5PELVIC.any" +#endif #endif @@ -776,16 +888,48 @@ Reaction.Type ??={Off,Off,Off,Off,Off}; AnyVar K_bot =1; AnyFolder &Data = ...Trunk.Data.unscaled.ModelParameters.Abdominal.Layer_L5; - AnySeg &BaseSegPosterior = ...Trunk.Segments.PelvisSeg; + + +// AnySeg &BaseSegPosterior = ...Trunk.Segments.PelvisSeg; + AnySeg BaseSegPosterior={ + Mass = 1e-6; + Jii = {0,0,0}; + r0 = ..Layer_L5.BaseSegPosterior.r0; +// Axes0 = ..Layer_L5.BaseSegPosterior.Axes0; + AnyRefNode &AnatomicalFrameTrunk = ...Segments.PelvisSeg.AnatomicalFrameTrunk; + AnyFunTransform3D& Scale = ...Segments.PelvisSeg.ScaleAbdominal; + +AnyRefNode BaseSegPosterior_ConstraintNode = {sRel= ....Segments.PelvisSeg.r0-.r0;}; +}; + +Main.HumanModel.BodyModel.Trunk.Segments.PelvisSeg = { + AnyRefNode BaseSegPosterior_ConstraintNode = {sRel= {0,0,0};}; +}; + +AnyStdJoint BaseSegPosterior_Constraint = +{ + //viewKinMeasure.Visible = Off; + //viewJoint.Visible = Off; + AnyRefFrame &Pelvic = ...Segments.PelvisSeg.BaseSegPosterior_ConstraintNode; + AnyRefFrame &BaseSegPosterior = .BaseSegPosterior.BaseSegPosterior_ConstraintNode; +}; + + BaseSegPosterior = { AnyRefNode Layer1 = {ARel = .AnatomicalFrameTrunk.ARel;}; }; AnyRefNode &LayerRef = BaseSegPosterior.Layer1; - #ifdef PELVIC_LAYER_MOVES + #ifndef NEW_SEG_LINE_CONTROL_L5PELVIC AnyFolder &layer_above = .Layer_L5; + #else + AnyFolder &layer_above = .Pelvis_New; + #endif AnyFolder &layer_below = .Layer_Pelvic2; - #endif + #ifdef PELVIC_LAYER_MOVES #include "Pelvic_Layer.any" + #else + #include "Pelvic_Layer_Fixed.any" + #endif BaseSegAnterior = { @@ -810,32 +954,38 @@ Reaction.Type ??={Off,Off,Off,Off,Off}; AnyVar K_top =1; AnyVar K_bot =0.5; AnyFolder &Data =...Trunk.Data.unscaled.ModelParameters.Abdominal.Layer_Pelvic2; - AnySeg &BaseSegPosterior = ...Trunk.Segments.PelvisSeg; + // AnySeg &BaseSegPosterior = ...Trunk.Segments.PelvisSeg; + AnySeg &BaseSegPosterior = .Layer_Pelvic1.BaseSegPosterior; BaseSegPosterior ={ - AnyRefNode Layer2 = {ARel = .AnatomicalFrameTrunk.ARel;}; + AnyRefNode Layer2 = {ARel = .AnatomicalFrameTrunk.ARel;}; }; AnyRefNode &LayerRef = BaseSegPosterior.Layer2; - #ifdef PELVIC_LAYER_MOVES AnyFolder &layer_above = .Layer_Pelvic1; AnyFolder &layer_below = .Layer_Pelvic3; - #endif + #ifdef PELVIC_LAYER_MOVES #include "Pelvic_Layer.any" + #else + #include "Pelvic_Layer_Fixed.any" + #endif }; AnyFolder Layer_Pelvic3 = { AnyVar K_top =1; AnyVar K_bot =0.5; AnyFolder &Data =...Trunk.Data.unscaled.ModelParameters.Abdominal.Layer_Pelvic3; - AnySeg &BaseSegPosterior = ...Trunk.Segments.PelvisSeg; + // AnySeg &BaseSegPosterior = ...Trunk.Segments.PelvisSeg; + AnySeg &BaseSegPosterior = .Layer_Pelvic1.BaseSegPosterior; BaseSegPosterior ={ AnyRefNode Layer3 = {ARel = .AnatomicalFrameTrunk.ARel;}; }; AnyRefNode &LayerRef = BaseSegPosterior.Layer3; - #ifdef PELVIC_LAYER_MOVES AnyFolder &layer_above = .Layer_Pelvic2; AnyFolder &layer_below = .Layer_Pelvic4; - #endif + #ifdef PELVIC_LAYER_MOVES #include "Pelvic_Layer.any" + #else + #include "Pelvic_Layer_Fixed.any" + #endif }; AnyFolder Layer_Pelvic4 ={ @@ -843,15 +993,16 @@ Reaction.Type ??={Off,Off,Off,Off,Off}; AnyVar K_bot =0.5; AnyFolder &Data = ...Trunk.Data.unscaled.ModelParameters.Abdominal.Layer_Pelvic4; - AnySeg &BaseSegPosterior = ...Trunk.Segments.PelvisSeg; + // AnySeg &BaseSegPosterior = ...Trunk.Segments.PelvisSeg; + AnySeg &BaseSegPosterior = .Layer_Pelvic1.BaseSegPosterior; BaseSegPosterior ={ AnyRefNode Layer4 = {ARel = .AnatomicalFrameTrunk.ARel;}; }; AnyRefNode &LayerRef = BaseSegPosterior.Layer4; - #ifdef PELVIC_LAYER_MOVES +// #ifdef PELVIC_LAYER_MOVES AnyFolder &layer_above = .Layer_Pelvic3; AnyFolder &layer_below = .Layer_Pelvic5; - #endif +// #endif #include "Pelvic_Layer_Fixed.any" }; @@ -859,7 +1010,8 @@ Reaction.Type ??={Off,Off,Off,Off,Off}; AnyVar K_top =1; AnyVar K_bot =0.5; AnyFolder &Data =...Trunk.Data.unscaled.ModelParameters.Abdominal.Layer_Pelvic5; - AnySeg &BaseSegPosterior = ...Trunk.Segments.PelvisSeg; + AnySeg &BaseSegPosterior = ...Trunk.Segments.PelvisSeg; +// AnySeg &BaseSegPosterior = .Layer_Pelvic1.BaseSegPosterior; AnyFunTransform3D &Scale = BaseSegPosterior.Scale; BaseSegPosterior = { @@ -935,8 +1087,8 @@ Reaction.Type ??={Off,Off,Off,Off,Off}; }; - #ifdef RECTUS_MUSCLE_LINE_CONTROL - + #ifdef PELVIC_LAYER_MOVES + #ifdef RECTUS_MUSCLE_LINE_CONTROL AnyFolder Layer_Pelvic_Constraints_RectusLine ={ AnySeg &Dummy=.Layer_Constraints_RectusLine.Dummy; @@ -976,7 +1128,7 @@ Reaction.Type ??={Off,Off,Off,Off,Off}; - + #endif #endif diff --git a/Body/AAUHuman/Trunk/Abdominal/Layer_Sternum.any b/Body/AAUHuman/Trunk/Abdominal/Layer_Sternum.any new file mode 100644 index 000000000..6e21665d9 --- /dev/null +++ b/Body/AAUHuman/Trunk/Abdominal/Layer_Sternum.any @@ -0,0 +1,72 @@ +AnyFolder Layer_Sternum = { + // AnySeg &Segref = ...Trunk.Segments.T12Seg; + AnyFolder &Data =...Trunk.Data.unscaled.ModelParameters.Abdominal.Layer_L1; + // AnyRefFrame &MomentProvider = .Layer_L2.BaseSegPosterior; + // BaseSegPosterior = {AnyFileVar OuterInertiaSTL = ...Data.unscaled.STL.FilenameLayer1Inertia;}; + AnyFolder &layer_above = .Diaphragm.CavitySeg;//...Trunk.ThoracicCavity.Inertia.segment; //...Trunk.Segments.SternalBodySeg; //.Diaphragm.BaseSegAnterior; + AnyFolder &layer_below = .Layer_L1.BaseSegAnterior; + AnyFolder &layer_above_inertia = .Diaphragm.CavitySeg; + AnyFolder &layer_below_inertia = .Layer_L1.CavitySegAnterior; + AnySeg &BaseSegAnterior = Main.HumanModel.BodyModel.Trunk.Abdominal.Diaphragm.CavitySegAnterior; + + BaseSegAnterior = { + AnyRefNode Origin = {}; + }; + + // #include "Layer.any" + + AnyFolder LayerConstraints ={ + AnyVar K_top =1; + AnyVar K_bot =2; + + AnyIntArray MeasureOrganizer = {0}; + + #include "LayerConstraints.any" + }; +}; + + + +Main.HumanModel.BodyModel.Trunk.Abdominal.Diaphragm.Joints = { + +// // CavitySegAnterior Constraints + AnyKinEq CavitySegAnteriorConstraint = + { + AnyKinMeasureOrg CavitySegAnteriorDOFMeasurs = { + AnyKinLinear lin = { + Ref = 0; + AnyRefNode &ant = ....CavitySeg.LayerConstraintNodes.Nodes_Below_Layer._node0005; + AnyRefNode &pos = ....CavitySegAnterior.LayerConstraintNodes.Nodes_Below_Layer._node0005; + }; + AnyKinRotational rot = { + Type = RotAxesAngles; + AnyRefNode &ant = ....CavitySeg.LayerConstraintNodes.Nodes_Below_Layer._node0005; + AnyRefNode &pos = ....CavitySegAnterior.LayerConstraintNodes.Nodes_Below_Layer._node0005; + }; + MeasureOrganizer = {1,2,3,4,5}; + }; + Reaction.Type = repmat (nDim, Off); + }; + +// AnyKinMeasureOrg CavitySegAnteriorPrismaticDOF = { +// MeasureOrganizer = {0}; +// AnyKinLinear mes = { +// AnyRefNode &cav = ...CavitySeg.LayerConstraintNodes; +// AnyRefNode &cav_ant = ...CavitySegAnterior.LayerConstraintNodes; +// }; +// }; + + // Force connection for CavitySegAnterior + AnyReacForce CavitySegAnteriorKinetic = { + AnyKinLinear lin = { + Ref = 0; + AnyRefNode &ant = ...CavitySeg.LayerConstraintNodes; + AnyRefNode &pos = ...CavitySegAnterior.LayerConstraintNodes; + }; + AnyKinRotational rot = { + Type = RotAxesAngles; + AnyRefNode &ant = ...CavitySeg.LayerConstraintNodes; + AnyRefNode &pos = ...CavitySegAnterior.LayerConstraintNodes; + }; + }; + }; \ No newline at end of file diff --git a/Body/AAUHuman/Trunk/Abdominal/NEW_SEG_L5PELVIC.any b/Body/AAUHuman/Trunk/Abdominal/NEW_SEG_L5PELVIC.any new file mode 100644 index 000000000..6fc93a343 --- /dev/null +++ b/Body/AAUHuman/Trunk/Abdominal/NEW_SEG_L5PELVIC.any @@ -0,0 +1,222 @@ +AnyFolder Pelvis_New = { + // AnySeg &Segref = ...Trunk.Segments.T12Seg; + AnyFolder &Data =...Trunk.Data.unscaled.ModelParameters.Abdominal.Layer_L5; + // AnyRefFrame &MomentProvider = .Layer_L2.BaseSegPosterior; + // BaseSegPosterior = {AnyFileVar OuterInertiaSTL = ...Data.unscaled.STL.FilenameLayer1Inertia;}; + AnyFolder &layer_above = .Layer_L5.BaseSegAnterior;//...Trunk.ThoracicCavity.Inertia.segment; //...Trunk.Segments.SternalBodySeg; //.Diaphragm.BaseSegAnterior; + AnyFolder &layer_below = .Layer_Pelvic1.BaseSegAnterior; + AnyFolder &layer_above_inertia = .Layer_L5.BaseSegAnterior; + AnyFolder &layer_below_inertia = .Layer_Pelvic1.BaseSegAnterior; + + AnySeg BaseSegAnterior = { + r0 = ..Layer_L5.BaseSegAnterior.r0; + Axes0 = ..Layer_L5.BaseSegAnterior.Axes0; + Mass = 1e-5; + Jii = {0,0,0}; +// AnyFolder &Data = ...Data.unscaled.ModelParameters.Abdominal; + AnyFunTransform3D &Scale = ...Scaling.GeometricalScaling.Lumbar.ScaleFunction; + + AnyRefNode LayerConstraintNodes = { + AnyFolder LayerPoints = { + PointGenerator points_right(fun=SplineFun, scale_fun=...Scale)={ + start=.....Parameters.LayerMeasureSplineStart; + amount = .....Parameters.LayerMeasureAmount; + AnyFunInterpol &SplineFun = .....Layer_L5.Data.AbdominalCavityPoints.Right.Parametric.Fun; + }; + PointGenerator points_left(fun=SplineFun, scale_fun=...Scale)={ + start=.....Parameters.LayerMeasureSplineStart; + amount = .....Parameters.LayerMeasureAmount; + AnyFunInterpol &SplineFun = .....Layer_L5.Data.AbdominalCavityPoints.Left.Parametric.Fun; + }; +// PointGenerator points_right(fun=SplineFun, scale_fun=...ScaleAndProjectToLayer)={ +// amount = .....Data.unscaled.ModelParameters.Abdominal.DiscretizationAnterior; +// AnyFunInterpol &SplineFun = ...Data.AbdominalCavityPoints.Right.Parametric.Fun; +// }; +// PointGenerator points_left(fun=SplineFun, scale_fun=...ScaleAndProjectToLayer)={ +// amount = .....Data.unscaled.ModelParameters.Abdominal.DiscretizationAnterior; +// AnyFunInterpol &SplineFun = ...Data.AbdominalCavityPoints.Left.Parametric.Fun; +// }; + + }; + + AnyRefNodeGroup Nodes_Below_Layer ={ + NodeAmount = ....Layer_Pelvic1.BaseSegAnterior.LayerConstraintNodes.Nodes_Above_Layer.NodeAmount; // number nodes in group + NodeName = strval(iarr(1, NodeAmount), "_node%04i"); + Node_sRels =....Layer_Pelvic1.BaseSegAnterior.LayerConstraintNodes.Nodes_Above_Layer.Node_sRels; + NodeDefaults.CreateMotionOutput.r = On; + }; + AnyRefNodeGroup Nodes_Above_Layer ={ + NodeAmount = ....Layer_L5.BaseSegAnterior.LayerConstraintNodes.Nodes_Below_Layer.NodeAmount; // number nodes in group + NodeName = strval(iarr(1, NodeAmount), "_node%04i"); + Node_sRels =....Layer_L5.BaseSegAnterior.LayerConstraintNodes.Nodes_Below_Layer.Node_sRels; + NodeDefaults.CreateMotionOutput.r = On; + }; + + }; + }; + + + BaseSegAnterior = { + AnyRefNode Origin = {}; + AnyRefNode mid = { + AnyVec3 unscaled = 0.5 * (..Data.AbdominalCavityPoints.Right.Parametric.Fun(1.0) + ..Data.AbdominalCavityPoints.Left.Parametric.Fun(1.0)); + sRel = .Scale(unscaled); + }; + + }; + + // #include "Layer.any" + + AnyFolder LayerConstraints ={ + AnyVar K_top =1; + AnyVar K_bot =1; + + AnyIntArray MeasureOrganizer = {0}; + + #include "LayerConstraints.any" + }; +}; + + + +Pelvis_New = { + AnyKinEq BaseSegAnterior_Constraint = + { + AnyKinMeasureOrg Measurs = { + AnyKinLinear lin = { + Ref = 0; + AnyRefNode &ant = ....Layer_Pelvic1.BaseSegAnterior.LayerConstraintNodes.Nodes_Above_Layer._node0005; + AnyRefNode &pos = ...BaseSegAnterior.LayerConstraintNodes.Nodes_Below_Layer._node0005; + }; + AnyKinRotational rot = { + Type = RotAxesAngles; + AnyRefNode &ant = ....Layer_Pelvic1.BaseSegAnterior.LayerConstraintNodes.Nodes_Above_Layer._node0005; + AnyRefNode &pos = ...BaseSegAnterior.LayerConstraintNodes.Nodes_Below_Layer._node0005; + }; + MeasureOrganizer = {1,2,3,4,5}; + }; + Reaction.Type = repmat (nDim, Off); + }; + +// AnyKinMeasureOrg CavitySegAnteriorPrismaticDOF = { +// MeasureOrganizer = {0}; +// AnyKinLinear mes = { +// AnyRefNode &cav = ...CavitySeg.LayerConstraintNodes; +// AnyRefNode &cav_ant = ...CavitySegAnterior.LayerConstraintNodes; +// }; +// }; + + // Force connection for CavitySegAnterior + AnyReacForce CavitySegAnteriorKinetic = { + AnyKinLinear lin = { + Ref = 0; + AnyRefNode &ant = ...Layer_Pelvic1.BaseSegAnterior.LayerConstraintNodes; + AnyRefNode &pos = ..BaseSegAnterior.LayerConstraintNodes; + }; + AnyKinRotational rot = { + Type = RotAxesAngles; + AnyRefNode &ant = ...Layer_Pelvic1.BaseSegAnterior.LayerConstraintNodes; + AnyRefNode &pos = ..BaseSegAnterior.LayerConstraintNodes; + }; + }; + }; + + + + +////////////////////////////////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////////////////////////////////// + + +// AnyFolder Pelvis_New = { +// AnyVar K_top =1; +// AnyVar K_bot =1; +// +// AnyFolder &Data = ...Trunk.Data.unscaled.ModelParameters.Abdominal.Layer_L5; +// +// +// AnySeg &BaseSegPosterior = ...Trunk.Segments.PelvisSeg; +//// AnySeg BaseSegPosterior={ +//// Mass = 1e-6; +//// Jii = {0,0,0}; +//// r0 = ..Layer_L5.BaseSegPosterior.r0; +//// Axes0 = ..Layer_L5.BaseSegPosterior.Axes0; +////// AnyRefNode &AnatomicalFrameTrunk = ...Segments.PelvisSeg.AnatomicalFrameTrunk; +////// AnyFunTransform3D& Scale = ...Segments.PelvisSeg.ScaleAbdominal; +//// +////}; +// +// +// +//// BaseSegPosterior = { +//// AnyRefNode Layer1 = {ARel = .AnatomicalFrameTrunk.ARel;}; +//// }; +// AnyRefNode &LayerRef = BaseSegPosterior.Layer1; +// AnyFolder &layer_above = .Layer_L5; +// AnyFolder &layer_below = .Layer_Pelvic1; +// +// +// +//AnyFunTransform3D &Scale = BaseSegPosterior.Scale; +// +//AnyFunTransform3DLin ScaleAndProjectToLayer = { +// PreTransforms = {&.BaseSegPosterior.Scale, &ProjectToYZero}; +// ScaleMat = eye(3); +// Offset = {0, .LayerRef.Origin.sRel[1], 0}; //< Translation to vetebra/layer level +// +// AnyFunTransform3DLin ProjectToYZero = { +// ScaleMat = {{1,0,0},{0,0,0},{0,0,1}}; //< Remove Y component +// Offset = zeros(3,1)'; +// }; +//}; +// +// }; +// +//Pelvis_New = { +// +// // #include "Layer.any" +// +// AnyFolder LayerConstraints ={ +// AnyVar K_top =1; +// AnyVar K_bot =1; +// +// AnyIntArray MeasureOrganizer = {0}; +// +// #include "LayerConstraints.any" +// }; +// +// +// AnyKinEq BaseSegAnterior_Constraint = +// { +// AnyKinMeasureOrg Measurs = { +// AnyKinLinear lin = { +// Ref = 0; +// AnyRefNode &ant = ....Layer_Pelvic1.BaseSegAnterior.LayerConstraintNodes.Nodes_Below_Layer._node0005; +// AnyRefNode &pos = ...BaseSegAnterior.LayerConstraintNodes.Nodes_Below_Layer._node0005; +// }; +// AnyKinRotational rot = { +// Type = RotAxesAngles; +// AnyRefNode &ant = ....Layer_Pelvic1.BaseSegAnterior.LayerConstraintNodes.Nodes_Below_Layer._node0005; +// AnyRefNode &pos = ...BaseSegAnterior.LayerConstraintNodes.Nodes_Below_Layer._node0005; +// }; +// MeasureOrganizer = {1,2,3,4,5}; +// }; +// Reaction.Type = repmat (nDim, Off); +// }; +// +// // Force connection for CavitySegAnterior +// AnyReacForce CavitySegAnteriorKinetic = { +// AnyKinLinear lin = { +// Ref = 0; +// AnyRefNode &ant = ...Layer_Pelvic1.BaseSegAnterior.LayerConstraintNodes; +// AnyRefNode &pos = ..BaseSegAnterior.LayerConstraintNodes; +// }; +// AnyKinRotational rot = { +// Type = RotAxesAngles; +// AnyRefNode &ant = ...Layer_Pelvic1.BaseSegAnterior.LayerConstraintNodes; +// AnyRefNode &pos = ..BaseSegAnterior.LayerConstraintNodes; +// }; +// }; +// }; +// diff --git a/Body/AAUHuman/Trunk/PelvisSeg.any b/Body/AAUHuman/Trunk/PelvisSeg.any index cbfa77e9d..879939463 100644 --- a/Body/AAUHuman/Trunk/PelvisSeg.any +++ b/Body/AAUHuman/Trunk/PelvisSeg.any @@ -163,6 +163,10 @@ AnySeg PelvisSeg = { AnyRefNode& ScalingNode = AnatomicalFrameTrunk; AnyFunTransform3D& Scale = AnatomicalFrameTrunk.Scale_Trunk_Pelvis; + TrunkScaleWithInterfaceMorphing ScaleAbdominal( + GeomScale = ...Scaling.GeometricalScaling.Lumbar.ScaleFunction, + PelvisSeg = ..PelvisSeg, + ) = {}; #ifdef SKIN #if SKIN From 8adc29b8128f39596d80943c30a75e88afac0df9 Mon Sep 17 00:00:00 2001 From: hs Date: Fri, 31 May 2024 13:20:06 +0200 Subject: [PATCH 09/31] Modify the weights of new inter-layers removing an extra segment --- .../Abdominal/AbdominalPressureModel.any | 90 +++++++------- .../Trunk/Abdominal/LayerConstraints.any | 3 +- .../Trunk/Abdominal/Layer_Sternum.any | 10 +- .../Trunk/Abdominal/NEW_SEG_L5PELVIC.any | 112 +----------------- .../AAUHuman/Trunk/Abdominal/Pelvic_Layer.any | 2 +- 5 files changed, 61 insertions(+), 156 deletions(-) diff --git a/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any b/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any index 182ff80b0..ac6c49935 100644 --- a/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any +++ b/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any @@ -207,6 +207,7 @@ AnyFolder Abdominal={ }; AnyRefNode LayerConstraintNodes = { + sRel = ...Layer_L1.BaseSegAnterior.r0-.r0; AnyFolder LayerPoints = { PointGenerator points_right(fun=SplineFun, scale_fun=...Scale)={ start=.....Parameters.LayerMeasureSplineStart; @@ -264,8 +265,11 @@ AnyFolder Abdominal={ }; #ifdef RECTUS_MUSCLE_LINE_CONTROL_RIBCAGE AnySeg CavitySegAnterior = { - r0 = .CavitySeg.r0; - Axes0 = .CavitySeg.Axes0; +// r0 = .CavitySeg.r0; +// Axes0 = .CavitySeg.Axes0; + r0 = ..Layer_L1.BaseSegAnterior.r0; + Axes0 = ..Layer_L1.BaseSegAnterior.Axes0; + Mass = 1e-5; Jii = {0,0,0}; AnyFolder &Data = ...Data.unscaled.ModelParameters.Abdominal; @@ -292,9 +296,9 @@ AnyFolder Abdominal={ NodeDefaults.CreateMotionOutput.r = On; }; AnyRefNodeGroup Nodes_Above_Layer ={ - NodeAmount = ....Layer_L1.BaseSegAnterior.LayerConstraintNodes.Nodes_Above_Layer.NodeAmount; // number nodes in group + NodeAmount = ....Diaphragm.CavitySeg.LayerConstraintNodes.Nodes_Below_Layer.NodeAmount; // number nodes in group NodeName = strval(iarr(1, NodeAmount), "_node%04i"); - Node_sRels =....Layer_L1.BaseSegAnterior.LayerConstraintNodes.Nodes_Above_Layer.Node_sRels; + Node_sRels =....Diaphragm.CavitySeg.LayerConstraintNodes.Nodes_Below_Layer.Node_sRels; NodeDefaults.CreateMotionOutput.r = On; }; @@ -578,8 +582,8 @@ AnyFolder Abdominal={ #include "Layer.any" AnyFolder LayerConstraints ={ - AnyVar K_top =2; - AnyVar K_bot =1; + AnyVar K_top =1; + AnyVar K_bot =5; #ifdef RECTUS_MUSCLE_LINE_CONTROL_L1 @@ -726,7 +730,7 @@ AnyFolder Abdominal={ AnyFolder &layer_below_inertia = .Layer_Pelvic1.CavitySegAnterior; #include "Layer.any" AnyFolder LayerConstraints ={ - AnyVar K_top =1; + AnyVar K_top =5; AnyVar K_bot =1; #ifdef RECTUS_MUSCLE_LINE_CONTROL_L5 @@ -810,16 +814,16 @@ AnyFolder Abdominal={ #include "PointToLineDist.any" }; - AnyFolder Layer_pelvic_new ={ - AnyRefFrame &LayerNode = ..Pelvis_New.BaseSegAnterior.mid; - AnyKinMeasureOrg MeasureLayer = { - AnyKinMeasure &mes = ...Pelvis_New.BaseSegAnterior_Constraint.Measurs.lin; - MeasureOrganizer = {0}; - }; - - - #include "PointToLineDist.any" - }; +// AnyFolder Layer_pelvic_new ={ +// AnyRefFrame &LayerNode = ..Pelvis_New.BaseSegAnterior.mid; +// AnyKinMeasureOrg MeasureLayer = { +// AnyKinMeasure &mes = ...Pelvis_New.BaseSegAnterior_Constraint.Measurs.lin; +// MeasureOrganizer = {0}; +// }; +// +// +// #include "PointToLineDist.any" +// }; AnyKinEqSimpleDriver LayerDrivers ={ @@ -838,9 +842,9 @@ AnyKinMeasure &ref4=.Layer4.Norm; #ifdef RECTUS_MUSCLE_LINE_CONTROL_L5 AnyKinMeasure &ref5=.Layer5.Norm; #endif -#ifdef NEW_SEG_LINE_CONTROL_L5PELVIC +//#ifdef NEW_SEG_LINE_CONTROL_L5PELVIC //AnyKinMeasure &ref6=.Layer_pelvic_new.Norm; -#endif +//#endif //DriverPos =repmat(nDim,-0.04);//{0,0,0,0,0};//{1,1,1,1,1}*0.006;// //DriverVel =repmat(nDim,0.08)/4*2*pi/40; @@ -884,35 +888,35 @@ Reaction.Type ??=repmat(nDim,Off); AnyFolder Layer_Pelvic1 = { - AnyVar K_top =1; + AnyVar K_top =5; AnyVar K_bot =1; AnyFolder &Data = ...Trunk.Data.unscaled.ModelParameters.Abdominal.Layer_L5; -// AnySeg &BaseSegPosterior = ...Trunk.Segments.PelvisSeg; - AnySeg BaseSegPosterior={ - Mass = 1e-6; - Jii = {0,0,0}; - r0 = ..Layer_L5.BaseSegPosterior.r0; -// Axes0 = ..Layer_L5.BaseSegPosterior.Axes0; - AnyRefNode &AnatomicalFrameTrunk = ...Segments.PelvisSeg.AnatomicalFrameTrunk; - AnyFunTransform3D& Scale = ...Segments.PelvisSeg.ScaleAbdominal; - -AnyRefNode BaseSegPosterior_ConstraintNode = {sRel= ....Segments.PelvisSeg.r0-.r0;}; -}; - -Main.HumanModel.BodyModel.Trunk.Segments.PelvisSeg = { - AnyRefNode BaseSegPosterior_ConstraintNode = {sRel= {0,0,0};}; -}; - -AnyStdJoint BaseSegPosterior_Constraint = -{ - //viewKinMeasure.Visible = Off; - //viewJoint.Visible = Off; - AnyRefFrame &Pelvic = ...Segments.PelvisSeg.BaseSegPosterior_ConstraintNode; - AnyRefFrame &BaseSegPosterior = .BaseSegPosterior.BaseSegPosterior_ConstraintNode; -}; + AnySeg &BaseSegPosterior = ...Trunk.Segments.PelvisSeg; +// AnySeg BaseSegPosterior={ +// Mass = 1e-6; +// Jii = {0,0,0}; +// r0 = ..Layer_L5.BaseSegPosterior.r0; +//// Axes0 = ..Layer_L5.BaseSegPosterior.Axes0; +// AnyRefNode &AnatomicalFrameTrunk = ...Segments.PelvisSeg.AnatomicalFrameTrunk; +// AnyFunTransform3D& Scale = ...Segments.PelvisSeg.ScaleAbdominal; +// +//AnyRefNode BaseSegPosterior_ConstraintNode = {sRel= ....Segments.PelvisSeg.r0-.r0;}; +//}; +// +//Main.HumanModel.BodyModel.Trunk.Segments.PelvisSeg = { +// AnyRefNode BaseSegPosterior_ConstraintNode = {sRel= {0,0,0};}; +//}; +// +//AnyStdJoint BaseSegPosterior_Constraint = +//{ +// //viewKinMeasure.Visible = Off; +// //viewJoint.Visible = Off; +// AnyRefFrame &Pelvic = ...Segments.PelvisSeg.BaseSegPosterior_ConstraintNode; +// AnyRefFrame &BaseSegPosterior = .BaseSegPosterior.BaseSegPosterior_ConstraintNode; +//}; BaseSegPosterior = { diff --git a/Body/AAUHuman/Trunk/Abdominal/LayerConstraints.any b/Body/AAUHuman/Trunk/Abdominal/LayerConstraints.any index e41b6e1d6..36cdad76e 100644 --- a/Body/AAUHuman/Trunk/Abdominal/LayerConstraints.any +++ b/Body/AAUHuman/Trunk/Abdominal/LayerConstraints.any @@ -1,3 +1,4 @@ +//#define _ABDOMINAL_VISUALIZE_FOR_DEBUG AnyFolder SpringMeasures = { @@ -321,7 +322,7 @@ AnyKinEq RotationConstraint = { }; #ifdef _ABDOMINAL_VISUALIZE_FOR_DEBUG - #undef_ABDOMINAL_VISUALIZE_FOR_DEBUG + #undef _ABDOMINAL_VISUALIZE_FOR_DEBUG #endif diff --git a/Body/AAUHuman/Trunk/Abdominal/Layer_Sternum.any b/Body/AAUHuman/Trunk/Abdominal/Layer_Sternum.any index 6e21665d9..76c5cf1c6 100644 --- a/Body/AAUHuman/Trunk/Abdominal/Layer_Sternum.any +++ b/Body/AAUHuman/Trunk/Abdominal/Layer_Sternum.any @@ -17,7 +17,7 @@ AnyFolder Layer_Sternum = { AnyFolder LayerConstraints ={ AnyVar K_top =1; - AnyVar K_bot =2; + AnyVar K_bot =10; AnyIntArray MeasureOrganizer = {0}; @@ -35,13 +35,13 @@ Main.HumanModel.BodyModel.Trunk.Abdominal.Diaphragm.Joints = { AnyKinMeasureOrg CavitySegAnteriorDOFMeasurs = { AnyKinLinear lin = { Ref = 0; - AnyRefNode &ant = ....CavitySeg.LayerConstraintNodes.Nodes_Below_Layer._node0005; - AnyRefNode &pos = ....CavitySegAnterior.LayerConstraintNodes.Nodes_Below_Layer._node0005; + AnyRefNode &ref1 = ....CavitySeg.LayerConstraintNodes.Nodes_Below_Layer._node0005; + AnyRefNode &ref2 = ....CavitySegAnterior.LayerConstraintNodes.Nodes_Above_Layer._node0005; }; AnyKinRotational rot = { Type = RotAxesAngles; - AnyRefNode &ant = ....CavitySeg.LayerConstraintNodes.Nodes_Below_Layer._node0005; - AnyRefNode &pos = ....CavitySegAnterior.LayerConstraintNodes.Nodes_Below_Layer._node0005; + AnyRefNode &ref1 = ....CavitySeg.LayerConstraintNodes.Nodes_Below_Layer._node0005; + AnyRefNode &ref2 = ....CavitySegAnterior.LayerConstraintNodes.Nodes_Above_Layer._node0005; }; MeasureOrganizer = {1,2,3,4,5}; }; diff --git a/Body/AAUHuman/Trunk/Abdominal/NEW_SEG_L5PELVIC.any b/Body/AAUHuman/Trunk/Abdominal/NEW_SEG_L5PELVIC.any index 6fc93a343..a46b91e2e 100644 --- a/Body/AAUHuman/Trunk/Abdominal/NEW_SEG_L5PELVIC.any +++ b/Body/AAUHuman/Trunk/Abdominal/NEW_SEG_L5PELVIC.any @@ -58,17 +58,14 @@ AnyFolder Pelvis_New = { BaseSegAnterior = { AnyRefNode Origin = {}; - AnyRefNode mid = { - AnyVec3 unscaled = 0.5 * (..Data.AbdominalCavityPoints.Right.Parametric.Fun(1.0) + ..Data.AbdominalCavityPoints.Left.Parametric.Fun(1.0)); - sRel = .Scale(unscaled); - }; + }; // #include "Layer.any" AnyFolder LayerConstraints ={ - AnyVar K_top =1; + AnyVar K_top =10; AnyVar K_bot =1; AnyIntArray MeasureOrganizer = {0}; @@ -85,13 +82,13 @@ Pelvis_New = { AnyKinMeasureOrg Measurs = { AnyKinLinear lin = { Ref = 0; - AnyRefNode &ant = ....Layer_Pelvic1.BaseSegAnterior.LayerConstraintNodes.Nodes_Above_Layer._node0005; - AnyRefNode &pos = ...BaseSegAnterior.LayerConstraintNodes.Nodes_Below_Layer._node0005; + AnyRefNode &ref1 = ....Layer_Pelvic1.BaseSegAnterior.LayerConstraintNodes.Nodes_Above_Layer._node0005; + AnyRefNode &ref2 = ...BaseSegAnterior.LayerConstraintNodes.Nodes_Below_Layer._node0005; }; AnyKinRotational rot = { Type = RotAxesAngles; - AnyRefNode &ant = ....Layer_Pelvic1.BaseSegAnterior.LayerConstraintNodes.Nodes_Above_Layer._node0005; - AnyRefNode &pos = ...BaseSegAnterior.LayerConstraintNodes.Nodes_Below_Layer._node0005; + AnyRefNode &ref1 = ....Layer_Pelvic1.BaseSegAnterior.LayerConstraintNodes.Nodes_Above_Layer._node0005; + AnyRefNode &ref2 = ...BaseSegAnterior.LayerConstraintNodes.Nodes_Below_Layer._node0005; }; MeasureOrganizer = {1,2,3,4,5}; }; @@ -123,100 +120,3 @@ Pelvis_New = { - -////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////// - - -// AnyFolder Pelvis_New = { -// AnyVar K_top =1; -// AnyVar K_bot =1; -// -// AnyFolder &Data = ...Trunk.Data.unscaled.ModelParameters.Abdominal.Layer_L5; -// -// -// AnySeg &BaseSegPosterior = ...Trunk.Segments.PelvisSeg; -//// AnySeg BaseSegPosterior={ -//// Mass = 1e-6; -//// Jii = {0,0,0}; -//// r0 = ..Layer_L5.BaseSegPosterior.r0; -//// Axes0 = ..Layer_L5.BaseSegPosterior.Axes0; -////// AnyRefNode &AnatomicalFrameTrunk = ...Segments.PelvisSeg.AnatomicalFrameTrunk; -////// AnyFunTransform3D& Scale = ...Segments.PelvisSeg.ScaleAbdominal; -//// -////}; -// -// -// -//// BaseSegPosterior = { -//// AnyRefNode Layer1 = {ARel = .AnatomicalFrameTrunk.ARel;}; -//// }; -// AnyRefNode &LayerRef = BaseSegPosterior.Layer1; -// AnyFolder &layer_above = .Layer_L5; -// AnyFolder &layer_below = .Layer_Pelvic1; -// -// -// -//AnyFunTransform3D &Scale = BaseSegPosterior.Scale; -// -//AnyFunTransform3DLin ScaleAndProjectToLayer = { -// PreTransforms = {&.BaseSegPosterior.Scale, &ProjectToYZero}; -// ScaleMat = eye(3); -// Offset = {0, .LayerRef.Origin.sRel[1], 0}; //< Translation to vetebra/layer level -// -// AnyFunTransform3DLin ProjectToYZero = { -// ScaleMat = {{1,0,0},{0,0,0},{0,0,1}}; //< Remove Y component -// Offset = zeros(3,1)'; -// }; -//}; -// -// }; -// -//Pelvis_New = { -// -// // #include "Layer.any" -// -// AnyFolder LayerConstraints ={ -// AnyVar K_top =1; -// AnyVar K_bot =1; -// -// AnyIntArray MeasureOrganizer = {0}; -// -// #include "LayerConstraints.any" -// }; -// -// -// AnyKinEq BaseSegAnterior_Constraint = -// { -// AnyKinMeasureOrg Measurs = { -// AnyKinLinear lin = { -// Ref = 0; -// AnyRefNode &ant = ....Layer_Pelvic1.BaseSegAnterior.LayerConstraintNodes.Nodes_Below_Layer._node0005; -// AnyRefNode &pos = ...BaseSegAnterior.LayerConstraintNodes.Nodes_Below_Layer._node0005; -// }; -// AnyKinRotational rot = { -// Type = RotAxesAngles; -// AnyRefNode &ant = ....Layer_Pelvic1.BaseSegAnterior.LayerConstraintNodes.Nodes_Below_Layer._node0005; -// AnyRefNode &pos = ...BaseSegAnterior.LayerConstraintNodes.Nodes_Below_Layer._node0005; -// }; -// MeasureOrganizer = {1,2,3,4,5}; -// }; -// Reaction.Type = repmat (nDim, Off); -// }; -// -// // Force connection for CavitySegAnterior -// AnyReacForce CavitySegAnteriorKinetic = { -// AnyKinLinear lin = { -// Ref = 0; -// AnyRefNode &ant = ...Layer_Pelvic1.BaseSegAnterior.LayerConstraintNodes; -// AnyRefNode &pos = ..BaseSegAnterior.LayerConstraintNodes; -// }; -// AnyKinRotational rot = { -// Type = RotAxesAngles; -// AnyRefNode &ant = ...Layer_Pelvic1.BaseSegAnterior.LayerConstraintNodes; -// AnyRefNode &pos = ..BaseSegAnterior.LayerConstraintNodes; -// }; -// }; -// }; -// diff --git a/Body/AAUHuman/Trunk/Abdominal/Pelvic_Layer.any b/Body/AAUHuman/Trunk/Abdominal/Pelvic_Layer.any index eebdb7197..520f1b5a2 100644 --- a/Body/AAUHuman/Trunk/Abdominal/Pelvic_Layer.any +++ b/Body/AAUHuman/Trunk/Abdominal/Pelvic_Layer.any @@ -74,7 +74,7 @@ AnySeg BaseSegAnterior={ AnyRefNode LayerConstraintNodes = { - + sRel = ...Layer_L5.BaseSegPosterior.r0-.r0; AnyFolder LayerPoints = { PointGenerator points_right(fun=SplineFun, scale_fun=....ScaleAndProjectToLayer)={ start=.....Parameters.LayerMeasureSplineStart; From 1b0fea983566e12fb37356128b52144eb7e2b21a Mon Sep 17 00:00:00 2001 From: hs Date: Tue, 4 Jun 2024 13:34:19 +0200 Subject: [PATCH 10/31] Increase string mesh for OEC_7 and OIC_7 --- Body/AAUHuman/Trunk/MusclesLeft.any | 4 ++-- Body/AAUHuman/Trunk/MusclesRight.any | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Body/AAUHuman/Trunk/MusclesLeft.any b/Body/AAUHuman/Trunk/MusclesLeft.any index b163c3928..d465420c3 100644 --- a/Body/AAUHuman/Trunk/MusclesLeft.any +++ b/Body/AAUHuman/Trunk/MusclesLeft.any @@ -3117,7 +3117,7 @@ AnyMuscleShortestPath OEC_7 = { AnySurfEllipsoid &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh3; - SPLine.StringMesh=120; + SPLine.StringMesh=240; SPLine ={ // #if MESH_TYPE == "ELLIPSOID" @@ -3677,7 +3677,7 @@ AnyMuscleShortestPath OIC_7 = { AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh3; - SPLine.StringMesh=60; + SPLine.StringMesh=240; SPLine ={ diff --git a/Body/AAUHuman/Trunk/MusclesRight.any b/Body/AAUHuman/Trunk/MusclesRight.any index f127b316b..3b4b6e992 100644 --- a/Body/AAUHuman/Trunk/MusclesRight.any +++ b/Body/AAUHuman/Trunk/MusclesRight.any @@ -3146,7 +3146,7 @@ AnyMuscleShortestPath OEC_7 = { AnySurfEllipsoid &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh3; - SPLine.StringMesh=120; + SPLine.StringMesh=240; SPLine ={ // #if MESH_TYPE == "ELLIPSOID" @@ -3700,7 +3700,7 @@ AnyMuscleShortestPath OIC_7 = { AnySurfEllipsoid &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh3; AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh3; - SPLine.StringMesh=60; + SPLine.StringMesh=240; SPLine ={ From 50ecce93a0362d65de41f2dd3ced5fa9e47aa16a Mon Sep 17 00:00:00 2001 From: hs Date: Tue, 4 Jun 2024 14:29:15 +0200 Subject: [PATCH 11/31] Hide ellipsoid and nodes in the abdomen region --- Body/AAUHuman/Trunk/CreateMeshForWrapping.any | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Body/AAUHuman/Trunk/CreateMeshForWrapping.any b/Body/AAUHuman/Trunk/CreateMeshForWrapping.any index 463c710bc..a18b969d3 100644 --- a/Body/AAUHuman/Trunk/CreateMeshForWrapping.any +++ b/Body/AAUHuman/Trunk/CreateMeshForWrapping.any @@ -203,7 +203,7 @@ AnySurfEllipsoidFit mesh3 = { viewRefFrame.Visible = Off; viewNodes.Visible = Off; - viewSurface.Visible = On; + viewSurface.Visible = Off; FixedAxes = On; //AxisSymmetry = Off; //Spherical = Off; @@ -226,7 +226,7 @@ Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints. }; - AnyDrawPointCloud drw = {Points=.mesh3.Points; PointStyle.Size=0.01; Points3D = On;}; +// AnyDrawPointCloud drw = {Points=.mesh3.Points; PointStyle.Size=0.01; Points3D = On;}; AnyRefNode Right ={ From 9abd3185a01205be19848a7e230de1be6c74a8e1 Mon Sep 17 00:00:00 2001 From: hs Date: Tue, 4 Jun 2024 14:30:55 +0200 Subject: [PATCH 12/31] String mesh for all wrapping muscles that wrap on 2 or more ellipsoids, were defined 240 except for OIC_10, which is 300. --- Body/AAUHuman/Trunk/MusclesLeft.any | 14 +++++++------- Body/AAUHuman/Trunk/MusclesRight.any | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Body/AAUHuman/Trunk/MusclesLeft.any b/Body/AAUHuman/Trunk/MusclesLeft.any index d465420c3..c51fc622c 100644 --- a/Body/AAUHuman/Trunk/MusclesLeft.any +++ b/Body/AAUHuman/Trunk/MusclesLeft.any @@ -2999,7 +2999,7 @@ AnyMuscleShortestPath OEC_5= { AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh3; - SPLine.StringMesh=60; + SPLine.StringMesh=240; SPLine ={ @@ -3056,7 +3056,7 @@ AnyMuscleShortestPath OEC_6 = { - SPLine.StringMesh=80; + SPLine.StringMesh=240; SPLine ={ // #if MESH_TYPE == "ELLIPSOID" @@ -3747,7 +3747,7 @@ AnyMuscleShortestPath OIC_8 = { AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh3; - SPLine.StringMesh=60; + SPLine.StringMesh=240; SPLine ={ // StringSurfaceMap={{Off,Off,Off},{On,On,On}}; //no wrap before after via @@ -3816,7 +3816,7 @@ AnyMuscleShortestPath OIC_8_extra = { AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh3; -SPLine.StringMesh=100; +SPLine.StringMesh=240; SPLine ={ // SolverVersion=3; @@ -3898,7 +3898,7 @@ AnyMuscleShortestPath OIC_9 = { AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh3; - SPLine.StringMesh=60; + SPLine.StringMesh=240; SPLine ={ @@ -3976,7 +3976,7 @@ AnyMuscleShortestPath OIC_10 = { // AnySurfEllipsoid &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh3; - SPLine.StringMesh=60; + SPLine.StringMesh=300; SPLine ={ @@ -4058,7 +4058,7 @@ AnyMuscleShortestPath OIC_11 = { AnySurfEllipsoid &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh3; - SPLine.StringMesh=60; + SPLine.StringMesh=240; SPLine ={ diff --git a/Body/AAUHuman/Trunk/MusclesRight.any b/Body/AAUHuman/Trunk/MusclesRight.any index 3b4b6e992..0f19dee80 100644 --- a/Body/AAUHuman/Trunk/MusclesRight.any +++ b/Body/AAUHuman/Trunk/MusclesRight.any @@ -3024,7 +3024,7 @@ AnyMuscleShortestPath OEC_5= { AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh3; - SPLine.StringMesh=60; + SPLine.StringMesh=240; SPLine ={ @@ -3083,7 +3083,7 @@ AnyMuscleShortestPath OEC_6 = { - SPLine.StringMesh=80; + SPLine.StringMesh=240; SPLine ={ // #if MESH_TYPE == "ELLIPSOID" @@ -3773,7 +3773,7 @@ AnyMuscleShortestPath OIC_8 = { //#endif - SPLine.StringMesh=60; + SPLine.StringMesh=240; // #ifndef WRAPPING_TEST SPLine ={ @@ -3861,7 +3861,7 @@ AnyMuscleShortestPath OIC_8_extra = { -SPLine.StringMesh=100; +SPLine.StringMesh=240; SPLine ={ // SolverVersion=3; @@ -3942,7 +3942,7 @@ AnyMuscleShortestPath OIC_9 = { AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh3; - SPLine.StringMesh=60; + SPLine.StringMesh=240; SPLine ={ @@ -4020,7 +4020,7 @@ AnyMuscleShortestPath OIC_10 = { // AnySurfEllipsoid &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh3; - SPLine.StringMesh=60; + SPLine.StringMesh=300; SPLine ={ @@ -4101,7 +4101,7 @@ AnyMuscleShortestPath OIC_11 = { - SPLine.StringMesh=60; + SPLine.StringMesh=240; SPLine ={ From e00e32d74cca1e90c1c04c89de5869ecc076180e Mon Sep 17 00:00:00 2001 From: hs Date: Wed, 3 Apr 2024 15:12:40 +0200 Subject: [PATCH 13/31] Asymmetric node fixed --- Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any b/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any index ac6c49935..dfd5d6b56 100644 --- a/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any +++ b/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any @@ -180,7 +180,7 @@ AnyFolder Abdominal={ AnyFunTransform3D &Scale = .CavitySegSuperoanterior.Scale; AnyRefNode DiaphragmJntNode = {sRel = ..CavitySegSuperoanterior.DiaphragmJntNode.sRel;}; AnyRefNode DiaphragmPosteriorBreathNodeRotated = {sRel = ....Segments.T11Seg.MidPoint.sRel; ARel = RotMat (....Segments.T11Seg.MidPoint.sRel, ....Segments.T8Seg.MidPoint.sRel, ....Segments.SternalBodySeg.Xiphoid_DiaphragmNodeR.sRel) * RotMat (-pi/2,z) * RotMat (pi,y);}; - AnyRefNode DiaphragmAnteriorBreathNodeRotated = {sRel = ....Segments.SternalBodySeg.Xiphoid_DiaphragmNodeR.sRel; ARel = .DiaphragmPosteriorBreathNodeRotated.ARel;}; + AnyRefNode DiaphragmAnteriorBreathNodeRotated = {sRel = 0.5*(....Segments.SternalBodySeg.Xiphoid_DiaphragmNodeR.sRel+....Segments.SternalBodySeg.Xiphoid_DiaphragmNodeL.sRel); ARel = .DiaphragmPosteriorBreathNodeRotated.ARel;}; AnyRefNode DiaphragmRLateralNodeRotated = {sRel = ....Segments.Right.R10Seg.MidNode.sRel; ARel = .DiaphragmPosteriorBreathNodeRotated.ARel;}; AnyRefNode DiaphragmLLateralNodeRotated = {sRel = ....Segments.Left.R10Seg.MidNode.sRel; ARel = .DiaphragmPosteriorBreathNodeRotated.ARel;}; AnyRefNode Xiphoid_Diaphragm = {sRel = ..CavitySegSuperoanterior.Xiphoid_Diaphragm.sRel;}; From 6e099cffda232a426a096ed3cb8be293c0029d31 Mon Sep 17 00:00:00 2001 From: hs Date: Wed, 3 Apr 2024 15:24:12 +0200 Subject: [PATCH 14/31] Muscle volumes assigns after if statement for each muscle group to have different muscle volumes in different configs From 3228e81f0f8902e49bb0048d79cba1dbfe4f2ecb Mon Sep 17 00:00:00 2001 From: hs Date: Fri, 7 Jun 2024 11:18:40 +0200 Subject: [PATCH 15/31] Fix test failures --- Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any | 2 +- Body/AAUHuman/Trunk/Abdominal/NEW_SEG_L5PELVIC.any | 2 +- Body/AAUHuman/Trunk/EvaluateMomentArmsStudy.any | 2 +- Tests/Thoracic/load_pos.any | 5 +++-- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any b/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any index dfd5d6b56..d71b81ae4 100644 --- a/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any +++ b/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any @@ -270,7 +270,7 @@ AnyFolder Abdominal={ r0 = ..Layer_L1.BaseSegAnterior.r0; Axes0 = ..Layer_L1.BaseSegAnterior.Axes0; - Mass = 1e-5; + Mass = 0; Jii = {0,0,0}; AnyFolder &Data = ...Data.unscaled.ModelParameters.Abdominal; AnyFunTransform3D &Scale = ...Scaling.GeometricalScaling.Lumbar.ScaleFunction; diff --git a/Body/AAUHuman/Trunk/Abdominal/NEW_SEG_L5PELVIC.any b/Body/AAUHuman/Trunk/Abdominal/NEW_SEG_L5PELVIC.any index a46b91e2e..e93325283 100644 --- a/Body/AAUHuman/Trunk/Abdominal/NEW_SEG_L5PELVIC.any +++ b/Body/AAUHuman/Trunk/Abdominal/NEW_SEG_L5PELVIC.any @@ -11,7 +11,7 @@ AnyFolder Pelvis_New = { AnySeg BaseSegAnterior = { r0 = ..Layer_L5.BaseSegAnterior.r0; Axes0 = ..Layer_L5.BaseSegAnterior.Axes0; - Mass = 1e-5; + Mass = 0; Jii = {0,0,0}; // AnyFolder &Data = ...Data.unscaled.ModelParameters.Abdominal; AnyFunTransform3D &Scale = ...Scaling.GeometricalScaling.Lumbar.ScaleFunction; diff --git a/Body/AAUHuman/Trunk/EvaluateMomentArmsStudy.any b/Body/AAUHuman/Trunk/EvaluateMomentArmsStudy.any index 10a2d1883..c5331cad5 100644 --- a/Body/AAUHuman/Trunk/EvaluateMomentArmsStudy.any +++ b/Body/AAUHuman/Trunk/EvaluateMomentArmsStudy.any @@ -74,7 +74,7 @@ AnyKinStudy Study = { #endif InitialConditions.SolverType = Kinematics.SolverType ; - Kinematics.SolverType = KinSolDeterminate2; + Kinematics.SolverType = KinSolDeterminate; AnyFolder &Model = .Model; diff --git a/Tests/Thoracic/load_pos.any b/Tests/Thoracic/load_pos.any index 68d7ed5ba..cb9e21e25 100644 --- a/Tests/Thoracic/load_pos.any +++ b/Tests/Thoracic/load_pos.any @@ -148,7 +148,7 @@ AnyFolder Tests = { AnyObjectPtrArray abdom_wrap_cylnodes = ObjSearchRecursive("Main.HumanModel.BodyModel.Trunk.Abdominal", "Translate.*", "AnyRefNode"); AnyObjectPtrArray abdom_wrap_translate = ObjSearchRecursive("Main.HumanModel.BodyModel.Trunk.Abdominal", "Translate", "AnyRefNode"); AnyObjectPtrArray abdom_wrap_ribcyls = ObjSearchRecursive("Main.HumanModel.BodyModel.Trunk.Abdominal", "*CylR*", "AnyRefNode"); - + AnyObjectPtrArray abdom_layer_front = ObjSearchRecursive("Main.HumanModel.BodyModel.Trunk.Abdominal","Layer_L*.BaseSegAnterior.FrontNode*.*", "AnyRefNode"); // The skull is filtered out since it has another reference system than the remaining trunk so sRel will not be equal to r // The buckle is removed since it is kinematically solved and thereby will move during the kinematics. // The ij sub nodes are removed since they are the interface nodes for the arm reference system @@ -171,7 +171,8 @@ AnyFolder Tests = { manusternal_nodes,), abdom_wrap_cylnodes, abdom_wrap_translate, - abdom_wrap_ribcyls + abdom_wrap_ribcyls, + abdom_layer_front )); AnyObjectPtrArray node_srel = ObjGetMember(nodes, "sRel"); From d32d5cd88507764d0b1a3de10a2002575d562d54 Mon Sep 17 00:00:00 2001 From: hs Date: Mon, 17 Jun 2024 11:36:28 +0200 Subject: [PATCH 16/31] Clean up --- .../Abdominal/AbdominalPressureModel.any | 158 +++--------------- ...r_Sternum.any => InterLayer_L1Sternum.any} | 0 ...G_L5PELVIC.any => InterLayer_PelvicL5.any} | 0 3 files changed, 27 insertions(+), 131 deletions(-) rename Body/AAUHuman/Trunk/Abdominal/{Layer_Sternum.any => InterLayer_L1Sternum.any} (100%) rename Body/AAUHuman/Trunk/Abdominal/{NEW_SEG_L5PELVIC.any => InterLayer_PelvicL5.any} (100%) diff --git a/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any b/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any index d71b81ae4..1d0096bab 100644 --- a/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any +++ b/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any @@ -1,13 +1,7 @@ #define PELVIC_LAYER_MOVES -#define RECTUS_MUSCLE_LINE_CONTROL // Comment for agada - -#define RECTUS_MUSCLE_LINE_CONTROL_L1 - #define RECTUS_MUSCLE_LINE_CONTROL_L2 - #define RECTUS_MUSCLE_LINE_CONTROL_L3 - #define RECTUS_MUSCLE_LINE_CONTROL_L4 - #define RECTUS_MUSCLE_LINE_CONTROL_L5 - #define RECTUS_MUSCLE_LINE_CONTROL_RIBCAGE +#define RECTUS_MUSCLE_LINE_CONTROL +#define RECTUS_MUSCLE_LINE_CONTROL_RIBCAGE #define NEW_SEG_LINE_CONTROL_L5PELVIC /// The abdominal model consists of a series of layers with individual volumes and pressure muscles @@ -243,30 +237,18 @@ AnyFolder Abdominal={ }; Node_sRels = Obj2Num(ObjGetMember(segmental_refframes, "sRel")) + 0*.r0[0]; -// #if BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ AnyInt n_levels = 4; /// We included cavity volumes of 8, 9, 10 levels, since the most superior postion of the diaphragm is approximately in the 8th level. AnyObjectPtr segmental_refframes = unique( take(...Volume.CylMesh, iarr(0, SizesOf(...Volume.CylMesh)[0]-1), 0) - // take(...Volume.CylMesh, iarr(4,2), 0) ); - -// #else -// AnyInt n_levels = 4; -// AnyObjectPtr segmental_refframes = arrcat( -// ...Edges.Edge8, -// ...Edges.Edge9, -// ...Edges.Edge10, -// ); -// #endif }; }; + #ifdef RECTUS_MUSCLE_LINE_CONTROL_RIBCAGE AnySeg CavitySegAnterior = { -// r0 = .CavitySeg.r0; -// Axes0 = .CavitySeg.Axes0; r0 = ..Layer_L1.BaseSegAnterior.r0; Axes0 = ..Layer_L1.BaseSegAnterior.Axes0; @@ -335,23 +317,12 @@ AnyFolder Abdominal={ }; Node_sRels = Obj2Num(ObjGetMember(segmental_refframes, "sRel")) + 0*.r0[0]; -// #if BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ AnyInt n_levels = 4; /// We included cavity volumes of 8, 9, 10 levels, since the most superior postion of the diaphragm is approximately in the 8th level. AnyObjectPtr segmental_refframes = unique( take(...Volume.CylMesh, iarr(0, SizesOf(...Volume.CylMesh)[0]-1), 0) - // take(...Volume.CylMesh, iarr(4,2), 0) ); - -// #else -// AnyInt n_levels = 4; -// AnyObjectPtr segmental_refframes = arrcat( -// ...Edges.Edge8, -// ...Edges.Edge9, -// ...Edges.Edge10, -// ); -// #endif }; }; @@ -571,9 +542,9 @@ AnyFolder Abdominal={ AnyRefFrame &MomentProvider = .Layer_L2.BaseSegPosterior; BaseSegPosterior = {AnyFileVar OuterInertiaSTL = ...Data.unscaled.STL.FilenameLayer1Inertia;}; #ifndef RECTUS_MUSCLE_LINE_CONTROL_RIBCAGE - AnyFolder &layer_above = .Diaphragm.CavitySeg;//...Trunk.ThoracicCavity.Inertia.segment; //...Trunk.Segments.SternalBodySeg; //.Diaphragm.BaseSegAnterior; + AnyFolder &layer_above = .Diaphragm.CavitySeg; #else - AnyFolder &layer_above = .Diaphragm.CavitySegAnterior;//...Trunk.ThoracicCavity.Inertia.segment; //...Trunk.Segments.SternalBodySeg; //.Diaphragm.BaseSegAnterior; + AnyFolder &layer_above = .Diaphragm.CavitySegAnterior; #endif AnyFolder &layer_below = .Layer_L2.BaseSegAnterior; AnyFolder &layer_above_inertia = .Diaphragm.CavitySeg; @@ -586,7 +557,7 @@ AnyFolder Abdominal={ AnyVar K_bot =5; - #ifdef RECTUS_MUSCLE_LINE_CONTROL_L1 + #ifdef RECTUS_MUSCLE_LINE_CONTROL AnyIntArray MeasureOrganizer = {3,4,5}; #else AnyIntArray MeasureOrganizer = {0,3,4,5}; @@ -654,7 +625,7 @@ AnyFolder Abdominal={ AnyVar K_bot =1; - #ifdef RECTUS_MUSCLE_LINE_CONTROL_L2 + #ifdef RECTUS_MUSCLE_LINE_CONTROL AnyIntArray MeasureOrganizer = {3,4,5}; #else AnyIntArray MeasureOrganizer = {0,3,4,5}; @@ -679,7 +650,7 @@ AnyFolder Abdominal={ AnyVar K_top =1; AnyVar K_bot =1; - #ifdef RECTUS_MUSCLE_LINE_CONTROL_L3 + #ifdef RECTUS_MUSCLE_LINE_CONTROL AnyIntArray MeasureOrganizer = {3,4,5}; #else AnyIntArray MeasureOrganizer = {0,3,4,5}; @@ -704,7 +675,7 @@ AnyFolder Abdominal={ AnyVar K_bot =1; - #ifdef RECTUS_MUSCLE_LINE_CONTROL_L4 + #ifdef RECTUS_MUSCLE_LINE_CONTROL AnyIntArray MeasureOrganizer = {3,4,5}; #else AnyIntArray MeasureOrganizer = {0,3,4,5}; @@ -733,7 +704,7 @@ AnyFolder Abdominal={ AnyVar K_top =5; AnyVar K_bot =1; - #ifdef RECTUS_MUSCLE_LINE_CONTROL_L5 + #ifdef RECTUS_MUSCLE_LINE_CONTROL AnyIntArray MeasureOrganizer = {3,4,5}; #else AnyIntArray MeasureOrganizer = {0,3,4,5}; @@ -744,7 +715,6 @@ AnyFolder Abdominal={ #ifdef RECTUS_MUSCLE_LINE_CONTROL - AnyFolder Layer_Constraints_RectusLine ={ AnySeg Dummy ={ @@ -814,75 +784,28 @@ AnyFolder Abdominal={ #include "PointToLineDist.any" }; -// AnyFolder Layer_pelvic_new ={ -// AnyRefFrame &LayerNode = ..Pelvis_New.BaseSegAnterior.mid; -// AnyKinMeasureOrg MeasureLayer = { -// AnyKinMeasure &mes = ...Pelvis_New.BaseSegAnterior_Constraint.Measurs.lin; -// MeasureOrganizer = {0}; -// }; -// -// -// #include "PointToLineDist.any" -// }; - - -AnyKinEqSimpleDriver LayerDrivers ={ -#ifdef RECTUS_MUSCLE_LINE_CONTROL_L1 -AnyKinMeasure &ref1=.Layer1.Norm; -#endif -#ifdef RECTUS_MUSCLE_LINE_CONTROL_L2 -AnyKinMeasure &ref2=.Layer2.Norm; -#endif -#ifdef RECTUS_MUSCLE_LINE_CONTROL_L3 -AnyKinMeasure &ref3=.Layer3.Norm; -#endif -#ifdef RECTUS_MUSCLE_LINE_CONTROL_L4 -AnyKinMeasure &ref4=.Layer4.Norm; -#endif -#ifdef RECTUS_MUSCLE_LINE_CONTROL_L5 -AnyKinMeasure &ref5=.Layer5.Norm; -#endif -//#ifdef NEW_SEG_LINE_CONTROL_L5PELVIC -//AnyKinMeasure &ref6=.Layer_pelvic_new.Norm; -//#endif - -//DriverPos =repmat(nDim,-0.04);//{0,0,0,0,0};//{1,1,1,1,1}*0.006;// -//DriverVel =repmat(nDim,0.08)/4*2*pi/40; -DriverPos =repmat(nDim,0); -DriverVel =repmat(nDim,0); -Reaction.Type ??=repmat(nDim,Off); -}; - -//#ifdef RECTUS_MUSCLE_LINE_CONTROL_RIBCAGE -//AnyKinEqSimpleDriver LayerDrivers_CavitySegAnteriorPrismaticDOF ={ -//AnyKinMeasure &ref6=..Diaphragm.Joints.CavitySegAnteriorPrismaticDOF; -//DriverPos =repmat(nDim,0); -//DriverVel =repmat(nDim,0.005)/4*2*pi/40 * 0; -//Reaction.Type ??=repmat(nDim,Off); -//}; -// -////AnyKinEq LayerDrivers_CavitySegAnteriorPrismaticDOF = { -//// AnyKinMeasureLinComb lincomb = { -//// AnyKinMeasure &ref1 = ..Layer1.MeasureLayer; -//// AnyKinMeasure &ref6=...Diaphragm.Joints.CavitySegAnteriorPrismaticDOF; -//// Coef = {{1, -1}}; -//// OutDim = 1; -//// }; -//// Reaction.Type ??=repmat(nDim,Off); -////}; -// -//#endif - + #ifdef RECTUS_MUSCLE_LINE_CONTROL + AnyKinEqSimpleDriver LayerDrivers ={ + AnyKinMeasure &ref1=.Layer1.Norm; + AnyKinMeasure &ref2=.Layer2.Norm; + AnyKinMeasure &ref3=.Layer3.Norm; + AnyKinMeasure &ref4=.Layer4.Norm; + AnyKinMeasure &ref5=.Layer5.Norm; + DriverPos =repmat(nDim,0); + DriverVel =repmat(nDim,0); + Reaction.Type ??=repmat(nDim,Off); + }; + #endif }; #ifdef RECTUS_MUSCLE_LINE_CONTROL_RIBCAGE -#include "Layer_Sternum.any" +#include "InterLayer_L1Sternum.any" #endif #ifdef NEW_SEG_LINE_CONTROL_L5PELVIC -#include "NEW_SEG_L5PELVIC.any" +#include "InterLayer_PelvicL5.any" +#endif #endif - #endif @@ -895,29 +818,6 @@ Reaction.Type ??=repmat(nDim,Off); AnySeg &BaseSegPosterior = ...Trunk.Segments.PelvisSeg; -// AnySeg BaseSegPosterior={ -// Mass = 1e-6; -// Jii = {0,0,0}; -// r0 = ..Layer_L5.BaseSegPosterior.r0; -//// Axes0 = ..Layer_L5.BaseSegPosterior.Axes0; -// AnyRefNode &AnatomicalFrameTrunk = ...Segments.PelvisSeg.AnatomicalFrameTrunk; -// AnyFunTransform3D& Scale = ...Segments.PelvisSeg.ScaleAbdominal; -// -//AnyRefNode BaseSegPosterior_ConstraintNode = {sRel= ....Segments.PelvisSeg.r0-.r0;}; -//}; -// -//Main.HumanModel.BodyModel.Trunk.Segments.PelvisSeg = { -// AnyRefNode BaseSegPosterior_ConstraintNode = {sRel= {0,0,0};}; -//}; -// -//AnyStdJoint BaseSegPosterior_Constraint = -//{ -// //viewKinMeasure.Visible = Off; -// //viewJoint.Visible = Off; -// AnyRefFrame &Pelvic = ...Segments.PelvisSeg.BaseSegPosterior_ConstraintNode; -// AnyRefFrame &BaseSegPosterior = .BaseSegPosterior.BaseSegPosterior_ConstraintNode; -//}; - BaseSegPosterior = { AnyRefNode Layer1 = {ARel = .AnatomicalFrameTrunk.ARel;}; @@ -957,8 +857,7 @@ Reaction.Type ??=repmat(nDim,Off); AnyFolder Layer_Pelvic2 = { AnyVar K_top =1; AnyVar K_bot =0.5; - AnyFolder &Data =...Trunk.Data.unscaled.ModelParameters.Abdominal.Layer_Pelvic2; - // AnySeg &BaseSegPosterior = ...Trunk.Segments.PelvisSeg; + AnyFolder &Data =...Trunk.Data.unscaled.ModelParameters.Abdominal.Layer_Pelvic2; AnySeg &BaseSegPosterior = .Layer_Pelvic1.BaseSegPosterior; BaseSegPosterior ={ AnyRefNode Layer2 = {ARel = .AnatomicalFrameTrunk.ARel;}; @@ -977,7 +876,6 @@ Reaction.Type ??=repmat(nDim,Off); AnyVar K_top =1; AnyVar K_bot =0.5; AnyFolder &Data =...Trunk.Data.unscaled.ModelParameters.Abdominal.Layer_Pelvic3; - // AnySeg &BaseSegPosterior = ...Trunk.Segments.PelvisSeg; AnySeg &BaseSegPosterior = .Layer_Pelvic1.BaseSegPosterior; BaseSegPosterior ={ AnyRefNode Layer3 = {ARel = .AnatomicalFrameTrunk.ARel;}; @@ -997,7 +895,6 @@ Reaction.Type ??=repmat(nDim,Off); AnyVar K_bot =0.5; AnyFolder &Data = ...Trunk.Data.unscaled.ModelParameters.Abdominal.Layer_Pelvic4; - // AnySeg &BaseSegPosterior = ...Trunk.Segments.PelvisSeg; AnySeg &BaseSegPosterior = .Layer_Pelvic1.BaseSegPosterior; BaseSegPosterior ={ AnyRefNode Layer4 = {ARel = .AnatomicalFrameTrunk.ARel;}; @@ -1014,8 +911,7 @@ Reaction.Type ??=repmat(nDim,Off); AnyVar K_top =1; AnyVar K_bot =0.5; AnyFolder &Data =...Trunk.Data.unscaled.ModelParameters.Abdominal.Layer_Pelvic5; - AnySeg &BaseSegPosterior = ...Trunk.Segments.PelvisSeg; -// AnySeg &BaseSegPosterior = .Layer_Pelvic1.BaseSegPosterior; + AnySeg &BaseSegPosterior = ...Trunk.Segments.PelvisSeg; AnyFunTransform3D &Scale = BaseSegPosterior.Scale; BaseSegPosterior = { diff --git a/Body/AAUHuman/Trunk/Abdominal/Layer_Sternum.any b/Body/AAUHuman/Trunk/Abdominal/InterLayer_L1Sternum.any similarity index 100% rename from Body/AAUHuman/Trunk/Abdominal/Layer_Sternum.any rename to Body/AAUHuman/Trunk/Abdominal/InterLayer_L1Sternum.any diff --git a/Body/AAUHuman/Trunk/Abdominal/NEW_SEG_L5PELVIC.any b/Body/AAUHuman/Trunk/Abdominal/InterLayer_PelvicL5.any similarity index 100% rename from Body/AAUHuman/Trunk/Abdominal/NEW_SEG_L5PELVIC.any rename to Body/AAUHuman/Trunk/Abdominal/InterLayer_PelvicL5.any From 6022952b6360590071709dcec2ec8698d69f189f Mon Sep 17 00:00:00 2001 From: hs Date: Wed, 19 Jun 2024 14:18:57 +0200 Subject: [PATCH 17/31] Clean up and restructure of new segments --- .../Abdominal/AbdominalPressureModel.any | 92 +++------- .../Trunk/Abdominal/InterLayer_L1Ribcage.any | 96 +++++++++++ .../Trunk/Abdominal/InterLayer_L1Sternum.any | 72 -------- .../Trunk/Abdominal/InterLayer_PelvicL5.any | 162 ++++++++---------- 4 files changed, 188 insertions(+), 234 deletions(-) create mode 100644 Body/AAUHuman/Trunk/Abdominal/InterLayer_L1Ribcage.any delete mode 100644 Body/AAUHuman/Trunk/Abdominal/InterLayer_L1Sternum.any diff --git a/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any b/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any index 1d0096bab..9bc3b1d15 100644 --- a/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any +++ b/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any @@ -1,22 +1,19 @@ #define PELVIC_LAYER_MOVES #define RECTUS_MUSCLE_LINE_CONTROL -#define RECTUS_MUSCLE_LINE_CONTROL_RIBCAGE -#define NEW_SEG_LINE_CONTROL_L5PELVIC +#define INTER_LAYER_L1RIBCAGE +#define INTER_LAYER_L5PELVIC - /// The abdominal model consists of a series of layers with individual volumes and pressure muscles +/// The abdominal model consists of a series of layers with individual volumes and pressure muscles AnyFolder Abdominal={ - - AnyFolder Parameters ={ AnyVar LayerMeasureSplineStart= 0.6; AnyInt LayerMeasureAmount=6; }; - -// #if BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ + // #if BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ #include "..\NodesForThoracicCavity.any" AnyKinVolumeCylMesh Volume = { // #include "/DrawSettings/KinematicVolume.any" @@ -28,8 +25,8 @@ AnyFolder Abdominal={ .Edges.Edge8 }); }; -// #endif - + // #endif + /// The Diaphragm is part of the abdominal model and introduces it's own layers /// It is also part of the Thoracic cavity model AnyFolder Diaphragm = { @@ -88,7 +85,7 @@ AnyFolder Abdominal={ }; Node_sRels = Obj2Num(ObjGetMember(segmental_refframes, "sRel")) + 0*.r0[0]; -// #if BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ + // #if BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ AnyInt n_levels = 4; /// We included cavity volumes of 8, 9, 10 levels, since the most superior postion of the diaphragm is approximately in the 8th level. @@ -97,14 +94,14 @@ AnyFolder Abdominal={ // take(...Volume.CylMesh, iarr(4,2), 0) ); -// #else -// AnyInt n_levels = 4; -// AnyObjectPtr segmental_refframes = arrcat( -// ...Edges.Edge8, -// ...Edges.Edge9, -// ...Edges.Edge10, -// ); -// #endif + // #else + // AnyInt n_levels = 4; + // AnyObjectPtr segmental_refframes = arrcat( + // ...Edges.Edge8, + // ...Edges.Edge9, + // ...Edges.Edge10, + // ); + // #endif }; }; @@ -246,48 +243,7 @@ AnyFolder Abdominal={ }; }; - - #ifdef RECTUS_MUSCLE_LINE_CONTROL_RIBCAGE - AnySeg CavitySegAnterior = { - r0 = ..Layer_L1.BaseSegAnterior.r0; - Axes0 = ..Layer_L1.BaseSegAnterior.Axes0; - - Mass = 0; - Jii = {0,0,0}; - AnyFolder &Data = ...Data.unscaled.ModelParameters.Abdominal; - AnyFunTransform3D &Scale = ...Scaling.GeometricalScaling.Lumbar.ScaleFunction; - - AnyRefNode LayerConstraintNodes = { - AnyFolder LayerPoints = { - PointGenerator points_right(fun=SplineFun, scale_fun=...Scale)={ - start=.....Parameters.LayerMeasureSplineStart; - amount = .....Parameters.LayerMeasureAmount; - AnyFunInterpol &SplineFun = .....Layer_L1.Data.AbdominalCavityPoints.Right.Parametric.Fun; - }; - PointGenerator points_left(fun=SplineFun, scale_fun=...Scale)={ - start=.....Parameters.LayerMeasureSplineStart; - amount = .....Parameters.LayerMeasureAmount; - AnyFunInterpol &SplineFun = .....Layer_L1.Data.AbdominalCavityPoints.Left.Parametric.Fun; - }; - }; - AnyRefNodeGroup Nodes_Below_Layer ={ - NodeAmount = ....Layer_L1.BaseSegAnterior.LayerConstraintNodes.Nodes_Above_Layer.NodeAmount; // number nodes in group - NodeName = strval(iarr(1, NodeAmount), "_node%04i"); - Node_sRels =....Layer_L1.BaseSegAnterior.LayerConstraintNodes.Nodes_Above_Layer.Node_sRels; - NodeDefaults.CreateMotionOutput.r = On; - }; - AnyRefNodeGroup Nodes_Above_Layer ={ - NodeAmount = ....Diaphragm.CavitySeg.LayerConstraintNodes.Nodes_Below_Layer.NodeAmount; // number nodes in group - NodeName = strval(iarr(1, NodeAmount), "_node%04i"); - Node_sRels =....Diaphragm.CavitySeg.LayerConstraintNodes.Nodes_Below_Layer.Node_sRels; - NodeDefaults.CreateMotionOutput.r = On; - }; - - }; - }; - #endif - AnySeg BaseSegInferior = { r0 = .CavitySeg.r0; Axes0 = .CavitySeg.Axes0; @@ -541,10 +497,10 @@ AnyFolder Abdominal={ AnyFolder &Data =...Trunk.Data.unscaled.ModelParameters.Abdominal.Layer_L1; AnyRefFrame &MomentProvider = .Layer_L2.BaseSegPosterior; BaseSegPosterior = {AnyFileVar OuterInertiaSTL = ...Data.unscaled.STL.FilenameLayer1Inertia;}; - #ifndef RECTUS_MUSCLE_LINE_CONTROL_RIBCAGE + #ifndef INTER_LAYER_L1RIBCAGE AnyFolder &layer_above = .Diaphragm.CavitySeg; #else - AnyFolder &layer_above = .Diaphragm.CavitySegAnterior; + AnyFolder &layer_above = .Inter_Layer_L1Ribcage.BaseSegAnterior; #endif AnyFolder &layer_below = .Layer_L2.BaseSegAnterior; AnyFolder &layer_above_inertia = .Diaphragm.CavitySeg; @@ -691,10 +647,10 @@ AnyFolder Abdominal={ AnyRefFrame &MomentProvider = .Layer_Pelvic4.LayerRef; BaseSegPosterior = {AnyFileVar OuterInertiaSTL = ...Data.unscaled.STL.FilenameLayer5Inertia;}; AnyFolder &layer_above = .Layer_L4.BaseSegAnterior; - #ifndef NEW_SEG_LINE_CONTROL_L5PELVIC + #ifndef INTER_LAYER_L5PELVIC AnyFolder &layer_below = .Layer_Pelvic1.BaseSegAnterior; #else - AnyFolder &layer_below = .Pelvis_New.BaseSegAnterior; + AnyFolder &layer_below = .Inter_Layer_PelvisL5.BaseSegAnterior; #endif AnyFolder &layer_above_inertia = .Layer_L4.CavitySegAnterior; @@ -798,11 +754,11 @@ AnyFolder Abdominal={ #endif }; -#ifdef RECTUS_MUSCLE_LINE_CONTROL_RIBCAGE -#include "InterLayer_L1Sternum.any" +#ifdef INTER_LAYER_L1RIBCAGE +#include "InterLayer_L1Ribcage.any" #endif -#ifdef NEW_SEG_LINE_CONTROL_L5PELVIC +#ifdef INTER_LAYER_L5PELVIC #include "InterLayer_PelvicL5.any" #endif #endif @@ -823,10 +779,10 @@ AnyFolder Abdominal={ AnyRefNode Layer1 = {ARel = .AnatomicalFrameTrunk.ARel;}; }; AnyRefNode &LayerRef = BaseSegPosterior.Layer1; - #ifndef NEW_SEG_LINE_CONTROL_L5PELVIC + #ifndef INTER_LAYER_L5PELVIC AnyFolder &layer_above = .Layer_L5; #else - AnyFolder &layer_above = .Pelvis_New; + AnyFolder &layer_above = .Inter_Layer_PelvisL5; #endif AnyFolder &layer_below = .Layer_Pelvic2; #ifdef PELVIC_LAYER_MOVES diff --git a/Body/AAUHuman/Trunk/Abdominal/InterLayer_L1Ribcage.any b/Body/AAUHuman/Trunk/Abdominal/InterLayer_L1Ribcage.any new file mode 100644 index 000000000..b09e91472 --- /dev/null +++ b/Body/AAUHuman/Trunk/Abdominal/InterLayer_L1Ribcage.any @@ -0,0 +1,96 @@ +AnyFolder Inter_Layer_L1Ribcage = { + + AnySeg BaseSegAnterior = { + r0 = ..Layer_L1.BaseSegAnterior.r0; + Axes0 = ..Layer_L1.BaseSegAnterior.Axes0; + + Mass = 0; + Jii = {0,0,0}; + AnyFolder &Data = ...Data.unscaled.ModelParameters.Abdominal; + AnyFunTransform3D &Scale = ...Scaling.GeometricalScaling.Lumbar.ScaleFunction; + + AnyRefNode LayerConstraintNodes = { + AnyFolder LayerPoints = { + PointGenerator points_right(fun=SplineFun, scale_fun=...Scale)={ + start=.....Parameters.LayerMeasureSplineStart; + amount = .....Parameters.LayerMeasureAmount; + AnyFunInterpol &SplineFun = .....Layer_L1.Data.AbdominalCavityPoints.Right.Parametric.Fun; + }; + PointGenerator points_left(fun=SplineFun, scale_fun=...Scale)={ + start=.....Parameters.LayerMeasureSplineStart; + amount = .....Parameters.LayerMeasureAmount; + AnyFunInterpol &SplineFun = .....Layer_L1.Data.AbdominalCavityPoints.Left.Parametric.Fun; + }; + }; + + AnyRefNodeGroup Nodes_Below_Layer ={ + NodeAmount = ....Layer_L1.BaseSegAnterior.LayerConstraintNodes.Nodes_Above_Layer.NodeAmount; // number nodes in group + NodeName = strval(iarr(1, NodeAmount), "_node%04i"); + Node_sRels =....Layer_L1.BaseSegAnterior.LayerConstraintNodes.Nodes_Above_Layer.Node_sRels; + NodeDefaults.CreateMotionOutput.r = On; + }; + AnyRefNodeGroup Nodes_Above_Layer ={ + NodeAmount = ....Diaphragm.CavitySeg.LayerConstraintNodes.Nodes_Below_Layer.NodeAmount; // number nodes in group + NodeName = strval(iarr(1, NodeAmount), "_node%04i"); + Node_sRels =....Diaphragm.CavitySeg.LayerConstraintNodes.Nodes_Below_Layer.Node_sRels; + NodeDefaults.CreateMotionOutput.r = On; + }; + + }; + }; + + AnyFolder &Data =...Trunk.Data.unscaled.ModelParameters.Abdominal.Layer_L1; + AnyFolder &layer_above = .Diaphragm.CavitySeg; + AnyFolder &layer_below = .Layer_L1.BaseSegAnterior; + AnyFolder &layer_above_inertia = .Diaphragm.CavitySeg; + AnyFolder &layer_below_inertia = .Layer_L1.CavitySegAnterior; + + BaseSegAnterior = { + AnyRefNode Origin = {}; + }; + + + AnyFolder LayerConstraints ={ + AnyVar K_top =1; + AnyVar K_bot =10; + + AnyIntArray MeasureOrganizer = {0}; + + #include "LayerConstraints.any" + }; + + + // BaseSegAnterior Constraints + AnyKinEq BaseSegAnteriorConstraint = + { + AnyKinMeasureOrg BaseSegAnteriorDOFMeasurs = { + AnyKinLinear lin = { + Ref = 0; + AnyRefNode &ref1 = ....Diaphragm.CavitySeg.LayerConstraintNodes.Nodes_Below_Layer._node0005; + AnyRefNode &ref2 = ...BaseSegAnterior.LayerConstraintNodes.Nodes_Above_Layer._node0005; + }; + AnyKinRotational rot = { + Type = RotAxesAngles; + AnyRefNode &ref1 = ....Diaphragm.CavitySeg.LayerConstraintNodes.Nodes_Below_Layer._node0005; + AnyRefNode &ref2 = ...BaseSegAnterior.LayerConstraintNodes.Nodes_Above_Layer._node0005; + }; + MeasureOrganizer = {1,2,3,4,5}; + }; + Reaction.Type = repmat (nDim, Off); + }; + + // Force connection for BaseSegAnterior + AnyReacForce BaseSegAnteriorKinetic = { + AnyKinLinear lin = { + Ref = 0; + AnyRefNode &ant = ...Diaphragm.CavitySeg.LayerConstraintNodes; + AnyRefNode &pos = ..BaseSegAnterior.LayerConstraintNodes; + }; + AnyKinRotational rot = { + Type = RotAxesAngles; + AnyRefNode &ant = ...Diaphragm.CavitySeg.LayerConstraintNodes; + AnyRefNode &pos = ..BaseSegAnterior.LayerConstraintNodes; + }; + }; +}; + diff --git a/Body/AAUHuman/Trunk/Abdominal/InterLayer_L1Sternum.any b/Body/AAUHuman/Trunk/Abdominal/InterLayer_L1Sternum.any deleted file mode 100644 index 76c5cf1c6..000000000 --- a/Body/AAUHuman/Trunk/Abdominal/InterLayer_L1Sternum.any +++ /dev/null @@ -1,72 +0,0 @@ -AnyFolder Layer_Sternum = { - // AnySeg &Segref = ...Trunk.Segments.T12Seg; - AnyFolder &Data =...Trunk.Data.unscaled.ModelParameters.Abdominal.Layer_L1; - // AnyRefFrame &MomentProvider = .Layer_L2.BaseSegPosterior; - // BaseSegPosterior = {AnyFileVar OuterInertiaSTL = ...Data.unscaled.STL.FilenameLayer1Inertia;}; - AnyFolder &layer_above = .Diaphragm.CavitySeg;//...Trunk.ThoracicCavity.Inertia.segment; //...Trunk.Segments.SternalBodySeg; //.Diaphragm.BaseSegAnterior; - AnyFolder &layer_below = .Layer_L1.BaseSegAnterior; - AnyFolder &layer_above_inertia = .Diaphragm.CavitySeg; - AnyFolder &layer_below_inertia = .Layer_L1.CavitySegAnterior; - AnySeg &BaseSegAnterior = Main.HumanModel.BodyModel.Trunk.Abdominal.Diaphragm.CavitySegAnterior; - - BaseSegAnterior = { - AnyRefNode Origin = {}; - }; - - // #include "Layer.any" - - AnyFolder LayerConstraints ={ - AnyVar K_top =1; - AnyVar K_bot =10; - - AnyIntArray MeasureOrganizer = {0}; - - #include "LayerConstraints.any" - }; -}; - - - -Main.HumanModel.BodyModel.Trunk.Abdominal.Diaphragm.Joints = { - -// // CavitySegAnterior Constraints - AnyKinEq CavitySegAnteriorConstraint = - { - AnyKinMeasureOrg CavitySegAnteriorDOFMeasurs = { - AnyKinLinear lin = { - Ref = 0; - AnyRefNode &ref1 = ....CavitySeg.LayerConstraintNodes.Nodes_Below_Layer._node0005; - AnyRefNode &ref2 = ....CavitySegAnterior.LayerConstraintNodes.Nodes_Above_Layer._node0005; - }; - AnyKinRotational rot = { - Type = RotAxesAngles; - AnyRefNode &ref1 = ....CavitySeg.LayerConstraintNodes.Nodes_Below_Layer._node0005; - AnyRefNode &ref2 = ....CavitySegAnterior.LayerConstraintNodes.Nodes_Above_Layer._node0005; - }; - MeasureOrganizer = {1,2,3,4,5}; - }; - Reaction.Type = repmat (nDim, Off); - }; - -// AnyKinMeasureOrg CavitySegAnteriorPrismaticDOF = { -// MeasureOrganizer = {0}; -// AnyKinLinear mes = { -// AnyRefNode &cav = ...CavitySeg.LayerConstraintNodes; -// AnyRefNode &cav_ant = ...CavitySegAnterior.LayerConstraintNodes; -// }; -// }; - - // Force connection for CavitySegAnterior - AnyReacForce CavitySegAnteriorKinetic = { - AnyKinLinear lin = { - Ref = 0; - AnyRefNode &ant = ...CavitySeg.LayerConstraintNodes; - AnyRefNode &pos = ...CavitySegAnterior.LayerConstraintNodes; - }; - AnyKinRotational rot = { - Type = RotAxesAngles; - AnyRefNode &ant = ...CavitySeg.LayerConstraintNodes; - AnyRefNode &pos = ...CavitySegAnterior.LayerConstraintNodes; - }; - }; - }; \ No newline at end of file diff --git a/Body/AAUHuman/Trunk/Abdominal/InterLayer_PelvicL5.any b/Body/AAUHuman/Trunk/Abdominal/InterLayer_PelvicL5.any index e93325283..9017d8ea7 100644 --- a/Body/AAUHuman/Trunk/Abdominal/InterLayer_PelvicL5.any +++ b/Body/AAUHuman/Trunk/Abdominal/InterLayer_PelvicL5.any @@ -1,69 +1,54 @@ -AnyFolder Pelvis_New = { - // AnySeg &Segref = ...Trunk.Segments.T12Seg; +AnyFolder Inter_Layer_PelvisL5 = { AnyFolder &Data =...Trunk.Data.unscaled.ModelParameters.Abdominal.Layer_L5; - // AnyRefFrame &MomentProvider = .Layer_L2.BaseSegPosterior; - // BaseSegPosterior = {AnyFileVar OuterInertiaSTL = ...Data.unscaled.STL.FilenameLayer1Inertia;}; - AnyFolder &layer_above = .Layer_L5.BaseSegAnterior;//...Trunk.ThoracicCavity.Inertia.segment; //...Trunk.Segments.SternalBodySeg; //.Diaphragm.BaseSegAnterior; + AnyFolder &layer_above = .Layer_L5.BaseSegAnterior; AnyFolder &layer_below = .Layer_Pelvic1.BaseSegAnterior; AnyFolder &layer_above_inertia = .Layer_L5.BaseSegAnterior; AnyFolder &layer_below_inertia = .Layer_Pelvic1.BaseSegAnterior; AnySeg BaseSegAnterior = { - r0 = ..Layer_L5.BaseSegAnterior.r0; - Axes0 = ..Layer_L5.BaseSegAnterior.Axes0; - Mass = 0; - Jii = {0,0,0}; -// AnyFolder &Data = ...Data.unscaled.ModelParameters.Abdominal; - AnyFunTransform3D &Scale = ...Scaling.GeometricalScaling.Lumbar.ScaleFunction; - - AnyRefNode LayerConstraintNodes = { - AnyFolder LayerPoints = { - PointGenerator points_right(fun=SplineFun, scale_fun=...Scale)={ - start=.....Parameters.LayerMeasureSplineStart; - amount = .....Parameters.LayerMeasureAmount; - AnyFunInterpol &SplineFun = .....Layer_L5.Data.AbdominalCavityPoints.Right.Parametric.Fun; - }; - PointGenerator points_left(fun=SplineFun, scale_fun=...Scale)={ - start=.....Parameters.LayerMeasureSplineStart; - amount = .....Parameters.LayerMeasureAmount; - AnyFunInterpol &SplineFun = .....Layer_L5.Data.AbdominalCavityPoints.Left.Parametric.Fun; - }; -// PointGenerator points_right(fun=SplineFun, scale_fun=...ScaleAndProjectToLayer)={ -// amount = .....Data.unscaled.ModelParameters.Abdominal.DiscretizationAnterior; -// AnyFunInterpol &SplineFun = ...Data.AbdominalCavityPoints.Right.Parametric.Fun; -// }; -// PointGenerator points_left(fun=SplineFun, scale_fun=...ScaleAndProjectToLayer)={ -// amount = .....Data.unscaled.ModelParameters.Abdominal.DiscretizationAnterior; -// AnyFunInterpol &SplineFun = ...Data.AbdominalCavityPoints.Left.Parametric.Fun; -// }; - - }; - - AnyRefNodeGroup Nodes_Below_Layer ={ - NodeAmount = ....Layer_Pelvic1.BaseSegAnterior.LayerConstraintNodes.Nodes_Above_Layer.NodeAmount; // number nodes in group - NodeName = strval(iarr(1, NodeAmount), "_node%04i"); - Node_sRels =....Layer_Pelvic1.BaseSegAnterior.LayerConstraintNodes.Nodes_Above_Layer.Node_sRels; - NodeDefaults.CreateMotionOutput.r = On; - }; - AnyRefNodeGroup Nodes_Above_Layer ={ - NodeAmount = ....Layer_L5.BaseSegAnterior.LayerConstraintNodes.Nodes_Below_Layer.NodeAmount; // number nodes in group - NodeName = strval(iarr(1, NodeAmount), "_node%04i"); - Node_sRels =....Layer_L5.BaseSegAnterior.LayerConstraintNodes.Nodes_Below_Layer.Node_sRels; - NodeDefaults.CreateMotionOutput.r = On; + r0 = ..Layer_L5.BaseSegAnterior.r0; + Axes0 = ..Layer_L5.BaseSegAnterior.Axes0; + Mass = 0; + Jii = {0,0,0}; + AnyFunTransform3D &Scale = ...Scaling.GeometricalScaling.Lumbar.ScaleFunction; + + AnyRefNode LayerConstraintNodes = { + AnyFolder LayerPoints = { + PointGenerator points_right(fun=SplineFun, scale_fun=...Scale)={ + start=.....Parameters.LayerMeasureSplineStart; + amount = .....Parameters.LayerMeasureAmount; + AnyFunInterpol &SplineFun = .....Layer_L5.Data.AbdominalCavityPoints.Right.Parametric.Fun; }; - + PointGenerator points_left(fun=SplineFun, scale_fun=...Scale)={ + start=.....Parameters.LayerMeasureSplineStart; + amount = .....Parameters.LayerMeasureAmount; + AnyFunInterpol &SplineFun = .....Layer_L5.Data.AbdominalCavityPoints.Left.Parametric.Fun; + }; + }; + + AnyRefNodeGroup Nodes_Below_Layer ={ + NodeAmount = ....Layer_Pelvic1.BaseSegAnterior.LayerConstraintNodes.Nodes_Above_Layer.NodeAmount; // number nodes in group + NodeName = strval(iarr(1, NodeAmount), "_node%04i"); + Node_sRels =....Layer_Pelvic1.BaseSegAnterior.LayerConstraintNodes.Nodes_Above_Layer.Node_sRels; + NodeDefaults.CreateMotionOutput.r = On; }; + AnyRefNodeGroup Nodes_Above_Layer ={ + NodeAmount = ....Layer_L5.BaseSegAnterior.LayerConstraintNodes.Nodes_Below_Layer.NodeAmount; // number nodes in group + NodeName = strval(iarr(1, NodeAmount), "_node%04i"); + Node_sRels =....Layer_L5.BaseSegAnterior.LayerConstraintNodes.Nodes_Below_Layer.Node_sRels; + NodeDefaults.CreateMotionOutput.r = On; + }; + }; - + }; + BaseSegAnterior = { AnyRefNode Origin = {}; - - + + }; - // #include "Layer.any" - AnyFolder LayerConstraints ={ AnyVar K_top =10; AnyVar K_bot =1; @@ -72,51 +57,40 @@ AnyFolder Pelvis_New = { #include "LayerConstraints.any" }; -}; - - - -Pelvis_New = { - AnyKinEq BaseSegAnterior_Constraint = - { - AnyKinMeasureOrg Measurs = { - AnyKinLinear lin = { - Ref = 0; - AnyRefNode &ref1 = ....Layer_Pelvic1.BaseSegAnterior.LayerConstraintNodes.Nodes_Above_Layer._node0005; - AnyRefNode &ref2 = ...BaseSegAnterior.LayerConstraintNodes.Nodes_Below_Layer._node0005; - }; - AnyKinRotational rot = { - Type = RotAxesAngles; - AnyRefNode &ref1 = ....Layer_Pelvic1.BaseSegAnterior.LayerConstraintNodes.Nodes_Above_Layer._node0005; - AnyRefNode &ref2 = ...BaseSegAnterior.LayerConstraintNodes.Nodes_Below_Layer._node0005; - }; - MeasureOrganizer = {1,2,3,4,5}; - }; - Reaction.Type = repmat (nDim, Off); + + + AnyKinEq BaseSegAnterior_Constraint = + { + AnyKinMeasureOrg Measurs = { + AnyKinLinear lin = { + Ref = 0; + AnyRefNode &ref1 = ....Layer_Pelvic1.BaseSegAnterior.LayerConstraintNodes.Nodes_Above_Layer._node0005; + AnyRefNode &ref2 = ...BaseSegAnterior.LayerConstraintNodes.Nodes_Below_Layer._node0005; }; - -// AnyKinMeasureOrg CavitySegAnteriorPrismaticDOF = { -// MeasureOrganizer = {0}; -// AnyKinLinear mes = { -// AnyRefNode &cav = ...CavitySeg.LayerConstraintNodes; -// AnyRefNode &cav_ant = ...CavitySegAnterior.LayerConstraintNodes; -// }; -// }; - - // Force connection for CavitySegAnterior - AnyReacForce CavitySegAnteriorKinetic = { - AnyKinLinear lin = { - Ref = 0; - AnyRefNode &ant = ...Layer_Pelvic1.BaseSegAnterior.LayerConstraintNodes; - AnyRefNode &pos = ..BaseSegAnterior.LayerConstraintNodes; - }; - AnyKinRotational rot = { - Type = RotAxesAngles; - AnyRefNode &ant = ...Layer_Pelvic1.BaseSegAnterior.LayerConstraintNodes; - AnyRefNode &pos = ..BaseSegAnterior.LayerConstraintNodes; - }; + AnyKinRotational rot = { + Type = RotAxesAngles; + AnyRefNode &ref1 = ....Layer_Pelvic1.BaseSegAnterior.LayerConstraintNodes.Nodes_Above_Layer._node0005; + AnyRefNode &ref2 = ...BaseSegAnterior.LayerConstraintNodes.Nodes_Below_Layer._node0005; }; + MeasureOrganizer = {1,2,3,4,5}; }; + Reaction.Type = repmat (nDim, Off); + }; + + // Force connection for BaseSegAnterior + AnyReacForce BaseSegAnteriorKinetic = { + AnyKinLinear lin = { + Ref = 0; + AnyRefNode &ant = ...Layer_Pelvic1.BaseSegAnterior.LayerConstraintNodes; + AnyRefNode &pos = ..BaseSegAnterior.LayerConstraintNodes; + }; + AnyKinRotational rot = { + Type = RotAxesAngles; + AnyRefNode &ant = ...Layer_Pelvic1.BaseSegAnterior.LayerConstraintNodes; + AnyRefNode &pos = ..BaseSegAnterior.LayerConstraintNodes; + }; + }; +}; From 2efee5c1a0fde130168fb4a75ea18407876255e2 Mon Sep 17 00:00:00 2001 From: hs Date: Wed, 19 Jun 2024 14:27:50 +0200 Subject: [PATCH 18/31] Refine box lifting posture for ab pressure test --- .../Examples/BoxLiftFromGround/JointsAndDrivers.any | 2 +- Application/Examples/BoxLiftFromGround/Mannequin.any | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Application/Examples/BoxLiftFromGround/JointsAndDrivers.any b/Application/Examples/BoxLiftFromGround/JointsAndDrivers.any index 41a94cd96..88c26191e 100644 --- a/Application/Examples/BoxLiftFromGround/JointsAndDrivers.any +++ b/Application/Examples/BoxLiftFromGround/JointsAndDrivers.any @@ -228,7 +228,7 @@ AnyKinEqSimpleDriver LToeGroundConstraint ={ AnyKinEqSimpleDriver CoMDriver = { AnyKinCoM CoM = { AnyFolder &Body = Main.Model.BodyModel; - AnyFolder &Environment = Main.Model.EnvironmentModel; +// AnyFolder &Environment = Main.Model.EnvironmentModel; }; MeasureOrganizer = {0,2}; // Only the x and z directions DriverPos = {0,0}; diff --git a/Application/Examples/BoxLiftFromGround/Mannequin.any b/Application/Examples/BoxLiftFromGround/Mannequin.any index 9d1074a86..5d387e649 100644 --- a/Application/Examples/BoxLiftFromGround/Mannequin.any +++ b/Application/Examples/BoxLiftFromGround/Mannequin.any @@ -10,11 +10,11 @@ Main.HumanModel.Mannequin = { //This controls the rotation of the pelvis wrt. to the global reference frame PelvisRotX=0; PelvisRotY=0; - PelvisRotZ=-19; + PelvisRotZ=-25; // These variables control the rotation of the thorax wrt the // pelvis - PelvisThoraxExtension=-64; + PelvisThoraxExtension=-60; PelvisThoraxLateralBending=0; PelvisThoraxRotation=0; @@ -27,7 +27,7 @@ Main.HumanModel.Mannequin = { SternoClavicularProtraction=-23; //This value is not used for initial position SternoClavicularElevation=11.5; //This value is not used for initial position - GlenohumeralFlexion =68; + GlenohumeralFlexion =75; GlenohumeralAbduction = 5; GlenohumeralExternalRotation = 0; @@ -41,7 +41,7 @@ Main.HumanModel.Mannequin = { HipAbduction = 12; HipExternalRotation = 0.0; - KneeFlexion = 106; + KneeFlexion = 115; AnklePlantarFlexion =30; SubTalarEversion =0.0; From a69f76033cd912a6521ff36d13843a57bef8c255 Mon Sep 17 00:00:00 2001 From: hs Date: Tue, 3 Sep 2024 11:31:25 +0200 Subject: [PATCH 19/31] Fix error in pull request --- .../Trunk/Abdominal/InterLayer_L1Ribcage.any | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/Body/AAUHuman/Trunk/Abdominal/InterLayer_L1Ribcage.any b/Body/AAUHuman/Trunk/Abdominal/InterLayer_L1Ribcage.any index b09e91472..e2e7b7470 100644 --- a/Body/AAUHuman/Trunk/Abdominal/InterLayer_L1Ribcage.any +++ b/Body/AAUHuman/Trunk/Abdominal/InterLayer_L1Ribcage.any @@ -35,8 +35,8 @@ AnyFolder Inter_Layer_L1Ribcage = { Node_sRels =....Diaphragm.CavitySeg.LayerConstraintNodes.Nodes_Below_Layer.Node_sRels; NodeDefaults.CreateMotionOutput.r = On; }; - }; + AnyRefNode Xiphoid_Diaphragm = {sRel = ...Diaphragm.CavitySeg.Xiphoid_Diaphragm.sRel;}; }; AnyFolder &Data =...Trunk.Data.unscaled.ModelParameters.Abdominal.Layer_L1; @@ -65,14 +65,14 @@ AnyFolder Inter_Layer_L1Ribcage = { { AnyKinMeasureOrg BaseSegAnteriorDOFMeasurs = { AnyKinLinear lin = { - Ref = 0; - AnyRefNode &ref1 = ....Diaphragm.CavitySeg.LayerConstraintNodes.Nodes_Below_Layer._node0005; - AnyRefNode &ref2 = ...BaseSegAnterior.LayerConstraintNodes.Nodes_Above_Layer._node0005; + Ref = 0; + AnyRefNode &ref1 = ....Diaphragm.CavitySeg.Xiphoid_Diaphragm; + AnyRefNode &ref2 = ...BaseSegAnterior.Xiphoid_Diaphragm; }; AnyKinRotational rot = { Type = RotAxesAngles; - AnyRefNode &ref1 = ....Diaphragm.CavitySeg.LayerConstraintNodes.Nodes_Below_Layer._node0005; - AnyRefNode &ref2 = ...BaseSegAnterior.LayerConstraintNodes.Nodes_Above_Layer._node0005; + AnyRefNode &ref1 = ....Diaphragm.CavitySeg.Xiphoid_Diaphragm; + AnyRefNode &ref2 = ...BaseSegAnterior.Xiphoid_Diaphragm; }; MeasureOrganizer = {1,2,3,4,5}; }; @@ -82,15 +82,15 @@ AnyFolder Inter_Layer_L1Ribcage = { // Force connection for BaseSegAnterior AnyReacForce BaseSegAnteriorKinetic = { AnyKinLinear lin = { - Ref = 0; - AnyRefNode &ant = ...Diaphragm.CavitySeg.LayerConstraintNodes; - AnyRefNode &pos = ..BaseSegAnterior.LayerConstraintNodes; + Ref = 0; + AnyRefNode &ref1 = ...Diaphragm.CavitySeg.Xiphoid_Diaphragm; + AnyRefNode &ref2 = ..BaseSegAnterior.Xiphoid_Diaphragm; }; AnyKinRotational rot = { Type = RotAxesAngles; - AnyRefNode &ant = ...Diaphragm.CavitySeg.LayerConstraintNodes; - AnyRefNode &pos = ..BaseSegAnterior.LayerConstraintNodes; + AnyRefNode &ref1 = ...Diaphragm.CavitySeg.Xiphoid_Diaphragm; + AnyRefNode &ref2 = ..BaseSegAnterior.Xiphoid_Diaphragm; }; }; -}; +}; // End of Inter_Layer_L1Ribcage From e6d29bc6c2fc1d579f86fca82bac34691a02cb8b Mon Sep 17 00:00:00 2001 From: hs Date: Tue, 3 Sep 2024 12:42:34 +0200 Subject: [PATCH 20/31] fix assymetric nodes used in constrains --- Body/AAUHuman/Trunk/Abdominal/InterLayer_PelvicL5.any | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Body/AAUHuman/Trunk/Abdominal/InterLayer_PelvicL5.any b/Body/AAUHuman/Trunk/Abdominal/InterLayer_PelvicL5.any index 9017d8ea7..750f9d084 100644 --- a/Body/AAUHuman/Trunk/Abdominal/InterLayer_PelvicL5.any +++ b/Body/AAUHuman/Trunk/Abdominal/InterLayer_PelvicL5.any @@ -64,13 +64,13 @@ AnyFolder Inter_Layer_PelvisL5 = { AnyKinMeasureOrg Measurs = { AnyKinLinear lin = { Ref = 0; - AnyRefNode &ref1 = ....Layer_Pelvic1.BaseSegAnterior.LayerConstraintNodes.Nodes_Above_Layer._node0005; - AnyRefNode &ref2 = ...BaseSegAnterior.LayerConstraintNodes.Nodes_Below_Layer._node0005; + AnyRefNode &ref1 = ....Layer_Pelvic1.BaseSegAnterior.LayerConstraintNodes.Nodes_Above_Layer; + AnyRefNode &ref2 = ...BaseSegAnterior.LayerConstraintNodes.Nodes_Below_Layer; }; AnyKinRotational rot = { Type = RotAxesAngles; - AnyRefNode &ref1 = ....Layer_Pelvic1.BaseSegAnterior.LayerConstraintNodes.Nodes_Above_Layer._node0005; - AnyRefNode &ref2 = ...BaseSegAnterior.LayerConstraintNodes.Nodes_Below_Layer._node0005; + AnyRefNode &ref1 = ....Layer_Pelvic1.BaseSegAnterior.LayerConstraintNodes.Nodes_Above_Layer; + AnyRefNode &ref2 = ...BaseSegAnterior.LayerConstraintNodes.Nodes_Below_Layer; }; MeasureOrganizer = {1,2,3,4,5}; }; From b9775dbf1e0fefd0ec9f3a699d21b6d23da84519 Mon Sep 17 00:00:00 2001 From: hs Date: Tue, 3 Sep 2024 12:54:53 +0200 Subject: [PATCH 21/31] Same LayerMomentReactionsNonNegative and NonPositive strength to avoid mistakes --- Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any b/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any index 9bc3b1d15..c79efc002 100644 --- a/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any +++ b/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any @@ -1039,7 +1039,7 @@ AnyFolder Abdominal={ AnyRecruitedActuator LayerMomentReactionsNonPositive = { AnyKinMeasureOrg &Measures = .LayerMomentReactionsNonNegative.Measures; Type = NonPositive; - Strength = 10; + Strength = .LayerMomentReactionsNonNegative.Strength; SET_DEFAULT_ACTUATOR_VOLUME; }; From 27eb5869a5e2054a4cf04376a1569a71706d3731 Mon Sep 17 00:00:00 2001 From: hs Date: Tue, 3 Sep 2024 14:03:05 +0200 Subject: [PATCH 22/31] Weight in layer constraints updated --- Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any b/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any index c79efc002..7bef1c88b 100644 --- a/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any +++ b/Body/AAUHuman/Trunk/Abdominal/AbdominalPressureModel.any @@ -509,8 +509,8 @@ AnyFolder Abdominal={ #include "Layer.any" AnyFolder LayerConstraints ={ - AnyVar K_top =1; - AnyVar K_bot =5; + AnyVar K_top =2; + AnyVar K_bot =1; #ifdef RECTUS_MUSCLE_LINE_CONTROL @@ -657,7 +657,7 @@ AnyFolder Abdominal={ AnyFolder &layer_below_inertia = .Layer_Pelvic1.CavitySegAnterior; #include "Layer.any" AnyFolder LayerConstraints ={ - AnyVar K_top =5; + AnyVar K_top =1; AnyVar K_bot =1; #ifdef RECTUS_MUSCLE_LINE_CONTROL @@ -767,7 +767,7 @@ AnyFolder Abdominal={ AnyFolder Layer_Pelvic1 = { - AnyVar K_top =5; + AnyVar K_top =1; AnyVar K_bot =1; AnyFolder &Data = ...Trunk.Data.unscaled.ModelParameters.Abdominal.Layer_L5; From 27889addf526d8fde601ebb61d8a17470d694efc Mon Sep 17 00:00:00 2001 From: hs Date: Wed, 4 Sep 2024 10:15:46 +0200 Subject: [PATCH 23/31] Change naming: Another mesh type for wrapping obliq on ellipsoids: ELLIPSOID_MIRRORED_POSTERIOR --- Body/AAUHuman/Trunk/CreateMeshForWrapping.any | 340 +++++++++--------- .../Trunk/TrunkData1.1/PointOnLineCal.any | 2 +- 2 files changed, 162 insertions(+), 180 deletions(-) diff --git a/Body/AAUHuman/Trunk/CreateMeshForWrapping.any b/Body/AAUHuman/Trunk/CreateMeshForWrapping.any index a18b969d3..e05bc2ca8 100644 --- a/Body/AAUHuman/Trunk/CreateMeshForWrapping.any +++ b/Body/AAUHuman/Trunk/CreateMeshForWrapping.any @@ -13,29 +13,25 @@ AnyFunTransform3DLin ScaleFunction ={ #ifndef MESH_TYPE -#define MESH_TYPE "ELLIPSOID_SIDE" +#define MESH_TYPE "ELLIPSOID_MIRRORED_POSTERIOR" #endif -#if BM_TRUNK_EXPERIMENTAL_RECTUS_ABDOMINIS == ON -AnyRefNode EllipsoidPoint2E = {sRel=.ScaleFunction(....Data.unscaled.ModelParameters.Abdominal._LAYER_.AbdominalCavityPoints.Right.EllipsoidCalculation.Cal.Point2);}; -AnyRefNode EllipsoidPoint1E = {sRel=.ScaleFunction(....Data.unscaled.ModelParameters.Abdominal._LAYER_.AbdominalCavityPoints.Right.EllipsoidCalculation.Cal.Point1);}; -AnyRefNode EllipsoidCenterE = {sRel=.ScaleFunction(....Data.unscaled.ModelParameters.Abdominal._LAYER_.AbdominalCavityPoints.Right.EllipsoidCalculation.Cal.Center);}; - -AnySurfCylinder mesh = { - sRel = .EllipsoidCenterE.sRel+{0,0,-0.5*Length}; - Radius = vnorm(.EllipsoidPoint2E.sRel-.EllipsoidCenterE.sRel); -Length= 2* vnorm(.EllipsoidPoint1E.sRel-.EllipsoidCenterE.sRel); - - //viewSurface ={ - // Visible =On; - //}; -}; - - +//#if BM_TRUNK_EXPERIMENTAL_RECTUS_ABDOMINIS == ON +//AnyRefNode EllipsoidPoint2E = {sRel=.ScaleFunction(....Data.unscaled.ModelParameters.Abdominal._LAYER_.AbdominalCavityPoints.Right.EllipsoidCalculation.Cal.Point2);}; +//AnyRefNode EllipsoidPoint1E = {sRel=.ScaleFunction(....Data.unscaled.ModelParameters.Abdominal._LAYER_.AbdominalCavityPoints.Right.EllipsoidCalculation.Cal.Point1);}; +//AnyRefNode EllipsoidCenterE = {sRel=.ScaleFunction(....Data.unscaled.ModelParameters.Abdominal._LAYER_.AbdominalCavityPoints.Right.EllipsoidCalculation.Cal.Center);}; +//AnySurfCylinder mesh = { +// sRel = .EllipsoidCenterE.sRel+{0,0,-0.5*Length}; +// Radius = vnorm(.EllipsoidPoint2E.sRel-.EllipsoidCenterE.sRel); +//Length= 2* vnorm(.EllipsoidPoint1E.sRel-.EllipsoidCenterE.sRel); +// +// //viewSurface ={ +// // Visible =On; +// //}; +//}; - -#endif +//#endif @@ -54,10 +50,6 @@ AnySurfEllipsoid mesh = { }; }; - - - - #endif #if MESH_TYPE == "ELLIPSOID_SIDE" @@ -76,159 +68,6 @@ AnySurfEllipsoid mesh_Full = { }; - - - - - - - - - - AnyFloat FrontNodes_sRels = { - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn12.sRel, - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn11.sRel, - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn10.sRel, - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn09.sRel, - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn08.sRel, - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn07.sRel, - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn06.sRel, - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn05.sRel, - - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn12.sRel, - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn11.sRel, - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn10.sRel, - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn09.sRel, - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn08.sRel, - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn07.sRel, - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn06.sRel, - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn05.sRel, - } ; - AnyFloat FrontNodes_mirror_sRels = { - {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn12.sRel[0], - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn12.sRel[1], - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn12.sRel[2], -}, -{2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn11.sRel[0], - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn11.sRel[1], - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn11.sRel[2], -}, - {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn10.sRel[0], - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn10.sRel[1], - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn10.sRel[2], -}, - {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn09.sRel[0], - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn09.sRel[1], - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn09.sRel[2], -}, - {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn08.sRel[0], - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn08.sRel[1], - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn08.sRel[2], -}, - {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn07.sRel[0], - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn07.sRel[1], - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn07.sRel[2], -}, - {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn06.sRel[0], - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn06.sRel[1], - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn06.sRel[2], -}, - {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn05.sRel[0], - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn05.sRel[1], - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn05.sRel[2], -}, - - {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn12.sRel[0], - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn12.sRel[1], - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn12.sRel[2], -}, - {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn11.sRel[0], - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn11.sRel[1], - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn11.sRel[2], -}, - {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn10.sRel[0], - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn10.sRel[1], - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn10.sRel[2], -}, - {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn09.sRel[0], - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn09.sRel[1], - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn09.sRel[2], -}, - {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn08.sRel[0], - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn08.sRel[1], - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn08.sRel[2], -}, - {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn07.sRel[0], - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn07.sRel[1], - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn07.sRel[2], -}, - {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn06.sRel[0], - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn06.sRel[1], - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn06.sRel[2], -}, - {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn05.sRel[0], - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn05.sRel[1], - Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn05.sRel[2], -}, -} ; - -AnyRefNodeGroup FrontNodes = { -NodeAmount =16; -Node_sRels = .FrontNodes_sRels; -}; -AnyRefNodeGroup FrontNodes_mirror = { -NodeAmount =16; -Node_sRels = .FrontNodes_mirror_sRels; -}; - - - -AnySurfEllipsoidFit mesh3 = -{ - viewRefFrame.Visible = Off; - viewNodes.Visible = Off; - viewSurface.Visible = Off; - FixedAxes = On; - //AxisSymmetry = Off; - //Spherical = Off; - Axis = y; - -// AnyFloat Center = mean(AllPoints'); -AnyFloat ExtraPoints =reshape(arrcat( -0.5*(Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel+ -Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Left.nn01.sRel)+ -{0,0.03,0}, -0.5*(Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel+ -Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Left.nn01.sRel)+ -{0,-0.03,0}),{2,3}); -// Points=arrcat(.anterior_l_mirror.Node_sRels, -// .anterior_r_mirror.Node_sRels, -// .anterior_l.Node_sRels, -// .anterior_r.Node_sRels, -// ExtraPoints); - Points = arrcat( .FrontNodes_mirror.Node_sRels, .FrontNodes.Node_sRels, ExtraPoints ); - -}; - -// AnyDrawPointCloud drw = {Points=.mesh3.Points; PointStyle.Size=0.01; Points3D = On;}; - - AnyRefNode Right ={ AnyRefNode Center = {sRel=..ScaleFunction(.....Data.unscaled.ModelParameters.Abdominal._LAYER_.AbdominalCavityPoints.Right.EllipsoidCalculation.Cal.Center);}; AnyRefNode EP1 = {sRel=..ScaleFunction(.....Data.unscaled.ModelParameters.Abdominal._LAYER_.AbdominalCavityPoints.Right.EllipsoidCalculation.Cal.Point1);}; @@ -282,9 +121,6 @@ AnyRefNode Left ={ }; }; - - - #endif @@ -2597,4 +2433,150 @@ AnySurfTriMesh mesh = { }; #endif +#if MESH_TYPE == "ELLIPSOID_MIRRORED_POSTERIOR" + + AnyFloat FrontNodes_sRels = { + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn12.sRel, + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn11.sRel, + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn10.sRel, + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn09.sRel, + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn08.sRel, + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn07.sRel, + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn06.sRel, + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn05.sRel, + + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn12.sRel, + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn11.sRel, + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn10.sRel, + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn09.sRel, + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn08.sRel, + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn07.sRel, + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn06.sRel, + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn05.sRel, + } ; + AnyFloat FrontNodes_mirror_sRels = { + {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn12.sRel[0], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn12.sRel[1], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn12.sRel[2], +}, +{2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn11.sRel[0], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn11.sRel[1], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn11.sRel[2], +}, + {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn10.sRel[0], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn10.sRel[1], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn10.sRel[2], +}, + {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn09.sRel[0], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn09.sRel[1], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn09.sRel[2], +}, + {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn08.sRel[0], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn08.sRel[1], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn08.sRel[2], +}, + {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn07.sRel[0], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn07.sRel[1], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn07.sRel[2], +}, + {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn06.sRel[0], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn06.sRel[1], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn06.sRel[2], +}, + {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn05.sRel[0], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn05.sRel[1], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Right.nn05.sRel[2], +}, + + {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn12.sRel[0], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn12.sRel[1], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn12.sRel[2], +}, + {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn11.sRel[0], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn11.sRel[1], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn11.sRel[2], +}, + {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn10.sRel[0], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn10.sRel[1], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn10.sRel[2], +}, + {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn09.sRel[0], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn09.sRel[1], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn09.sRel[2], +}, + {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn08.sRel[0], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn08.sRel[1], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn08.sRel[2], +}, + {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn07.sRel[0], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn07.sRel[1], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn07.sRel[2], +}, + {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn06.sRel[0], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn06.sRel[1], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn06.sRel[2], +}, + {2*Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel[0]- + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn05.sRel[0], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn05.sRel[1], + Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegAnterior.VolumePoints.Left.nn05.sRel[2], +}, +} ; + +AnyRefNodeGroup FrontNodes = { +NodeAmount =16; +Node_sRels = .FrontNodes_sRels; +}; +AnyRefNodeGroup FrontNodes_mirror = { +NodeAmount =16; +Node_sRels = .FrontNodes_mirror_sRels; +}; + + + +AnySurfEllipsoidFit mesh3 = +{ + viewRefFrame.Visible = Off; + viewNodes.Visible = Off; + viewSurface.Visible = Off; + FixedAxes = On; + //AxisSymmetry = Off; + //Spherical = Off; + Axis = y; + +// AnyFloat Center = mean(AllPoints'); +AnyFloat ExtraPoints =reshape(arrcat( +0.5*(Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel+ +Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Left.nn01.sRel)+ +{0,0.03,0}, +0.5*(Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Right.nn01.sRel+ +Main.HumanModel.BodyModel.Trunk.Abdominal._LAYER_.BaseSegPosterior.VolumePoints.Left.nn01.sRel)+ +{0,-0.03,0}),{2,3}); +// Points=arrcat(.anterior_l_mirror.Node_sRels, +// .anterior_r_mirror.Node_sRels, +// .anterior_l.Node_sRels, +// .anterior_r.Node_sRels, +// ExtraPoints); + Points = arrcat( .FrontNodes_mirror.Node_sRels, .FrontNodes.Node_sRels, ExtraPoints ); + +}; + +// AnyDrawPointCloud drw = {Points=.mesh3.Points; PointStyle.Size=0.01; Points3D = On;}; + +#endif diff --git a/Body/AAUHuman/Trunk/TrunkData1.1/PointOnLineCal.any b/Body/AAUHuman/Trunk/TrunkData1.1/PointOnLineCal.any index 566f724e7..f43386cb7 100644 --- a/Body/AAUHuman/Trunk/TrunkData1.1/PointOnLineCal.any +++ b/Body/AAUHuman/Trunk/TrunkData1.1/PointOnLineCal.any @@ -28,7 +28,7 @@ AnyFolder Cal ={ AnyFloat Angles = farr(-pi/2,pi/7,8); AnyFloat CalculatedPoints = {RadiusOneEllipsoid[0]*sin(Angles)+Center[0],._y*ones(1,8)[0],RadiusOneEllipsoid[2]*cos(Angles)+Center[2]}' ; - + // AnyFixedRefFrame Visual_Debug ={ // // From 53de6d7a5b492df11049aa9532f7565f69f9e304 Mon Sep 17 00:00:00 2001 From: hs Date: Wed, 4 Sep 2024 10:43:15 +0200 Subject: [PATCH 24/31] Lumbar Ligament insertion improvement --- .../Trunk/TrunkData1.1/LumbarNodes.any | 443 ++++++++++++------ .../Trunk/TrunkData1.1/ThoracicNodes.any | 54 ++- 2 files changed, 352 insertions(+), 145 deletions(-) diff --git a/Body/AAUHuman/Trunk/TrunkData1.1/LumbarNodes.any b/Body/AAUHuman/Trunk/TrunkData1.1/LumbarNodes.any index def59c107..e324587ee 100644 --- a/Body/AAUHuman/Trunk/TrunkData1.1/LumbarNodes.any +++ b/Body/AAUHuman/Trunk/TrunkData1.1/LumbarNodes.any @@ -1080,31 +1080,32 @@ L1 = { }; AnyMatrix InterSpinous_inferior_points = { - {0.00075085834, 0.1059224, 0.0}, // 0 - {0.0040974268, 0.10974158, 0.0}, // 1 - {0.0065537253, 0.11565188, 0.0} // 2 - }; - AnyMatrix SupraSpinous_inferior_points = { - {-0.01303662, 0.10169046, 0.0}, // 0 - {-0.0085899085, 0.10050077, 0.0}, // 1 - {-0.0039089601, 0.10219801, 0.0} // 2 + {-0.007475, 0.100604, 0.0}, + {-0.003800, 0.102218, 0.0}, + {-0.000644, 0.104679, 0.0}, }; AnyMatrix InterSpinous_superior_points = { - {-0.0073325844, 0.12098291, 0.0}, // 4 - {-0.0064157057, 0.12278888, 0.0}, // 5 - {-0.0054770452, 0.12473725, 0.0}, // 6 - {-0.004042217, 0.12748645, 0.0}, // 7 - {-0.0024527158, 0.12994039, 0.0} // 8 + +{-0.007132, 0.121145, 0.0}, +{-0.005593, 0.124462, 0.0}, +{-0.002815, 0.129300, 0.0}, +}; + AnyMatrix SupraSpinous_inferior_points = { + {-0.015987, 0.105321, 0.0}, + {-0.013163, 0.101991, 0.0}, + {-0.009921, 0.100612, 0.0}, }; AnyMatrix SupraSpinous_superior_points = { - {-0.013869313, 0.11526543, 0.0}, // 0 - {-0.01169091, 0.11638001, 0.0}, // 1 - {-0.0096206469, 0.11740985, 0.0}, // 2 - {-0.0083073806, 0.11906765, 0.0} // 3 - }; +{-0.015437, 0.103828, 0.0}, +{-0.015783, 0.109454, 0.0}, +{-0.013965, 0.114495, 0.0}, +{-0.009360, 0.117751, 0.0}, +}; + Right = { // ligamenta flavia (right/left) + #ifdef OLD_FLAVUM AnyMatrix Flavum_inferior_points = { {0.0097889742, 0.11036516, 0.0088975653}, // 0 {0.0083234906, 0.11170295, 0.0061299442}, // 1 @@ -1112,6 +1113,16 @@ L1 = { {0.0039557745, 0.10894828, 0.0019159636}, // 3 {0.003133039, 0.10830244, 0.00040198895} // 4 }; + #else + + AnyMatrix Flavum_inferior_points = { + {0.011831, 0.116989, 0.008524}, + {0.011078, 0.115957, 0.006663}, + {0.009435, 0.114380, 0.004823}, + {0.006911, 0.112834, 0.002476}, + {0.005296, 0.112169, 0.000248}, + }; + #endif AnyMatrix Flavum_superior_points = { {0.001752601, 0.14173491, 0.0098858634}, // 5 {0.0017350145, 0.13798605, 0.0086812088}, // 6 @@ -1131,22 +1142,38 @@ L1 = { {0.0039770845, 0.1401622, 0.029544018}, // 6 {0.0043605329, 0.1407138, 0.028420486} // 7 }; + AnyMatrix FacetCapsule_inferior_points = { - {0.0062903604, 0.10960628, 0.014088469}, // 1 - {0.012034792, 0.11312172, 0.010295847}, // 8 - {0.010257226, 0.11388882, 0.013566245}, // 4 - {0.0062547289, 0.11312384, 0.015540384}, // 3 - {0.0100058, 0.10944334, 0.010424639} // 0 +{0.005338, 0.119949, 0.015060}, +{0.002261, 0.118638, 0.015964}, +{0.000769, 0.117068, 0.012732}, +{-0.000930, 0.114427, 0.009615}, +{0.000489, 0.111235, 0.007566}, +{0.003699, 0.110130, 0.004154}, +{0.007257, 0.113053, 0.002869}, +{0.009990, 0.117536, 0.004797}, +{0.011186, 0.121144, 0.007838}, +{0.011097, 0.121924, 0.011680}, +{0.007730, 0.121286, 0.013723}, }; + + + AnyMatrix FacetCapsule_superior_points = { - {0.0018189709, 0.14203461, 0.0098246457}, // 6 - {0.0015691576, 0.14472318, 0.011422489}, // 5 - {-0.0012780795, 0.14490192, 0.015266803}, // 4 - {-0.0057498184, 0.14385259, 0.017361287}, // 3 - {-0.0081201447, 0.14009267, 0.016278477}, // 2 - {-0.0040718387, 0.13916725, 0.014472999}, // 1 - {0.00077233877, 0.13928595, 0.011501366} // 0 - }; +{0.001896, 0.145346, 0.018682}, +{-0.001777, 0.142509, 0.020915}, +{-0.004541, 0.139056, 0.020962}, +{-0.002967, 0.135031, 0.019363}, +{0.000197, 0.132933, 0.014657}, +{-0.000056, 0.130250, 0.010757}, +{-0.000251, 0.132532, 0.006386}, +{0.002121, 0.135726, 0.005101}, +{0.006069, 0.140535, 0.008245}, +{0.004960, 0.145082, 0.009162}, +{0.004938, 0.147686, 0.012732}, +{0.003699, 0.146855, 0.016048}, + }; + }; Left = { @@ -1205,28 +1232,30 @@ L2 = { }; AnyMatrix InterSpinous_superior_points = { - {0.0049886713, 0.092084706, 0.0}, // 0 - {0.0074490607, 0.096208312, 0.0}, // 1 - {0.0098941876, 0.099694505, 0.0} // 2 - }; - AnyMatrix SupraSpinous_superior_points = { - {-0.0044337804, 0.075249776, 0.0}, // 0 - {-0.003027383, 0.082338184, 0.0}, // 1 - {0.0025216583, 0.088261686, 0.0} // 2 + +{0.005202, 0.092492, 0.0}, +{0.007173, 0.095690, 0.0}, +{0.009888, 0.099645, 0.0}, +}; + AnyMatrix InterSpinous_inferior_points = { + {0.003844, 0.069562, 0.0}, + {0.006841, 0.070345, 0.0}, + {0.009328, 0.072295, 0.0}, }; - AnyMatrix InterSpinous_inferior_points = { - {0.011004709, 0.072631687, 0.0}, // 4 - {0.012920424, 0.074491315, 0.0}, // 5 - {0.01498402, 0.076718323, 0.0} // 6 + AnyMatrix SupraSpinous_inferior_points = { + {-0.004195, 0.075553, 0.0}, + {-0.003141, 0.072027, 0.0}, + {-0.000862, 0.070245, 0.0}, }; - AnyMatrix SupraSpinous_inferior_points = { - {0.002428425, 0.06871137, 0.0}, // 0 - {0.0051093763, 0.069087841, 0.0}, // 1 - {0.0074028289, 0.070072487, 0.0}, // 2 - {0.0090692677, 0.071121886, 0.0} // 3 + AnyMatrix SupraSpinous_superior_points = { +{-0.003050, 0.073102, 0.0}, +{-0.003467, 0.078475, 0.0}, +{-0.001492, 0.084101, 0.0}, +{0.002498, 0.087810, 0.0}, }; - + Right = { + #ifdef OLD_FLAVUM AnyMatrix Flavum_inferior_points = { {0.019622432, 0.080720164, 0.0050937855}, // 0 {0.017806701, 0.079342641, 0.0036593869}, // 1 @@ -1234,6 +1263,15 @@ L2 = { {0.014282648, 0.075969152, 0.00096979801}, // 3 {0.014020124, 0.075628534, 0.00026983305} // 4 }; + #else + AnyMatrix Flavum_inferior_points = { + {0.022761, 0.090296, 0.007115}, + {0.022071, 0.089342, 0.005302}, + {0.021297, 0.088565, 0.003843}, + {0.020107, 0.087595, 0.002157}, + {0.019015, 0.086109, 0.000074}, + }; + #endif AnyMatrix Flavum_superior_points = { {0.012899628, 0.10910523, 0.0099896509}, // 0 {0.013091916, 0.10638189, 0.0082912184}, // 1 @@ -1252,22 +1290,38 @@ L2 = { {0.016047345, 0.10949369, 0.028233146} // 5 }; AnyFloat ICSpringSupNode_pos = ..R12.Right.ICSpringInfNodeL2_pos; + AnyMatrix FacetCapsule_inferior_points = { - {0.023693848, 0.084671468, 0.0080895852}, // 6 - {0.02395316, 0.088655904, 0.009818132}, // 5 - {0.022423174, 0.090777881, 0.01208668}, // 4 - {0.018065399, 0.089740463, 0.014486006}, // 3 - {0.014143886, 0.087295547, 0.015892049}, // 2 - {0.013951126, 0.084487326, 0.015026205}, // 1 - {0.017155251, 0.07935556, 0.0086028203} // 0 + +{0.017939, 0.095179, 0.014751}, +{0.015469, 0.094565, 0.015420}, +{0.012012, 0.092860, 0.012324}, +{0.010451, 0.087656, 0.009221}, +{0.010207, 0.082362, 0.008492}, +{0.012951, 0.079848, 0.007476}, +{0.017429, 0.080097, 0.005972}, +{0.020398, 0.081010, 0.005429}, +{0.022212, 0.085349, 0.005234}, +{0.022635, 0.089497, 0.006471}, +{0.023079, 0.093856, 0.009950}, +{0.020384, 0.094767, 0.013036}, + }; + + AnyMatrix FacetCapsule_superior_points = { - {0.011368789, 0.10785481, 0.012386199}, // 5 - {0.012813492, 0.11128339, 0.010483634}, // 4 - {0.012835729, 0.11457714, 0.012061604}, // 3 - {0.010124483, 0.11488741, 0.015849683}, // 2 - {0.0060750339, 0.11295567, 0.017474754}, // 1 - {0.004966083, 0.11057679, 0.016181977} // 0 +{0.013275, 0.114236, 0.018601}, +{0.009705, 0.111902, 0.020499}, +{0.006677, 0.107576, 0.020994}, +{0.006156, 0.103674, 0.017797}, +{0.009996, 0.102474, 0.014651}, +{0.011818, 0.101051, 0.010302}, +{0.012097, 0.103466, 0.007557}, +{0.015095, 0.105748, 0.006137}, +{0.017216, 0.109975, 0.008506}, +{0.017045, 0.114729, 0.009368}, +{0.016847, 0.115987, 0.013636}, +{0.015658, 0.115089, 0.016271}, }; }; @@ -1328,29 +1382,29 @@ L3 = { }; AnyMatrix InterSpinous_inferior_points = { - {0.013719065, 0.048023704, 0.0}, // 0 - {0.015377861, 0.049121786, 0.0}, // 1 - {0.017920865, 0.050917912, 0.0} // 2 - }; - AnyMatrix InterSpinous_superior_points = { - {0.0073979385, 0.065548398, 0.0}, // 5 - {0.010282126, 0.068949483, 0.0}, // 6 - {0.01365103, 0.072722241, 0.0} // 7 - }; - AnyMatrix SupraSpinous_inferior_points = { - {0.0031618031, 0.04425836, 0.0}, // 0 - {0.0058198255, 0.044187374, 0.0}, // 1 - {0.0083422707, 0.044893067, 0.0}, // 2 - {0.011258627, 0.046233095, 0.0} // 3 - }; - AnyMatrix SupraSpinous_superior_points = { - {-0.0017480191, 0.055052102, 0.0}, // 1 - {-0.00067409087, 0.058873896, 0.0}, // 2 - {0.0023293688, 0.061605062, 0.0}, // 3 - {0.0054896651, 0.063725404, 0.0} // 4 + +{0.004993, 0.044303, 0.0}, +{0.008916, 0.045162, 0.0}, +{0.012380, 0.047194, 0.0}, +}; + AnyMatrix InterSpinous_superior_points = { +{0.008595, 0.066852, 0.0}, +{0.011721, 0.070826, 0.0}, +{0.015240, 0.074320, 0.0}, }; + AnyMatrix SupraSpinous_inferior_points = { + {-0.002543, 0.051873, 0.0}, + {-0.001623, 0.048143, 0.0}, + {0.000860, 0.045755, 0.0}, }; + AnyMatrix SupraSpinous_superior_points = { +{-0.002195, 0.048382, 0.0}, +{-0.001912, 0.053884, 0.0}, +{0.000338, 0.059384, 0.0}, +{0.005740, 0.063593, 0.0}, +}; Right = { + #ifdef OLD_FLAVUM AnyMatrix Flavum_inferior_points = { {0.024466364, 0.052550077, 0.0080694333}, // 0 {0.02291373, 0.05317799, 0.0065821758}, // 1 @@ -1358,6 +1412,16 @@ L3 = { {0.018261207, 0.051238552, 0.0027986497}, // 3 {0.016405454, 0.049768522, 0.00098359759} // 4 }; + #else + AnyMatrix Flavum_inferior_points = { + + {0.027204, 0.062323, 0.007878}, + {0.026468, 0.061512, 0.006249}, + {0.025516, 0.060281, 0.004538}, + {0.023909, 0.059109, 0.002823}, + {0.022043, 0.057718, 0.000513}, + }; + #endif AnyMatrix Flavum_superior_points = { {0.019096829, 0.079239942, 0.0065340018}, // 5 {0.017757267, 0.077524535, 0.0048216674}, // 6 @@ -1377,24 +1441,40 @@ L3 = { {0.022839215, 0.083622307, 0.028859552} // 5 }; AnyFloat ICSpringSupNode_pos = ..R12.Right.ICSpringInfNodeL3_pos; + AnyMatrix FacetCapsule_inferior_points = { - {0.022623869, 0.05152474, 0.009640228}, // 3 - {0.024457879, 0.053324621, 0.0070730583}, // 2 - {0.027276531, 0.057304811, 0.0090406658}, // 1 - {0.027948758, 0.06060008, 0.011563383} // 0 +{0.022063, 0.068334, 0.015574}, +{0.018587, 0.067377, 0.015015}, +{0.016218, 0.065874, 0.012380}, +{0.014298, 0.062682, 0.009563}, +{0.013075, 0.059565, 0.009313}, +{0.013304, 0.054791, 0.007945}, +{0.016260, 0.053251, 0.006149}, +{0.022710, 0.053806, 0.004743}, +{0.025409, 0.057420, 0.005275}, +{0.026735, 0.062848, 0.006774}, +{0.027601, 0.068040, 0.011113}, +{0.024608, 0.068520, 0.014155}, + }; + + AnyMatrix FacetCapsule_superior_points = { - {0.020870067, 0.079503573, 0.0061739176}, // 9 - {0.024138106, 0.082240112, 0.0081431866}, // 8 - {0.024681875, 0.086894237, 0.0090004066}, // 7 - {0.024341371, 0.089781664, 0.010983661}, // 6 - {0.021654373, 0.090757437, 0.014747918}, // 5 - {0.017372038, 0.089919612, 0.016743394}, // 4 - {0.014247552, 0.08780691, 0.016641492}, // 3 - {0.012882981, 0.082411654, 0.015173749}, // 2 - {0.01583684, 0.078669101, 0.013680753}, // 1 - {0.018519273, 0.078165531, 0.0096045807} // 0 - }; +{0.023917, 0.088143, 0.017903}, +{0.019054, 0.087413, 0.020758}, +{0.011812, 0.082707, 0.021645}, +{0.014573, 0.078033, 0.017366}, +{0.017303, 0.075192, 0.011250}, +{0.017438, 0.077132, 0.004796}, +{0.022650, 0.077133, 0.004651}, +{0.028999, 0.078612, 0.008805}, +{0.029784, 0.084032, 0.009822}, +{0.027025, 0.089411, 0.010177}, +{0.025309, 0.089107, 0.014765}, + +}; + + }; Left = { @@ -1456,35 +1536,43 @@ L4 = { }; AnyMatrix InterSpinous_inferior_points = { - {0.0129594, 0.022521673, 0.0}, // 5 - {0.015542491, 0.023511507, 0.0}, // 6 - {0.0189653, 0.025605148, 0.0} // 7 + {0.002746, 0.021229, 0.0}, + {0.005769, 0.020719, 0.0}, + {0.009972, 0.021425, 0.0}, }; AnyMatrix InterSpinous_superior_points = { - {0.011844272, 0.042203657, 0.0}, // 11 - {0.013533654, 0.043450791, 0.0}, // 12 - {0.015613729, 0.045071989, 0.0}, // 13 - {0.017903831, 0.046743121, 0.0} // 14 - }; +{0.010171, 0.040665, 0.0}, +{0.014068, 0.043998, 0.0}, +{0.019835, 0.047836, 0.0}, +}; AnyMatrix SupraSpinous_inferior_points = { - {0.0013149102, 0.021679148, 0.0}, // 0 - {0.0026436348, 0.021187035, 0.0}, // 1 - {0.0046778908, 0.020695435, 0.0}, // 2 - {0.0073324582, 0.020799791, 0.0} // 3 + {-0.002019, 0.027196, 0.0}, + {-0.000782, 0.024175, 0.0}, + {0.000311, 0.022353, 0.0}, }; AnyMatrix SupraSpinous_superior_points = { - {0.0026529508, 0.037789244, 0.0}, // 8 - {0.0052734334, 0.03871464, 0.0}, // 9 - {0.0093496246, 0.040258367, 0.0} // 10 - }; +{-0.002594, 0.026362, 0.0}, +{-0.001296, 0.031990, 0.0}, +{0.002352, 0.037065, 0.0}, +{0.006356, 0.038927, 0.0}, }; Right = { + #ifdef OLD_FLAVUM AnyMatrix Flavum_inferior_points = { {0.023693217, 0.024466598, 0.0081655439}, // 0 {0.023213774, 0.025568275, 0.0066028447}, // 1 {0.021332877, 0.025901265, 0.0051220106}, // 2 - {0.018166002, 0.024882436, 0.0030279283} // 3 + {0.018166002, 0.024882436, 0.0030279283} // 3 }; + #else + AnyMatrix Flavum_inferior_points = { + + {0.029380, 0.032176, 0.008844}, + {0.028506, 0.031980, 0.006864}, + {0.027082, 0.031360, 0.004704}, + {0.023443, 0.030445, 0.000471}, + }; + #endif AnyMatrix Flavum_superior_points = { {0.025561182, 0.052631639, 0.0080532227}, // 0 {0.023956908, 0.051073529, 0.0057352032}, // 1 @@ -1506,7 +1594,8 @@ L4 = { {0.026663143, 0.049603499, 0.034746464}, // 2 {0.025728673, 0.051269915, 0.034736015} // 0 }; - AnyMatrix FacetCapsule_inferior_points = { + #ifdef OLD_FC_INSERTIONS + AnyMatrix FacetCapsule_inferior_points_initial = { {0.028514653, 0.032184672, 0.012970304}, // 7 {0.023665652, 0.033639513, 0.015356287}, // 6 {0.019371687, 0.032951582, 0.016672118}, // 5 @@ -1514,14 +1603,61 @@ L4 = { {0.018750731, 0.025774168, 0.014082623}, // 3 {0.021686072, 0.024383061, 0.0096637886}, // 2 {0.024954988, 0.025990929, 0.0063330885}, // 1 - {0.028019806, 0.02865847, 0.00798635} // 0 + {0.028019806, 0.02865847, 0.00798635} // 0 }; + #endif + + + + + + AnyMatrix FacetCapsule_inferior_points = { +{0.026451, 0.037784, 0.014228}, +{0.022595, 0.037725, 0.015771}, +{0.018912, 0.036297, 0.013875}, +{0.016729, 0.033546, 0.011359}, +{0.015543, 0.030441, 0.010168}, +{0.016516, 0.027586, 0.007884}, +{0.019151, 0.026550, 0.006007}, +{0.022816, 0.026623, 0.003528}, +{0.024912, 0.030314, 0.002774}, +{0.028003, 0.033515, 0.005132}, +{0.030140, 0.035016, 0.009226}, +{0.028392, 0.036696, 0.012847}, + +}; + +AnyMatrix FacetCapsule_inferior_points_origin = { +{0.0264, 0.0404, 0.0152}, +{0.0218, 0.0388, 0.0154}, +{0.0179, 0.0352, 0.0126}, +{0.0153, 0.0304, 0.0099}, +{0.0159, 0.0275, 0.0069}, +{0.0193, 0.0259, 0.0046}, +{0.0238, 0.0271, 0.0041}, +{0.0266, 0.0297, 0.0049}, +{0.0291, 0.0326, 0.0078}, +{0.0304, 0.0358, 0.0107}, +{0.0290, 0.0381, 0.0129}, +}; + + + AnyMatrix FacetCapsule_superior_points = { - {0.027112169, 0.054386731, 0.0084644947}, // 3 - {0.021733029, 0.05053426, 0.014393396}, // 2 - {0.02377275, 0.050590623, 0.0087689273}, // 1 - {0.020258069, 0.061454374, 0.017307527} // 0 +{0.028407, 0.061371, 0.018589}, +{0.023321, 0.060121, 0.021162}, +{0.020705, 0.056747, 0.021670}, +{0.019432, 0.053159, 0.020377}, +{0.022283, 0.050195, 0.017743}, +{0.021670, 0.047185, 0.013628}, +{0.022705, 0.048959, 0.009140}, +{0.028598, 0.053101, 0.007492}, +{0.033300, 0.059025, 0.009311}, +{0.032550, 0.061372, 0.013316}, +{0.030730, 0.061615, 0.016350}, + }; + }; Left = { @@ -1532,7 +1668,8 @@ L4 = { AnyMatrix IlioLumbar_points = .Right.IlioLumbar_points * ..MirrorTransform; AnyMatrix FacetCapsule_inferior_points = .Right.FacetCapsule_inferior_points * ..MirrorTransform; AnyMatrix FacetCapsule_superior_points = .Right.FacetCapsule_superior_points * ..MirrorTransform; - }; + +}; }; L5 = { @@ -1588,20 +1725,20 @@ L5 = { {0.019237997, 0.0054942751, 0.0} // 6 }; AnyMatrix InterSpinous_superior_points = { - {0.0054132724, 0.016155377, 0.0}, // 3 - {0.0091066202, 0.017658658, 0.0}, // 4 - {0.0126245, 0.019396668, 0.0} // 5 +{0.010428, 0.018417, 0.0}, +{0.013530, 0.019717, 0.0}, +{0.018397, 0.021401, 0.0}, }; AnyMatrix SupraSpinous_inferior_points = { - {-0.0012735295, 0.0096023502, 0.0}, // 0 - {0.00064217969, 0.0075678653, 0.0}, // 1 - {0.0028841067, 0.006917113, 0.0}, // 2 - {0.0051877513, 0.0068482785, 0.0} // 3 + {-0.001629, 0.010228, 0.0}, + {-0.000454, 0.008289, 0.0}, + {0.001605, 0.007132, 0.0}, }; AnyMatrix SupraSpinous_superior_points = { - {-0.0017192507, 0.011912435, 0.0}, // 0 - {-0.00081476057, 0.013141993, 0.0}, // 1 - {0.0015549648, 0.015067047, 0.0} // 2 +{-0.001798, 0.010504, 0.0}, +{-0.000214, 0.013493, 0.0}, +{0.003780, 0.015670, 0.0}, +{0.007389, 0.016730, 0.0}, }; Right = { @@ -1633,8 +1770,10 @@ L5 = { {0.026039002, 0.021922752, 0.035120416}, // 1 {0.026119996, 0.023910621, 0.034199741} // 0 }; - AnyMatrix FacetCapsule_superior_points = { - {0.027951824, 0.03288779, 0.016330129}, // 7 + +#ifdef OLD_FC_INSERTIONS + AnyMatrix FacetCapsule_superior_points_initial = { +{0.027951824, 0.03288779, 0.016330129}, // 7 {0.02022622, 0.033123173, 0.018374585}, // 6 {0.016266413, 0.03096866, 0.017961496}, // 5 {0.016889028, 0.027398957, 0.016514672}, // 4 @@ -1643,6 +1782,43 @@ L5 = { {0.027379666, 0.025189629, 0.008878313}, // 1 {0.030206576, 0.028664058, 0.0097878277} // 0 }; + #endif + + + + AnyMatrix FacetCapsule_superior_points = { +{0.032509, 0.029628, 0.017134}, +{0.027536, 0.030696, 0.020440}, +{0.021231, 0.028641, 0.021618}, +{0.020800, 0.022807, 0.017908}, +{0.019124, 0.017701, 0.012592}, +{0.020778, 0.020710, 0.006665}, +{0.025786, 0.021616, 0.005173}, +{0.031203, 0.021286, 0.007411}, +{0.036282, 0.022551, 0.009770}, +{0.037225, 0.027378, 0.009177}, +{0.034510, 0.029088, 0.014192}, + }; + + + AnyMatrix FacetCapsule_superior_points_origin = { + +{0.029462, 0.029570, 0.020311}, +{0.023820, 0.029558, 0.021726}, +{0.020285, 0.027750, 0.021660}, +{0.019972, 0.024564, 0.019902}, + +{0.021784, 0.021223, 0.015818}, +//{0.019033, 0.017729, 0.012238}, +{0.020446, 0.019298, 0.007715}+{0.001,0.0008,0.002}, +{0.023763, 0.022871, 0.005846}, + +{0.030338, 0.024514, 0.008516}, +{0.033006, 0.028979, 0.009838}, +{0.032424, 0.030070, 0.016910}, +}; + + AnyMatrix FacetCapsule_inferior_points = { {0.023554794, 0.0062639364, 0.013405222}, // 8 {0.020962207, 0.0087260865, 0.014788995}, // 7 @@ -1664,6 +1840,7 @@ L5 = { AnyMatrix IlioLumbar_points = .Right.IlioLumbar_points * ..MirrorTransform; AnyMatrix FacetCapsule_superior_points = .Right.FacetCapsule_superior_points * ..MirrorTransform; AnyMatrix FacetCapsule_inferior_points = .Right.FacetCapsule_inferior_points * ..MirrorTransform; + AnyMatrix FacetCapsule_superior_points_origin = .Right.FacetCapsule_superior_points_origin * ..MirrorTransform; }; }; diff --git a/Body/AAUHuman/Trunk/TrunkData1.1/ThoracicNodes.any b/Body/AAUHuman/Trunk/TrunkData1.1/ThoracicNodes.any index 27e53347d..0a892582d 100644 --- a/Body/AAUHuman/Trunk/TrunkData1.1/ThoracicNodes.any +++ b/Body/AAUHuman/Trunk/TrunkData1.1/ThoracicNodes.any @@ -246,27 +246,26 @@ AnyFolder T12 = { }; AnyMatrix InterSpinous_inferior_points = { - {-0.013552407, 0.13406336, 0.0}, // 4 - {-0.011932812, 0.13627203, 0.0}, // 5 - {-0.0094281239, 0.1391875, 0.0} // 6 +{-0.019229, 0.128018, 0.0}, +{-0.017269, 0.130004, 0.0}, +{-0.015134, 0.132400, 0.0}, }; AnyMatrix InterSpinous_superior_points = { {-0.019781129, 0.15004937, 0.0}, // 11 {-0.018961165, 0.15252106, 0.0}, // 12 {-0.017151916, 0.15631355, 0.0}, // 13 - {-0.015325118, 0.15926327, 0.0} // 14 + {-0.015325118, 0.15926327, 0.0} // 14 }; AnyMatrix SupraSpinous_inferior_points = { - {-0.021238089, 0.1269464, 0.0}, // 0 - {-0.01951018, 0.12793009, 0.0}, // 1 - {-0.017519541, 0.12960581, 0.0}, // 2 - {-0.015221603, 0.13191722, 0.0} // 3 + {-0.028818, 0.128895, 0.0}, + {-0.025490, 0.127173, 0.0}, + {-0.023046, 0.126676, 0.0}, }; AnyMatrix SupraSpinous_superior_points = { - {-0.024977697, 0.1376518, 0.0}, // 7 - {-0.022866406, 0.14073367, 0.0}, // 8 - {-0.021405665, 0.14459755, 0.0}, // 9 - {-0.02049695, 0.1475562, 0.0} // 10 + {-0.024977697, 0.1376518, 0.0}, // 7 + {-0.022866406, 0.14073367, 0.0}, // 8 + {-0.021405665, 0.14459755, 0.0}, // 9 + {-0.02049695, 0.1475562, 0.0} // 10 }; AnyFloat O_serratus_posterior_inferior_pos = {-0.03, 0.13 , 0.0}; @@ -285,12 +284,24 @@ AnyFolder T12 = { AnyFloat QLT12_CINode_pos = {-0.007,0.165,0.025}; AnyFloat O_serratus_posterior_inferior_T12R10ViaNodepos = {-0.045, 0.165, 0.04}; + + #ifdef OLD_FLAVUM AnyMatrix Flavum_inferior_points = { {-0.0019179583, 0.14068496, 0.0081109246}, // 0 {-0.0015655934, 0.14173293, 0.0057401443}, // 1 {-0.0026454865, 0.14300975, 0.0039641079}, // 2 {-0.0038648127, 0.1449239, 0.0013751532} // 3 }; + #else + AnyMatrix Flavum_inferior_points = { + {-0.001233, 0.149044, 0.008657}, + {-0.001281, 0.148086, 0.007074}, + {-0.002128, 0.146770, 0.004840}, + {-0.002948, 0.145783, 0.002833}, + {-0.0039898, 0.145737, 0.000794}, + + }; + #endif AnyMatrix Flavum_superior_points = { {-0.011011065, 0.16901238, 0.0085586915}, // 0 {-0.011568789, 0.16666178, 0.006770975}, // 1 @@ -330,12 +341,31 @@ AnyFolder T12 = { {0.0023577141, 0.17342177, 0.020243166}, // 3 {0.0029306612, 0.17587548, 0.020078054} // 4 }; + #ifndef CYL_FC_INSERTIONS AnyMatrix FacetCapsule_inferior_points = { +{-0.005296, 0.152162, 0.013605}, +{-0.008736, 0.150327, 0.015083}, +{-0.011712, 0.148667, 0.015368}, +{-0.013184, 0.145429, 0.012514}, +{-0.013450, 0.142414, 0.010253}, +{-0.010625, 0.140948, 0.008381}, +{-0.006723, 0.140929, 0.005508}, +{-0.003626, 0.142698, 0.004164}, +{-0.001998, 0.145035, 0.004442}, +{-0.001425, 0.148529, 0.006837}, +{-0.001418, 0.150127, 0.009559}, +{-0.002635, 0.151317, 0.011934}, + + }; + #else + AnyMatrix FacetCapsule_inferior_points_initial = { {-0.00074794126, 0.14295551, 0.010232115}, // 0 {-0.0023452956, 0.13951986, 0.010963738}, // 1 {-0.0019631963, 0.14479633, 0.011997868}, // 2 {-0.0052791424, 0.13967894, 0.013689602} // 3 }; + + #endif AnyMatrix FacetCapsule_superior_points = { {-0.01161419, 0.16901995, 0.0098765967}, // 0 {-0.01427044, 0.16769332, 0.012601973}, // 1 From 089792e23f7ad41a40553ba8f123c229e7c987da Mon Sep 17 00:00:00 2001 From: hs Date: Wed, 4 Sep 2024 11:07:15 +0200 Subject: [PATCH 25/31] Bug fixed: Scale was not exactly 1 at the normal AMMR models due to small difference in height --- Body/AAUHuman/Trunk/TrunkData1.1/ThoracicNodes.any | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Body/AAUHuman/Trunk/TrunkData1.1/ThoracicNodes.any b/Body/AAUHuman/Trunk/TrunkData1.1/ThoracicNodes.any index 0a892582d..e631f978e 100644 --- a/Body/AAUHuman/Trunk/TrunkData1.1/ThoracicNodes.any +++ b/Body/AAUHuman/Trunk/TrunkData1.1/ThoracicNodes.any @@ -5628,7 +5628,7 @@ AnyFolder Thorax = { AnyVar BodyMass = 75; ///< This is a body mass that the trunk dataset is based on AnyVar UBHeight = 0.50; //Upperbody height - AnyVar Height = vnorm( .C1.C1C0JntNode_pos - .L5.L5SacrumJntNode_pos);///< Height computed from the L5SacrumJnt to C1 node + AnyVar Height = 0.620233;///< Height computed from the L5SacrumJnt to C1 node AnyVar Width = 0.3881839;///< Shoulder width AnyVar Depth = 0.1870;///< Horizontal distance between (midpoint of LTptT8S3Via3NodeL and LTptT8S3Via3NodeR) and (midpoint of RACP_CO6ViaNodeR and RACP_CO6ViaNodeL) From 3e9cf8bf4961bd4fdb602069e31243a5a05923c4 Mon Sep 17 00:00:00 2001 From: hs Date: Wed, 4 Sep 2024 15:04:09 +0200 Subject: [PATCH 26/31] Moment arm studies for all interverterbral joints, and also for all arm and leg joints --- .../EvaluateMomentArms.main.any | 1 + .../EvaluateMomentArms_IVJs.main.any | 44 + Body/AAUHuman/Arm/EvaluateMomentArmsStudy.any | 25 +- Body/AAUHuman/Arm/MomentArmSequenceLeft.any | 80 +- Body/AAUHuman/Arm/MomentArmSequenceRight.any | 80 +- .../EvaluateMomentArmsSequence.any | 10 +- .../LegTLEM/EvaluateMomentArmsStudy.any | 20 +- .../Trunk/EvaluateMomentArmsSequence_IVJs.any | 35 + ...eMomentArmsSequence_IVJs_AxialRotation.any | 1106 +++++++++++++++ ...luateMomentArmsSequence_IVJs_Extension.any | 1214 +++++++++++++++++ ...MomentArmsSequence_IVJs_LateralBending.any | 1068 +++++++++++++++ .../Trunk/EvaluateMomentArmsStudy.any | 22 +- .../Trunk/EvaluateMomentArmsStudy_IVJs.any | 144 ++ 13 files changed, 3780 insertions(+), 69 deletions(-) create mode 100644 Application/Validation/EvaluateMomentArms/EvaluateMomentArms_IVJs.main.any create mode 100644 Body/AAUHuman/Trunk/EvaluateMomentArmsSequence_IVJs.any create mode 100644 Body/AAUHuman/Trunk/EvaluateMomentArmsSequence_IVJs_AxialRotation.any create mode 100644 Body/AAUHuman/Trunk/EvaluateMomentArmsSequence_IVJs_Extension.any create mode 100644 Body/AAUHuman/Trunk/EvaluateMomentArmsSequence_IVJs_LateralBending.any create mode 100644 Body/AAUHuman/Trunk/EvaluateMomentArmsStudy_IVJs.any diff --git a/Application/Validation/EvaluateMomentArms/EvaluateMomentArms.main.any b/Application/Validation/EvaluateMomentArms/EvaluateMomentArms.main.any index 00c28d1de..7cccb3c2b 100644 --- a/Application/Validation/EvaluateMomentArms/EvaluateMomentArms.main.any +++ b/Application/Validation/EvaluateMomentArms/EvaluateMomentArms.main.any @@ -8,6 +8,7 @@ // Note, this will include a lot of studies (one per DOF) so it will // affect perfomance when loading and switching between tabs/operations. +#define BM_ARM_CLAVICULA_ROTATION_RHYTHM OFF #define EVALUATE_MOMENT_ARMS 1 #define EVALUATE_MOMENT_ARMS_NSTEP 10 diff --git a/Application/Validation/EvaluateMomentArms/EvaluateMomentArms_IVJs.main.any b/Application/Validation/EvaluateMomentArms/EvaluateMomentArms_IVJs.main.any new file mode 100644 index 000000000..4b5c6063a --- /dev/null +++ b/Application/Validation/EvaluateMomentArms/EvaluateMomentArms_IVJs.main.any @@ -0,0 +1,44 @@ +#include "../libdef.any" +#include "../../../Tests/tools.any" + +// This model shows how to enable the built-in studies to evaluate +// muscle moment arms. The studies are enabled by setting the switch: +// #define EVALUATE_MOMENT_ARMS +// The studies will appear in the `HumanModel.EvaluateMomentArms +// folder. +// Note, this will include a lot of studies (one per DOF) so it will +// affect perfomance when loading and switching between tabs/operations. + +//#define AMMR_VERSION 4 +#define BM_TRUNK_THORACIC_MODEL _THORACIC_MODEL_FLEXIBLE_ + +#define EVALUATE_MOMENT_ARMS_IVJs 1 +#ifndef EVALUATE_MOMENT_ARMS_IVJs + #define EVALUATE_MOMENT_ARMS_IVJs 0 +#endif + +#if EVALUATE_MOMENT_ARMS_IVJs +#define BM_TRUNK_LUMBAR_RHYTHM OFF +#define BM_TRUNK_THORACIC_RHYTHM OFF +#define BM_TRUNK_CERVICAL_RHYTHM OFF +#endif + + +#define BM_LEG_MODEL OFF +#define BM_ARM_LEFT OFF +#define BM_ARM_RIGHT OFF + + +#define EVALUATE_MOMENT_ARMS 1 +#define EVALUATE_MOMENT_ARMS_NSTEP 2 + + +Main = +{ + + #include "BodyModelConfiguration.any" + #include "\HumanModel.any" + + AnyOperation& RunApplication = Main.HumanModel.EvaluateMomentArms.Run_all_studies; + +}; diff --git a/Body/AAUHuman/Arm/EvaluateMomentArmsStudy.any b/Body/AAUHuman/Arm/EvaluateMomentArmsStudy.any index 4ae83c9d4..24e8362a7 100644 --- a/Body/AAUHuman/Arm/EvaluateMomentArmsStudy.any +++ b/Body/AAUHuman/Arm/EvaluateMomentArmsStudy.any @@ -40,13 +40,16 @@ AnyFolder Model = { AnyKinMeasure& ElbowPronation= ...SideBodyInterfaceRef.ElbowPronation; AnyKinMeasure& WristFlexion= ...SideBodyInterfaceRef.WristFlexion; AnyKinMeasure& WristAbduction= ...SideBodyInterfaceRef.WristAbduction; + #if BM_ARM_CLAVICULA_ROTATION_RHYTHM == OFF + AnyKinMeasure& ACMedialRotation= ...SideBodyInterfaceRef.AcromioClavicular.MedialRotation; + #endif }; AnyKinEqSimpleDriver ArmDriver= { AnyKinMeasure& ref = .ArmMeasure; #if BM_ARM_SHOULDER_RHYTHM == OFF - #define __MEASURE_INDEXER(X) { X[0],X[1],X[2],X[3],X[4],X[5],X[6],X[7],X[8] } + #define __MEASURE_INDEXER(X) { X[0],X[1],X[2],X[3],X[4],X[5],X[6],X[7],X[8],X[9] } #else #define __MEASURE_INDEXER(X) { X[2], X[3],X[4],X[5],X[6],X[7],X[8] } #endif @@ -80,6 +83,7 @@ AnyKinStudy Study = { InitialConditions.SmallStepAssumptionOnOff = Off; AnyFolder &Model = .Model; + AnyOutputFun AngularVelocity_output = {Val = ..Model.Drivers.AngularVelocity;}; AnyFolder MuscleStrengthCalculations = { AnyFolder Abscissa = { @@ -139,13 +143,14 @@ AnyOperationSequence Run = MacroStr = { "classoperation " + CompleteNameOf(&..ModelViews.Views.SelectedView) + strquote("Set View") }; }; AnyOperation &Study = .Study.Kinematics; -// #ifdef ANYBODY_PATH_OUTPUT -// AnyOperationMacro Save = -// { -// MacroStr = { -// "classoperation " + CompleteNameOf(&.Study.Output) + strquote("Save data") -// + " --type=" + strquote("Deep") +" --file=" + strquote( -// ANYBODY_PATH_OUTPUT + .OutputFileName + ".anydata.h5") -// }; -// #endif + #ifdef ANYBODY_PATH_OUTPUT + AnyOperationMacro Save = + { + MacroStr = { + "classoperation " + CompleteNameOf(&..Study.Output) + strquote("Save data") + + " --type=" + strquote("Deep") +" --file=" + strquote( + ANYBODY_PATH_OUTPUT + ..OutputFileName + ".anydata.h5") + }; + }; + #endif }; \ No newline at end of file diff --git a/Body/AAUHuman/Arm/MomentArmSequenceLeft.any b/Body/AAUHuman/Arm/MomentArmSequenceLeft.any index c5dba0e31..6fa91f751 100644 --- a/Body/AAUHuman/Arm/MomentArmSequenceLeft.any +++ b/Body/AAUHuman/Arm/MomentArmSequenceLeft.any @@ -14,13 +14,14 @@ AnyVar ElbowPronation = DesignVar(0); AnyVar WristFlexion = DesignVar(0); AnyVar WristAbduction = DesignVar(0); + AnyVar ACMedialRotation = DesignVar(-0.1745329); ///////////////////////////////////////// - AnyFloat Mask = {1,0,0,0,0,0,0,0,0}; + AnyFloat Mask = {1,0,0,0,0,0,0,0,0,0}; AnyVector DriverPos = { RangeOfMotion[0], SCElevation, GHAbduction, GHFlexion, GHExternalRotation ,ElbowFlexion, ElbowPronation, - WristFlexion ,WristAbduction }*pi/180; + WristFlexion ,WristAbduction, ACMedialRotation }*pi/180; AnyString OutputFileName = "MomentArms_Arm_Left_SCProtraction"; @@ -44,13 +45,14 @@ AnyVar ElbowPronation = DesignVar(0); AnyVar WristFlexion = DesignVar(0); AnyVar WristAbduction = DesignVar(0); + AnyVar ACMedialRotation = DesignVar(-0.1745329); ///////////////////////////////////////// - AnyFloat Mask = {0,1,0,0,0,0,0,0,0}; + AnyFloat Mask = {0,1,0,0,0,0,0,0,0,0}; AnyVector DriverPos = { SCProtraction, RangeOfMotion[0], GHAbduction, GHFlexion, GHExternalRotation ,ElbowFlexion, ElbowPronation, - WristFlexion ,WristAbduction }*pi/180; + WristFlexion ,WristAbduction, ACMedialRotation }*pi/180; AnyString OutputFileName = "MomentArms_Arm_Left_SCElevation"; // The following should not be changed @@ -74,13 +76,14 @@ AnyVar ElbowPronation = DesignVar(0); AnyVar WristFlexion = DesignVar(0); AnyVar WristAbduction = DesignVar(0); + AnyVar ACMedialRotation = DesignVar(-0.1745329); ///////////////////////////////////////// - AnyFloat Mask = {0,0,1,0,0,0,0,0,0}; + AnyFloat Mask = {0,0,1,0,0,0,0,0,0,0}; AnyVector DriverPos = { SCProtraction, SCElevation, RangeOfMotion[0], GHFlexion, GHExternalRotation ,ElbowFlexion, ElbowPronation, - WristFlexion ,WristAbduction }*pi/180; + WristFlexion ,WristAbduction, ACMedialRotation }*pi/180; AnyString OutputFileName = "MomentArms_Arm_Left_GHAbduction"; // The following should not be changed @@ -103,13 +106,14 @@ AnyVar ElbowPronation = DesignVar(0); AnyVar WristFlexion = DesignVar(0); AnyVar WristAbduction = DesignVar(0); + AnyVar ACMedialRotation = DesignVar(-0.1745329); ///////////////////////////////////////// - AnyFloat Mask = {0,0,0,1,0,0,0,0,0}; + AnyFloat Mask = {0,0,0,1,0,0,0,0,0,0}; AnyVector DriverPos = { SCProtraction, SCElevation, GHAbduction, RangeOfMotion[0], GHExternalRotation ,ElbowFlexion, ElbowPronation, - WristFlexion ,WristAbduction }*pi/180; + WristFlexion ,WristAbduction, ACMedialRotation }*pi/180; AnyString OutputFileName = "MomentArms_Arm_Left_GHFlexion"; // The following should not be changed @@ -132,13 +136,14 @@ AnyVar ElbowPronation = DesignVar(0); AnyVar WristFlexion = DesignVar(0); AnyVar WristAbduction = DesignVar(0); + AnyVar ACMedialRotation = DesignVar(-0.1745329); ///////////////////////////////////////// - AnyFloat Mask = {0,0,0,0,1,0,0,0,0}; + AnyFloat Mask = {0,0,0,0,1,0,0,0,0,0}; AnyVector DriverPos = { SCProtraction, SCElevation, GHAbduction, GHFlexion, RangeOfMotion[0] ,ElbowFlexion, ElbowPronation, - WristFlexion ,WristAbduction }*pi/180; + WristFlexion ,WristAbduction, ACMedialRotation }*pi/180; AnyString OutputFileName = "MomentArms_Arm_Left_GHExternalRotation"; // The following should not be changed @@ -161,13 +166,14 @@ AnyVar ElbowPronation = DesignVar(0); AnyVar WristFlexion = DesignVar(0); AnyVar WristAbduction = DesignVar(0); + AnyVar ACMedialRotation = DesignVar(-0.1745329); ///////////////////////////////////////// - AnyFloat Mask = {0,0,0,0,0,1,0,0,0}; + AnyFloat Mask = {0,0,0,0,0,1,0,0,0,0}; AnyVector DriverPos = { SCProtraction, SCElevation, GHAbduction, GHFlexion, GHExternalRotation ,RangeOfMotion[0], ElbowPronation, - WristFlexion ,WristAbduction }*pi/180; + WristFlexion ,WristAbduction, ACMedialRotation }*pi/180; AnyString OutputFileName = "MomentArms_Arm_Left_ElbowFlexion"; // The following should not be changed @@ -190,13 +196,14 @@ AnyVar ElbowFlexion = DesignVar(0); AnyVar WristFlexion = DesignVar(0); AnyVar WristAbduction = DesignVar(0); + AnyVar ACMedialRotation = DesignVar(-0.1745329); ///////////////////////////////////////// - AnyFloat Mask = {0,0,0,0,0,0,1,0,0}; + AnyFloat Mask = {0,0,0,0,0,0,1,0,0,0}; AnyVector DriverPos = { SCProtraction, SCElevation, GHAbduction, GHFlexion, GHExternalRotation, ElbowFlexion, RangeOfMotion[0], - WristFlexion ,WristAbduction }*pi/180; + WristFlexion ,WristAbduction, ACMedialRotation }*pi/180; AnyString OutputFileName = "MomentArms_Arm_Left_ElbowPronation"; // The following should not be changed @@ -207,7 +214,6 @@ }; - AnyFolder WristFlexion ={ // Change the following variables to adjust the moment arm study @@ -220,13 +226,14 @@ AnyVar ElbowFlexion = DesignVar(0); AnyVar ElbowPronation = DesignVar(0); AnyVar WristAbduction = DesignVar(0); + AnyVar ACMedialRotation = DesignVar(-0.1745329); ///////////////////////////////////////// - AnyFloat Mask = {0,0,0,0,0,0,0,1,0}; + AnyFloat Mask = {0,0,0,0,0,0,0,1,0,0}; AnyVector DriverPos = { SCProtraction, SCElevation, GHAbduction, GHFlexion, GHExternalRotation, ElbowFlexion, ElbowPronation, - RangeOfMotion[0] ,WristAbduction }*pi/180; + RangeOfMotion[0] ,WristAbduction, ACMedialRotation }*pi/180; AnyString OutputFileName = "MomentArms_Arm_Left_WristFlexion"; // The following should not be changed @@ -249,13 +256,14 @@ AnyVar ElbowFlexion = DesignVar(0); AnyVar ElbowPronation = DesignVar(0); AnyVar WristFlexion = DesignVar(0); + AnyVar ACMedialRotation = DesignVar(-0.1745329); ///////////////////////////////////////// - AnyFloat Mask = {0,0,0,0,0,0,0,0,1}; + AnyFloat Mask = {0,0,0,0,0,0,0,0,1,0}; AnyVector DriverPos = { SCProtraction, SCElevation, GHAbduction, GHFlexion, GHExternalRotation, ElbowFlexion, ElbowPronation, - WristFlexion, RangeOfMotion[0] }*pi/180; + WristFlexion, RangeOfMotion[0], ACMedialRotation }*pi/180; AnyString OutputFileName = "MomentArms_Arm_Left_WristAbduction"; // The following should not be changed @@ -266,6 +274,36 @@ }; + AnyFolder ACMedialRotation={ + + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion = DesignVar({-0.1745329-20, -0.1745329+10}); + AnyVar SCProtraction = DesignVar(-23); + AnyVar SCElevation = DesignVar(11.5); + AnyVar GHAbduction = DesignVar(0); + AnyVar GHFlexion = DesignVar(0); + AnyVar GHExternalRotation = DesignVar(0); + AnyVar ElbowFlexion = DesignVar(0); + AnyVar ElbowPronation = DesignVar(0); + AnyVar WristFlexion = DesignVar(0); + AnyVar WristAbduction = DesignVar(0); + ///////////////////////////////////////// + + AnyFloat Mask = {0,0,0,0,0,0,0,0,0,1}; + AnyVector DriverPos = { + SCProtraction, SCElevation, GHAbduction, GHFlexion, + GHExternalRotation, ElbowFlexion, ElbowPronation, + WristFlexion ,WristAbduction, RangeOfMotion[0] }*pi/180; + AnyString OutputFileName = "MomentArms_Arm_Left_ACMedialRotation"; + + // The following should not be changed + AnyFolder &SideBodyModelRef=....BodyModel.Left; + AnyFolder &SideBodyInterfaceRef = ....BodyModel.Interface.Left; + AnyFolder &SideTrunkMusRef = ....BodyModel.Trunk.Muscles.Left; + #include "EvaluateMomentArmsStudy.any" + + }; + };//Arm };//Left @@ -279,7 +317,11 @@ AnyOperation &GHAbductionLeft = .Left.Arm.GHFlexion.Run; AnyOperation &GHExternalRotationLeft = .Left.Arm.GHExternalRotation.Run; AnyOperation &ElbowFlexionLeft = .Left.Arm.ElbowFlexion.Run; + AnyOperation &ElbowPronationLeft = .Left.Arm.ElbowPronation.Run; AnyOperation &WristFlexionLeft = .Left.Arm.WristFlexion.Run; AnyOperation &WristAbductionLeft = .Left.Arm.WristAbduction.Run; + #if BM_ARM_CLAVICULA_ROTATION_RHYTHM == OFF + AnyOperation &ACMedialRotationLeft = .Left.Arm.ACMedialRotation.Run; + #endif }; diff --git a/Body/AAUHuman/Arm/MomentArmSequenceRight.any b/Body/AAUHuman/Arm/MomentArmSequenceRight.any index c259e2ad8..65dd1d649 100644 --- a/Body/AAUHuman/Arm/MomentArmSequenceRight.any +++ b/Body/AAUHuman/Arm/MomentArmSequenceRight.any @@ -14,13 +14,14 @@ AnyVar ElbowPronation = DesignVar(0); AnyVar WristFlexion = DesignVar(0); AnyVar WristAbduction = DesignVar(0); + AnyVar ACMedialRotation = DesignVar(-0.1745329); ///////////////////////////////////////// - AnyFloat Mask = {1,0,0,0,0,0,0,0,0}; + AnyFloat Mask = {1,0,0,0,0,0,0,0,0,0}; AnyVector DriverPos = { RangeOfMotion[0], SCElevation, GHAbduction, GHFlexion, GHExternalRotation ,ElbowFlexion, ElbowPronation, - WristFlexion ,WristAbduction }*pi/180; + WristFlexion ,WristAbduction, ACMedialRotation }*pi/180; AnyString OutputFileName = "MomentArms_Arm_Right_SCProtraction"; @@ -44,13 +45,14 @@ AnyVar ElbowPronation = DesignVar(0); AnyVar WristFlexion = DesignVar(0); AnyVar WristAbduction = DesignVar(0); + AnyVar ACMedialRotation = DesignVar(-0.1745329); ///////////////////////////////////////// - AnyFloat Mask = {0,1,0,0,0,0,0,0,0}; + AnyFloat Mask = {0,1,0,0,0,0,0,0,0,0}; AnyVector DriverPos = { SCProtraction, RangeOfMotion[0], GHAbduction, GHFlexion, GHExternalRotation ,ElbowFlexion, ElbowPronation, - WristFlexion ,WristAbduction }*pi/180; + WristFlexion ,WristAbduction, ACMedialRotation }*pi/180; AnyString OutputFileName = "MomentArms_Arm_Right_SCElevation"; // The following should not be changed @@ -74,13 +76,14 @@ AnyVar ElbowPronation = DesignVar(0); AnyVar WristFlexion = DesignVar(0); AnyVar WristAbduction = DesignVar(0); + AnyVar ACMedialRotation = DesignVar(-0.1745329); ///////////////////////////////////////// - AnyFloat Mask = {0,0,1,0,0,0,0,0,0}; + AnyFloat Mask = {0,0,1,0,0,0,0,0,0,0}; AnyVector DriverPos = { SCProtraction, SCElevation, RangeOfMotion[0], GHFlexion, GHExternalRotation ,ElbowFlexion, ElbowPronation, - WristFlexion ,WristAbduction }*pi/180; + WristFlexion ,WristAbduction, ACMedialRotation }*pi/180; AnyString OutputFileName = "MomentArms_Arm_Right_GHAbduction"; // The following should not be changed @@ -103,13 +106,14 @@ AnyVar ElbowPronation = DesignVar(0); AnyVar WristFlexion = DesignVar(0); AnyVar WristAbduction = DesignVar(0); + AnyVar ACMedialRotation = DesignVar(-0.1745329); ///////////////////////////////////////// - AnyFloat Mask = {0,0,0,1,0,0,0,0,0}; + AnyFloat Mask = {0,0,0,1,0,0,0,0,0,0}; AnyVector DriverPos = { SCProtraction, SCElevation, GHAbduction, RangeOfMotion[0], GHExternalRotation ,ElbowFlexion, ElbowPronation, - WristFlexion ,WristAbduction }*pi/180; + WristFlexion ,WristAbduction, ACMedialRotation }*pi/180; AnyString OutputFileName = "MomentArms_Arm_Right_GHFlexion"; // The following should not be changed @@ -132,13 +136,14 @@ AnyVar ElbowPronation = DesignVar(0); AnyVar WristFlexion = DesignVar(0); AnyVar WristAbduction = DesignVar(0); + AnyVar ACMedialRotation = DesignVar(-0.1745329); ///////////////////////////////////////// - AnyFloat Mask = {0,0,0,0,1,0,0,0,0}; + AnyFloat Mask = {0,0,0,0,1,0,0,0,0,0}; AnyVector DriverPos = { SCProtraction, SCElevation, GHAbduction, GHFlexion, RangeOfMotion[0] ,ElbowFlexion, ElbowPronation, - WristFlexion ,WristAbduction }*pi/180; + WristFlexion ,WristAbduction, ACMedialRotation }*pi/180; AnyString OutputFileName = "MomentArms_Arm_Right_GHExternalRotation"; // The following should not be changed @@ -161,13 +166,14 @@ AnyVar ElbowPronation = DesignVar(0); AnyVar WristFlexion = DesignVar(0); AnyVar WristAbduction = DesignVar(0); + AnyVar ACMedialRotation = DesignVar(-0.1745329); ///////////////////////////////////////// - AnyFloat Mask = {0,0,0,0,0,1,0,0,0}; + AnyFloat Mask = {0,0,0,0,0,1,0,0,0,0}; AnyVector DriverPos = { SCProtraction, SCElevation, GHAbduction, GHFlexion, GHExternalRotation ,RangeOfMotion[0], ElbowPronation, - WristFlexion ,WristAbduction }*pi/180; + WristFlexion ,WristAbduction, ACMedialRotation }*pi/180; AnyString OutputFileName = "MomentArms_Arm_Right_ElbowFlexion"; // The following should not be changed @@ -190,13 +196,14 @@ AnyVar ElbowFlexion = DesignVar(0); AnyVar WristFlexion = DesignVar(0); AnyVar WristAbduction = DesignVar(0); + AnyVar ACMedialRotation = DesignVar(-0.1745329); ///////////////////////////////////////// - AnyFloat Mask = {0,0,0,0,0,0,1,0,0}; + AnyFloat Mask = {0,0,0,0,0,0,1,0,0,0}; AnyVector DriverPos = { SCProtraction, SCElevation, GHAbduction, GHFlexion, GHExternalRotation, ElbowFlexion, RangeOfMotion[0], - WristFlexion ,WristAbduction }*pi/180; + WristFlexion ,WristAbduction, ACMedialRotation }*pi/180; AnyString OutputFileName = "MomentArms_Arm_Right_ElbowPronation"; // The following should not be changed @@ -207,7 +214,6 @@ }; - AnyFolder WristFlexion ={ // Change the following variables to adjust the moment arm study @@ -220,13 +226,14 @@ AnyVar ElbowFlexion = DesignVar(0); AnyVar ElbowPronation = DesignVar(0); AnyVar WristAbduction = DesignVar(0); + AnyVar ACMedialRotation = DesignVar(-0.1745329); ///////////////////////////////////////// - AnyFloat Mask = {0,0,0,0,0,0,0,1,0}; + AnyFloat Mask = {0,0,0,0,0,0,0,1,0,0}; AnyVector DriverPos = { SCProtraction, SCElevation, GHAbduction, GHFlexion, GHExternalRotation, ElbowFlexion, ElbowPronation, - RangeOfMotion[0] ,WristAbduction }*pi/180; + RangeOfMotion[0] ,WristAbduction, ACMedialRotation }*pi/180; AnyString OutputFileName = "MomentArms_Arm_Right_WristFlexion"; // The following should not be changed @@ -249,13 +256,14 @@ AnyVar ElbowFlexion = DesignVar(0); AnyVar ElbowPronation = DesignVar(0); AnyVar WristFlexion = DesignVar(0); + AnyVar ACMedialRotation = DesignVar(-0.1745329); ///////////////////////////////////////// - AnyFloat Mask = {0,0,0,0,0,0,0,0,1}; + AnyFloat Mask = {0,0,0,0,0,0,0,0,1,0}; AnyVector DriverPos = { SCProtraction, SCElevation, GHAbduction, GHFlexion, GHExternalRotation, ElbowFlexion, ElbowPronation, - WristFlexion, RangeOfMotion[0] }*pi/180; + WristFlexion, RangeOfMotion[0], ACMedialRotation }*pi/180; AnyString OutputFileName = "MomentArms_Arm_Right_WristAbduction"; // The following should not be changed @@ -266,6 +274,36 @@ }; + AnyFolder ACMedialRotation={ + + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion = DesignVar({-0.1745329-20, -0.1745329+10}); + AnyVar SCProtraction = DesignVar(-23); + AnyVar SCElevation = DesignVar(11.5); + AnyVar GHAbduction = DesignVar(0); + AnyVar GHFlexion = DesignVar(0); + AnyVar GHExternalRotation = DesignVar(0); + AnyVar ElbowFlexion = DesignVar(0); + AnyVar ElbowPronation = DesignVar(0); + AnyVar WristFlexion = DesignVar(0); + AnyVar WristAbduction = DesignVar(0); + ///////////////////////////////////////// + + AnyFloat Mask = {0,0,0,0,0,0,0,0,0,1}; + AnyVector DriverPos = { + SCProtraction, SCElevation, GHAbduction, GHFlexion, + GHExternalRotation, ElbowFlexion, ElbowPronation, + WristFlexion ,WristAbduction, RangeOfMotion[0] }*pi/180; + AnyString OutputFileName = "MomentArms_Arm_Right_ACMedialRotation"; + + // The following should not be changed + AnyFolder &SideBodyModelRef=....BodyModel.Right; + AnyFolder &SideBodyInterfaceRef = ....BodyModel.Interface.Right; + AnyFolder &SideTrunkMusRef = ....BodyModel.Trunk.Muscles.Right; + #include "EvaluateMomentArmsStudy.any" + + }; + };//Arm };//Right @@ -279,7 +317,11 @@ AnyOperation &GHAbductionRight = .Right.Arm.GHFlexion.Run; AnyOperation &GHExternalRotationRight = .Right.Arm.GHExternalRotation.Run; AnyOperation &ElbowFlexionRight = .Right.Arm.ElbowFlexion.Run; + AnyOperation &ElbowPronationRight = .Right.Arm.ElbowPronation.Run; AnyOperation &WristFlexionRight = .Right.Arm.WristFlexion.Run; AnyOperation &WristAbductionRight = .Right.Arm.WristAbduction.Run; + #if BM_ARM_CLAVICULA_ROTATION_RHYTHM == OFF + AnyOperation &ACMedialRotationRight = .Right.Arm.ACMedialRotation.Run; + #endif }; diff --git a/Body/AAUHuman/BodyModels/GenericBodyModel/EvaluateMomentArmsSequence.any b/Body/AAUHuman/BodyModels/GenericBodyModel/EvaluateMomentArmsSequence.any index 1fcf98ee4..98c398f12 100644 --- a/Body/AAUHuman/BodyModels/GenericBodyModel/EvaluateMomentArmsSequence.any +++ b/Body/AAUHuman/BodyModels/GenericBodyModel/EvaluateMomentArmsSequence.any @@ -3,7 +3,9 @@ //This file controls which calibrations to be made on the model AnyFolder EvaluateMomentArms= { - + #ifndef MUSCLE_GROUPS + #define MUSCLE_GROUPS 0 + #endif #if BM_LEG_RIGHT | BM_ARM_RIGHT AnyFolder Right = {}; @@ -38,7 +40,11 @@ AnyFolder EvaluateMomentArms= #endif #if (BM_TRUNK_MUSCLES != OFF) - #include "../../Trunk/EvaluateMomentArmsSequence.any" + #ifdef EVALUATE_MOMENT_ARMS_IVJs + #include "../../Trunk/EvaluateMomentArmsSequence_IVJs.any" + #else + #include "../../Trunk/EvaluateMomentArmsSequence.any" + #endif #endif AnyOperationSequence Run_all_studies ={ diff --git a/Body/AAUHuman/LegTLEM/EvaluateMomentArmsStudy.any b/Body/AAUHuman/LegTLEM/EvaluateMomentArmsStudy.any index fa129e05a..718b8457e 100644 --- a/Body/AAUHuman/LegTLEM/EvaluateMomentArmsStudy.any +++ b/Body/AAUHuman/LegTLEM/EvaluateMomentArmsStudy.any @@ -68,6 +68,7 @@ AnyKinStudy Study = { #endif AnyFolder &Model = .Model; + AnyOutputFun AngularVelocity_output = {Val = ..Model.Drivers.AngularVelocity;}; AnyFolder MuscleStrengthCalculations = { AnyFolder Abscissa = { @@ -135,13 +136,14 @@ AnyOperationSequence Run = MacroStr = { "classoperation " + CompleteNameOf(&..ModelViews.Views.SelectedView) + strquote("Set View") }; }; AnyOperation &Study = .Study.Kinematics; -// #ifdef ANYBODY_PATH_OUTPUT -// AnyOperationMacro Save = -// { -// MacroStr = { -// "classoperation " + CompleteNameOf(&.Study.Output) + strquote("Save data") -// + " --type=" + strquote("Deep") +" --file=" + strquote( -// ANYBODY_PATH_OUTPUT + .OutputFileName + ".anydata.h5") -// }; -// #endif + #ifdef ANYBODY_PATH_OUTPUT + AnyOperationMacro Save = + { + MacroStr = { + "classoperation " + CompleteNameOf(&..Study.Output) + strquote("Save data") + + " --type=" + strquote("Deep") +" --file=" + strquote( + ANYBODY_PATH_OUTPUT + ..OutputFileName + ".anydata.h5") + }; + }; + #endif }; \ No newline at end of file diff --git a/Body/AAUHuman/Trunk/EvaluateMomentArmsSequence_IVJs.any b/Body/AAUHuman/Trunk/EvaluateMomentArmsSequence_IVJs.any new file mode 100644 index 000000000..cab1ccdd5 --- /dev/null +++ b/Body/AAUHuman/Trunk/EvaluateMomentArmsSequence_IVJs.any @@ -0,0 +1,35 @@ +Trunk = { + AnyKinMeasureOrg Measure_Spine = { + AnyKinMeasure& ref1 = Main.HumanModel.BodyModel.Trunk.Joints.Lumbar.SacrumPelvis; + AnyKinMeasure& ref2 = Main.HumanModel.BodyModel.Trunk.Joints.Lumbar.L5Sacrum; + AnyKinMeasure& ref3 = Main.HumanModel.BodyModel.Trunk.Joints.Lumbar.L4L5; + AnyKinMeasure& ref4 = Main.HumanModel.BodyModel.Trunk.Joints.Lumbar.L3L4; + AnyKinMeasure& ref5 = Main.HumanModel.BodyModel.Trunk.Joints.Lumbar.L2L3; + AnyKinMeasure& ref6 = Main.HumanModel.BodyModel.Trunk.Joints.Lumbar.L1L2; + AnyKinMeasure& ref7 = Main.HumanModel.BodyModel.Trunk.Joints.Lumbar.T12L1; + AnyKinMeasure& ref8 = Main.HumanModel.BodyModel.Trunk.Joints.Thorax.T11T12; + AnyKinMeasure& ref9 = Main.HumanModel.BodyModel.Trunk.Joints.Thorax.T10T11; + AnyKinMeasure& ref10 = Main.HumanModel.BodyModel.Trunk.Joints.Thorax.T9T10; + AnyKinMeasure& ref11 = Main.HumanModel.BodyModel.Trunk.Joints.Thorax.T8T9; + AnyKinMeasure& ref12 = Main.HumanModel.BodyModel.Trunk.Joints.Thorax.T7T8; + AnyKinMeasure& ref13 = Main.HumanModel.BodyModel.Trunk.Joints.Thorax.T6T7; + AnyKinMeasure& ref14 = Main.HumanModel.BodyModel.Trunk.Joints.Thorax.T5T6; + AnyKinMeasure& ref15 = Main.HumanModel.BodyModel.Trunk.Joints.Thorax.T4T5; + AnyKinMeasure& ref16 = Main.HumanModel.BodyModel.Trunk.Joints.Thorax.T3T4; + AnyKinMeasure& ref17 = Main.HumanModel.BodyModel.Trunk.Joints.Thorax.T2T3; + AnyKinMeasure& ref18 = Main.HumanModel.BodyModel.Trunk.Joints.Thorax.T1T2; + AnyKinMeasure& T1C7= Main.HumanModel.BodyModel.Trunk.Joints.Cervical.T1C7; + AnyKinMeasure& C7C6= Main.HumanModel.BodyModel.Trunk.Joints.Cervical.C7C6; + AnyKinMeasure& C6C5= Main.HumanModel.BodyModel.Trunk.Joints.Cervical.C6C5; + AnyKinMeasure& C5C4= Main.HumanModel.BodyModel.Trunk.Joints.Cervical.C5C4; + AnyKinMeasure& C4C3= Main.HumanModel.BodyModel.Trunk.Joints.Cervical.C4C3; + AnyKinMeasure& C3C2= Main.HumanModel.BodyModel.Trunk.Joints.Cervical.C3C2; + AnyKinMeasure& C2C1= Main.HumanModel.BodyModel.Trunk.Joints.Cervical.C2C1; + AnyKinMeasure& C1C0= Main.HumanModel.BodyModel.Trunk.Joints.Cervical.C1C0; + }; +}; + +#include "EvaluateMomentArmsSequence_IVJs_Extension.any" +#include "EvaluateMomentArmsSequence_IVJs_LateralBending.any" +#include "EvaluateMomentArmsSequence_IVJs_AxialRotation.any" + diff --git a/Body/AAUHuman/Trunk/EvaluateMomentArmsSequence_IVJs_AxialRotation.any b/Body/AAUHuman/Trunk/EvaluateMomentArmsSequence_IVJs_AxialRotation.any new file mode 100644 index 000000000..cced734ed --- /dev/null +++ b/Body/AAUHuman/Trunk/EvaluateMomentArmsSequence_IVJs_AxialRotation.any @@ -0,0 +1,1106 @@ +Trunk = { + +// // Adjust the initial posture +// AnyVar Extension ??= DesignVar(0); +// AnyVar LateralBending ??= DesignVar(0); +// AnyVar Rotation ??= DesignVar(0); + + + AnyFolder PelvisSacrumAxialRotation={ + + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion = DesignVar({-5,5}); + + ///////////////////////////////////////// + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_PelvisSacrumAxialRotation"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,...RangeOfMotion[0],0, //SacrumPelvis + 0,0,0, //L5Sacrum + 0,0,0, //L4L5 + 0,0,0, //L3L4 + 0,0,0, //L2L3 + 0,0,0, //L1L2 + 0,0,0, //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,...RangeOfMotion[1]-...RangeOfMotion[0],0, //SacrumPelvis + 0,0,0, //L5Sacrum + 0,0,0, //L4L5 + 0,0,0, //L3L4 + 0,0,0, //L2L3 + 0,0,0, //L1L2 + 0,0,0, //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder L5SacrumAxialRotation={ + + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + ///////////////////////////////////////// + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_L5SacrumAxialRotation"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, //SacrumPelvis + 0,...RangeOfMotion[0],0, //L5Sacrum + 0,0,0, //L4L5 + 0,0,0, //L3L4 + 0,0,0, //L2L3 + 0,0,0, //L1L2 + 0,0,0, //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, //SacrumPelvis + 0,...RangeOfMotion[1]-...RangeOfMotion[0],0, //L5Sacrum + 0,0,0, //L4L5 + 0,0,0, //L3L4 + 0,0,0, //L2L3 + 0,0,0, //L1L2 + 0,0,0, //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder L4L5AxialRotation={ + + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + ///////////////////////////////////////// + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_L4L5AxialRotation"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, //SacrumPelvis + 0,0,0, //L5Sacrum + 0,...RangeOfMotion[0],0, //L4L5 + 0,0,0, //L3L4 + 0,0,0, //L2L3 + 0,0,0, //L1L2 + 0,0,0, //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, //SacrumPelvis + 0,0,0, //L5Sacrum + 0,...RangeOfMotion[1]-...RangeOfMotion[0],0, //L4L5 + 0,0,0, //L3L4 + 0,0,0, //L2L3 + 0,0,0, //L1L2 + 0,0,0, //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder L3L4AxialRotation={ + + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + ///////////////////////////////////////// + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_L3L4AxialRotation"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, //SacrumPelvis + 0,0,0, //L5Sacrum + 0,0,0, //L4L5 + 0,...RangeOfMotion[0],0, //L3L4 + 0,0,0, //L2L3 + 0,0,0, //L1L2 + 0,0,0, //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, //SacrumPelvis + 0,0,0, //L5Sacrum + 0,0,0, //L4L5 + 0,...RangeOfMotion[1]-...RangeOfMotion[0],0, //L3L4 + 0,0,0, //L2L3 + 0,0,0, //L1L2 + 0,0,0, //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder L2L3AxialRotation={ + + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + ///////////////////////////////////////// + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_L2L3AxialRotation"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, //SacrumPelvis + 0,0,0, //L5Sacrum + 0,0,0, //L4L5 + 0,0,0, //L3L4 + 0,...RangeOfMotion[0],0, //L2L3 + 0,0,0, //L1L2 + 0,0,0, //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, //SacrumPelvis + 0,0,0, //L5Sacrum + 0,0,0, //L4L5 + 0,0,0, //L3L4 + 0,...RangeOfMotion[1]-...RangeOfMotion[0],0, //L2L3 + 0,0,0, //L1L2 + 0,0,0, //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder L1L2AxialRotation={ + + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + ///////////////////////////////////////// + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_L1L2AxialRotation"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, //SacrumPelvis + 0,0,0, //L5Sacrum + 0,0,0, //L4L5 + 0,0,0, //L3L4 + 0,0,0, //L2L3 + 0,...RangeOfMotion[0],0, //L1L2 + 0,0,0, //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, //SacrumPelvis + 0,0,0, //L5Sacrum + 0,0,0, //L4L5 + 0,0,0, //L3L4 + 0,0,0, //L2L3 + 0,...RangeOfMotion[1]-...RangeOfMotion[0],0, //L1L2 + 0,0,0, //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder T12L1AxialRotation={ + + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + ///////////////////////////////////////// + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_T12L1AxialRotation"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, //SacrumPelvis + 0,0,0, //L5Sacrum + 0,0,0, //L4L5 + 0,0,0, //L3L4 + 0,0,0, //L2L3 + 0,0,0, //L1L2 + 0,...RangeOfMotion[0],0, //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, //SacrumPelvis + 0,0,0, //L5Sacrum + 0,0,0, //L4L5 + 0,0,0, //L3L4 + 0,0,0, //L2L3 + 0,0,0, //L1L2 + 0,...RangeOfMotion[1]-...RangeOfMotion[0],0, //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + + AnyFolder T11T12AxialRotation={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_T11T12AxialRotation"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,...RangeOfMotion[0],0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,...RangeOfMotion[1]-...RangeOfMotion[0],0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder T10T11AxialRotation={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_T10T11AxialRotation"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,...RangeOfMotion[0],0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,...RangeOfMotion[1]-...RangeOfMotion[0],0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder T9T10AxialRotation={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_T9T10AxialRotation"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,...RangeOfMotion[0],0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,...RangeOfMotion[1]-...RangeOfMotion[0],0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder T8T9AxialRotation={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_T8T9AxialRotation"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,...RangeOfMotion[0],0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,...RangeOfMotion[1]-...RangeOfMotion[0],0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder T7T8AxialRotation={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_T7T8AxialRotation"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,...RangeOfMotion[0],0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,...RangeOfMotion[1]-...RangeOfMotion[0],0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder T6T7AxialRotation={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_T6T7AxialRotation"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,...RangeOfMotion[0],0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,...RangeOfMotion[1]-...RangeOfMotion[0],0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder T5T6AxialRotation={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_T5T6AxialRotation"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,...RangeOfMotion[0],0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,...RangeOfMotion[1]-...RangeOfMotion[0],0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder T4T5AxialRotation={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_T4T5AxialRotation"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,...RangeOfMotion[0],0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,...RangeOfMotion[1]-...RangeOfMotion[0],0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder T3T4AxialRotation={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_T3T4AxialRotation"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,...RangeOfMotion[0],0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,...RangeOfMotion[1]-...RangeOfMotion[0],0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder T2T3AxialRotation={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_T2T3AxialRotation"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,...RangeOfMotion[0],0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,...RangeOfMotion[1]-...RangeOfMotion[0],0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder T1T2AxialRotation={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_T1T2AxialRotation"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,...RangeOfMotion[0],0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,...RangeOfMotion[1]-...RangeOfMotion[0],0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder T1C7AxialRotation={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_T1C7AxialRotation"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,...RangeOfMotion[0],0, //T1C7 + 0,0,0, //C7C6 + 0,0,0, //C6C5 + 0,0,0, //C5C4 + 0,0,0, //C4C3 + 0,0,0, //C3C2 + 0, //C2C1 + 0, //C1C0 + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,...RangeOfMotion[1]-...RangeOfMotion[0],0, //T1C7 + 0,0,0, //C7C6 + 0,0,0, //C6C5 + 0,0,0, //C5C4 + 0,0,0, //C4C3 + 0,0,0, //C3C2 + 0, //C2C1 + 0, //C1C0 + }*pi/180; + }; + }; + }; + + AnyFolder C7C6AxialRotation={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_C7C6AxialRotation"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, //T1C7 + 0,...RangeOfMotion[0],0, //C7C6 + 0,0,0, //C6C5 + 0,0,0, //C5C4 + 0,0,0, //C4C3 + 0,0,0, //C3C2 + 0, //C2C1 + 0, //C1C0 + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, //T1C7 + 0,...RangeOfMotion[1]-...RangeOfMotion[0],0, //C7C6 + 0,0,0, //C6C5 + 0,0,0, //C5C4 + 0,0,0, //C4C3 + 0,0,0, //C3C2 + 0, //C2C1 + 0, //C1C0 + }*pi/180; + }; + }; + }; + + AnyFolder C6C5AxialRotation={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_C6C5AxialRotation"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, //T1C7 + 0,0,0, //C7C6 + 0,...RangeOfMotion[0],0, //C6C5 + 0,0,0, //C5C4 + 0,0,0, //C4C3 + 0,0,0, //C3C2 + 0, //C2C1 + 0, //C1C0 + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, //T1C7 + 0,0,0, //C7C6 + 0,...RangeOfMotion[1]-...RangeOfMotion[0],0, //C6C5 + 0,0,0, //C5C4 + 0,0,0, //C4C3 + 0,0,0, //C3C2 + 0, //C2C1 + 0, //C1C0 + }*pi/180; + }; + }; + }; + + AnyFolder C5C4AxialRotation={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_C5C4AxialRotation"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, //T1C7 + 0,0,0, //C7C6 + 0,0,0, //C6C5 + 0,...RangeOfMotion[0],0, //C5C4 + 0,0,0, //C4C3 + 0,0,0, //C3C2 + 0, //C2C1 + 0, //C1C0 + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, //T1C7 + 0,0,0, //C7C6 + 0,0,0, //C6C5 + 0,...RangeOfMotion[1]-...RangeOfMotion[0],0, //C5C4 + 0,0,0, //C4C3 + 0,0,0, //C3C2 + 0, //C2C1 + 0, //C1C0 + }*pi/180; + }; + }; + }; + + AnyFolder C4C3AxialRotation={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_C4C3AxialRotation"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, //T1C7 + 0,0,0, //C7C6 + 0,0,0, //C6C5 + 0,0,0, //C5C4 + 0,...RangeOfMotion[0],0, //C4C3 + 0,0,0, //C3C2 + 0, //C2C1 + 0, //C1C0 + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, //T1C7 + 0,0,0, //C7C6 + 0,0,0, //C6C5 + 0,0,0, //C5C4 + 0,...RangeOfMotion[1]-...RangeOfMotion[0],0, //C4C3 + 0,0,0, //C3C2 + 0, //C2C1 + 0, //C1C0 + }*pi/180; + }; + }; + }; + + AnyFolder C3C2AxialRotation={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_C3C2AxialRotation"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, //T1C7 + 0,0,0, //C7C6 + 0,0,0, //C6C5 + 0,0,0, //C5C4 + 0,0,0, //C4C3 + 0,...RangeOfMotion[0],0, //C3C2 + 0, //C2C1 + 0, //C1C0 + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, //T1C7 + 0,0,0, //C7C6 + 0,0,0, //C6C5 + 0,0,0, //C5C4 + 0,0,0, //C4C3 + 0,...RangeOfMotion[1]-...RangeOfMotion[0],0, //C3C2 + 0, //C2C1 + 0, //C1C0 + }*pi/180; + }; + }; + }; + + AnyFolder C2C1AxialRotation={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_C2C1AxialRotation"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, //T1C7 + 0,0,0, //C7C6 + 0,0,0, //C6C5 + 0,0,0, //C5C4 + 0,0,0, //C4C3 + 0,0,0, //C3C2 + ...RangeOfMotion[0], //C2C1 + 0, //C1C0 + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, //T1C7 + 0,0,0, //C7C6 + 0,0,0, //C6C5 + 0,0,0, //C5C4 + 0,0,0, //C4C3 + 0,0,0, //C3C2 + ...RangeOfMotion[1]-...RangeOfMotion[0], //C2C1 + 0, //C1C0 + }*pi/180; + }; + }; + }; + +};//Trunk + +Run_all_studies ={ + AnyOperation &PelvisSacrumAxialRotation = .Trunk.PelvisSacrumAxialRotation.Run; + AnyOperation &L5SacrumAxialRotation = .Trunk.L5SacrumAxialRotation.Run; + AnyOperation &L4L5AxialRotation = .Trunk.L4L5AxialRotation.Run; + AnyOperation &L3L4AxialRotation = .Trunk.L3L4AxialRotation.Run; + AnyOperation &L2L3AxialRotation = .Trunk.L2L3AxialRotation.Run; + AnyOperation &L1L2AxialRotation = .Trunk.L1L2AxialRotation.Run; + AnyOperation &T12L1AxialRotation = .Trunk.T12L1AxialRotation.Run; + AnyOperation &T11T12AxialRotation = .Trunk.T11T12AxialRotation.Run; + AnyOperation &T10T11AxialRotation = .Trunk.T10T11AxialRotation.Run; + AnyOperation &T9T10AxialRotation = .Trunk.T9T10AxialRotation.Run; + AnyOperation &T8T9AxialRotation = .Trunk.T8T9AxialRotation.Run; + AnyOperation &T7T8AxialRotation = .Trunk.T7T8AxialRotation.Run; + AnyOperation &T6T7AxialRotation = .Trunk.T6T7AxialRotation.Run; + AnyOperation &T5T6AxialRotation = .Trunk.T5T6AxialRotation.Run; + AnyOperation &T4T5AxialRotation = .Trunk.T4T5AxialRotation.Run; + AnyOperation &T3T4AxialRotation = .Trunk.T3T4AxialRotation.Run; + AnyOperation &T2T3AxialRotation = .Trunk.T2T3AxialRotation.Run; + AnyOperation &T1T2AxialRotation = .Trunk.T1T2AxialRotation.Run; + AnyOperation &T1C7AxialRotation = .Trunk.T1C7AxialRotation.Run; + AnyOperation &C7C6AxialRotation = .Trunk.C7C6AxialRotation.Run; + AnyOperation &C6C5AxialRotation = .Trunk.C6C5AxialRotation.Run; + AnyOperation &C5C4AxialRotation = .Trunk.C5C4AxialRotation.Run; + AnyOperation &C4C3AxialRotation = .Trunk.C4C3AxialRotation.Run; + AnyOperation &C3C2AxialRotation = .Trunk.C3C2AxialRotation.Run; + AnyOperation &C2C1AxialRotation = .Trunk.C2C1AxialRotation.Run; +}; + diff --git a/Body/AAUHuman/Trunk/EvaluateMomentArmsSequence_IVJs_Extension.any b/Body/AAUHuman/Trunk/EvaluateMomentArmsSequence_IVJs_Extension.any new file mode 100644 index 000000000..3eb9143e0 --- /dev/null +++ b/Body/AAUHuman/Trunk/EvaluateMomentArmsSequence_IVJs_Extension.any @@ -0,0 +1,1214 @@ +Trunk = { + +// // Adjust the initial posture +// AnyVar Extension ??= DesignVar(0); +// AnyVar LateralBending ??= DesignVar(0); +// AnyVar Rotation ??= DesignVar(0); + + + AnyFolder PelvisSacrumExtension={ + + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion = DesignVar({-5,5}); + + ///////////////////////////////////////// + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_PelvisSacrumExtension"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,...RangeOfMotion[0], //SacrumPelvis + 0,0,0, //L5Sacrum + 0,0,0, //L4L5 + 0,0,0, //L3L4 + 0,0,0, //L2L3 + 0,0,0, //L1L2 + 0,0,0, //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,...RangeOfMotion[1]-...RangeOfMotion[0], //SacrumPelvis + 0,0,0, //L5Sacrum + 0,0,0, //L4L5 + 0,0,0, //L3L4 + 0,0,0, //L2L3 + 0,0,0, //L1L2 + 0,0,0, //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder L5SacrumExtension={ + + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + ///////////////////////////////////////// + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_L5SacrumExtension"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, //SacrumPelvis + 0,0,...RangeOfMotion[0], //L5Sacrum + 0,0,0, //L4L5 + 0,0,0, //L3L4 + 0,0,0, //L2L3 + 0,0,0, //L1L2 + 0,0,0, //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, //SacrumPelvis + 0,0,...RangeOfMotion[1]-...RangeOfMotion[0], //L5Sacrum + 0,0,0, //L4L5 + 0,0,0, //L3L4 + 0,0,0, //L2L3 + 0,0,0, //L1L2 + 0,0,0, //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder L4L5Extension={ + + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + ///////////////////////////////////////// + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_L4L5Extension"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, //SacrumPelvis + 0,0,0, //L5Sacrum + 0,0,...RangeOfMotion[0], //L4L5 + 0,0,0, //L3L4 + 0,0,0, //L2L3 + 0,0,0, //L1L2 + 0,0,0, //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, //SacrumPelvis + 0,0,0, //L5Sacrum + 0,0,...RangeOfMotion[1]-...RangeOfMotion[0], //L4L5 + 0,0,0, //L3L4 + 0,0,0, //L2L3 + 0,0,0, //L1L2 + 0,0,0, //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder L3L4Extension={ + + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + ///////////////////////////////////////// + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_L3L4Extension"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, //SacrumPelvis + 0,0,0, //L5Sacrum + 0,0,0, //L4L5 + 0,0,...RangeOfMotion[0], //L3L4 + 0,0,0, //L2L3 + 0,0,0, //L1L2 + 0,0,0, //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, //SacrumPelvis + 0,0,0, //L5Sacrum + 0,0,0, //L4L5 + 0,0,...RangeOfMotion[1]-...RangeOfMotion[0], //L3L4 + 0,0,0, //L2L3 + 0,0,0, //L1L2 + 0,0,0, //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder L2L3Extension={ + + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + ///////////////////////////////////////// + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_L2L3Extension"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, //SacrumPelvis + 0,0,0, //L5Sacrum + 0,0,0, //L4L5 + 0,0,0, //L3L4 + 0,0,...RangeOfMotion[0], //L2L3 + 0,0,0, //L1L2 + 0,0,0, //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, //SacrumPelvis + 0,0,0, //L5Sacrum + 0,0,0, //L4L5 + 0,0,0, //L3L4 + 0,0,...RangeOfMotion[1]-...RangeOfMotion[0], //L2L3 + 0,0,0, //L1L2 + 0,0,0, //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder L1L2Extension={ + + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + ///////////////////////////////////////// + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_L1L2Extension"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, //SacrumPelvis + 0,0,0, //L5Sacrum + 0,0,0, //L4L5 + 0,0,0, //L3L4 + 0,0,0, //L2L3 + 0,0,...RangeOfMotion[0], //L1L2 + 0,0,0, //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, //SacrumPelvis + 0,0,0, //L5Sacrum + 0,0,0, //L4L5 + 0,0,0, //L3L4 + 0,0,0, //L2L3 + 0,0,...RangeOfMotion[1]-...RangeOfMotion[0], //L1L2 + 0,0,0, //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder T12L1Extension={ + + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + ///////////////////////////////////////// + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_T12L1Extension"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, //SacrumPelvis + 0,0,0, //L5Sacrum + 0,0,0, //L4L5 + 0,0,0, //L3L4 + 0,0,0, //L2L3 + 0,0,0, //L1L2 + 0,0,...RangeOfMotion[0], //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, //SacrumPelvis + 0,0,0, //L5Sacrum + 0,0,0, //L4L5 + 0,0,0, //L3L4 + 0,0,0, //L2L3 + 0,0,0, //L1L2 + 0,0,...RangeOfMotion[1]-...RangeOfMotion[0], //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + + AnyFolder T11T12Extension={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_T11T12Extension"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,...RangeOfMotion[0], //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,...RangeOfMotion[1]-...RangeOfMotion[0], //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder T10T11Extension={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_T10T11Extension"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,...RangeOfMotion[0], //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,...RangeOfMotion[1]-...RangeOfMotion[0], //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder T9T10Extension={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_T9T10Extension"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,...RangeOfMotion[0], //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,...RangeOfMotion[1]-...RangeOfMotion[0], //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder T8T9Extension={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_T8T9Extension"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,...RangeOfMotion[0], //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,...RangeOfMotion[1]-...RangeOfMotion[0], //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder T7T8Extension={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_T7T8Extension"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,...RangeOfMotion[0], //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,...RangeOfMotion[1]-...RangeOfMotion[0], //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder T6T7Extension={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_T6T7Extension"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,...RangeOfMotion[0], //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,...RangeOfMotion[1]-...RangeOfMotion[0], //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder T5T6Extension={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_T5T6Extension"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,...RangeOfMotion[0], //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,...RangeOfMotion[1]-...RangeOfMotion[0], //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder T4T5Extension={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_T4T5Extension"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,...RangeOfMotion[0], //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,...RangeOfMotion[1]-...RangeOfMotion[0], //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder T3T4Extension={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_T3T4Extension"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,...RangeOfMotion[0], //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,...RangeOfMotion[1]-...RangeOfMotion[0], //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder T2T3Extension={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_T2T3Extension"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,...RangeOfMotion[0], //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,...RangeOfMotion[1]-...RangeOfMotion[0], //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder T1T2Extension={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_T1T2Extension"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,...RangeOfMotion[0], //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,...RangeOfMotion[1]-...RangeOfMotion[0], //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder T1C7Extension={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_T1C7Extension"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,...RangeOfMotion[0], //T1C7 + 0,0,0, //C7C6 + 0,0,0, //C6C5 + 0,0,0, //C5C4 + 0,0,0, //C4C3 + 0,0,0, //C3C2 + 0, //C2C1 + 0, //C1C0 + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,...RangeOfMotion[1]-...RangeOfMotion[0], //T1C7 + 0,0,0, //C7C6 + 0,0,0, //C6C5 + 0,0,0, //C5C4 + 0,0,0, //C4C3 + 0,0,0, //C3C2 + 0, //C2C1 + 0, //C1C0 + }*pi/180; + }; + }; + }; + + AnyFolder C7C6Extension={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_C7C6Extension"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, //T1C7 + 0,0,...RangeOfMotion[0], //C7C6 + 0,0,0, //C6C5 + 0,0,0, //C5C4 + 0,0,0, //C4C3 + 0,0,0, //C3C2 + 0, //C2C1 + 0, //C1C0 + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, //T1C7 + 0,0,...RangeOfMotion[1]-...RangeOfMotion[0], //C7C6 + 0,0,0, //C6C5 + 0,0,0, //C5C4 + 0,0,0, //C4C3 + 0,0,0, //C3C2 + 0, //C2C1 + 0, //C1C0 + }*pi/180; + }; + }; + }; + + AnyFolder C6C5Extension={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_C6C5Extension"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, //T1C7 + 0,0,0, //C7C6 + 0,0,...RangeOfMotion[0], //C6C5 + 0,0,0, //C5C4 + 0,0,0, //C4C3 + 0,0,0, //C3C2 + 0, //C2C1 + 0, //C1C0 + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, //T1C7 + 0,0,0, //C7C6 + 0,0,...RangeOfMotion[1]-...RangeOfMotion[0], //C6C5 + 0,0,0, //C5C4 + 0,0,0, //C4C3 + 0,0,0, //C3C2 + 0, //C2C1 + 0, //C1C0 + }*pi/180; + }; + }; + }; + + AnyFolder C5C4Extension={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_C5C4Extension"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, //T1C7 + 0,0,0, //C7C6 + 0,0,0, //C6C5 + 0,0,...RangeOfMotion[0], //C5C4 + 0,0,0, //C4C3 + 0,0,0, //C3C2 + 0, //C2C1 + 0, //C1C0 + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, //T1C7 + 0,0,0, //C7C6 + 0,0,0, //C6C5 + 0,0,...RangeOfMotion[1]-...RangeOfMotion[0], //C5C4 + 0,0,0, //C4C3 + 0,0,0, //C3C2 + 0, //C2C1 + 0, //C1C0 + }*pi/180; + }; + }; + }; + + AnyFolder C4C3Extension={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_C4C3Extension"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, //T1C7 + 0,0,0, //C7C6 + 0,0,0, //C6C5 + 0,0,0, //C5C4 + 0,0,...RangeOfMotion[0], //C4C3 + 0,0,0, //C3C2 + 0, //C2C1 + 0, //C1C0 + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, //T1C7 + 0,0,0, //C7C6 + 0,0,0, //C6C5 + 0,0,0, //C5C4 + 0,0,...RangeOfMotion[1]-...RangeOfMotion[0], //C4C3 + 0,0,0, //C3C2 + 0, //C2C1 + 0, //C1C0 + }*pi/180; + }; + }; + }; + + AnyFolder C3C2Extension={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_C3C2Extension"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, //T1C7 + 0,0,0, //C7C6 + 0,0,0, //C6C5 + 0,0,0, //C5C4 + 0,0,0, //C4C3 + 0,0,...RangeOfMotion[0], //C3C2 + 0, //C2C1 + 0, //C1C0 + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, //T1C7 + 0,0,0, //C7C6 + 0,0,0, //C6C5 + 0,0,0, //C5C4 + 0,0,0, //C4C3 + 0,0,...RangeOfMotion[1]-...RangeOfMotion[0], //C3C2 + 0, //C2C1 + 0, //C1C0 + }*pi/180; + }; + }; + }; + +// AnyFolder C2C1Extension={ +// // Change the following variables to adjust the moment arm study +// AnyVector RangeOfMotion ??= DesignVar({-5,5}); +// +// // The following should not be changed +// AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; +// AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; +// #include "EvaluateMomentArmsStudy_IVJs.any" +// AnyString OutputFileName = "MomentArms_Trunk_C2C1Extension"; +// Model.Drivers = { +// AnyKinEqSimpleDriver TrunkDriver= { +// AnyKinMeasure& TrunkMeasure = ....Measure_Spine; +// DriverPos = { +// 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar +// 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic +// 0,0,0, //T1C7 +// 0,0,0, //C7C6 +// 0,0,0, //C6C5 +// 0,0,0, //C5C4 +// 0,0,0, //C4C3 +// 0,0,0, //C3C2 +// 0, //C2C1 +// 0, //C1C0 +// }*pi/180; +// DriverVel = { +// 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar +// 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic +// 0,0,0, //T1C7 +// 0,0,0, //C7C6 +// 0,0,0, //C6C5 +// 0,0,0, //C5C4 +// 0,0,0, //C4C3 +// 0,0,0, //C3C2 +// 0, //C2C1 +// 0, //C1C0 +// }*pi/180; +// }; +// }; +// }; + + AnyFolder C1C0Extension={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_C1C0Extension"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, //T1C7 + 0,0,0, //C7C6 + 0,0,0, //C6C5 + 0,0,0, //C5C4 + 0,0,0, //C4C3 + 0,0,0, //C3C2 + 0, //C2C1 + ...RangeOfMotion[0], //C1C0 + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, //T1C7 + 0,0,0, //C7C6 + 0,0,0, //C6C5 + 0,0,0, //C5C4 + 0,0,0, //C4C3 + 0,0,0, //C3C2 + 0, //C2C1 + ...RangeOfMotion[1]-...RangeOfMotion[0], //C1C0 + }*pi/180; + }; + }; + }; + + // AnyFolder PelvisThoraxExtension={ + // + // // Change the following variables to adjust the moment arm study + // AnyVector RangeOfMotion ??= DesignVar({-60,30}); + // AnyVar PelvisThoraxLateralBending ??= DesignVar(0); + // AnyVar PelvisThoraxRotation ??= DesignVar(0); + // ///////////////////////////////////////// + // + // // The following should not be changed + // AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + // AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + // #include "EvaluateMomentArmsStudy.any" + // AnyString OutputFileName = "MomentArms_Trunk_PelvisThoraxExtension"; + // Model.Drivers = { + // AnyKinEqSimpleDriver TrunkDriver= { + // AnyKinMeasure& ref = .TrunkMeasure; + // DriverPos = {...RangeOfMotion[0],...PelvisThoraxLateralBending,...PelvisThoraxRotation,0,0,0}*pi/180; + // DriverVel = {...RangeOfMotion[1]-...RangeOfMotion[0],0,0,0,0,0}*pi/180; + // }; + // }; + // }; + + // AnyFolder PelvisThoraxLateralBending={ + // // Change the following variables to adjust the moment arm study + // AnyVector RangeOfMotion ??= DesignVar({-30,30}); + // AnyVar PelvisThoraxExtension ??= DesignVar(0); + // AnyVar PelvisThoraxRotation ??= DesignVar(0); + // ///////////////////////////////////////////////////////////// + // + // AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + // AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + // #include "EvaluateMomentArmsStudy.any" + // AnyString OutputFileName = "MomentArms_Trunk_PelvisThoraxLateralBending"; + // Model.Drivers = { + // AnyKinEqSimpleDriver TrunkDriver= { + // AnyKinMeasure& ref = .TrunkMeasure; + // DriverPos = {...PelvisThoraxExtension,...RangeOfMotion[0],...PelvisThoraxRotation, 0,0,0}*pi/180; + // DriverVel = {0,...RangeOfMotion[1]-...RangeOfMotion[0],0,0,0,0}*pi/180; + // }; + // }; + // }; + // + // AnyFolder PelvisThoraxRotation={ + // // Change the following variables to adjust the moment arm study + // AnyVector RangeOfMotion ??= DesignVar({-40,40}); + // AnyVar PelvisThoraxExtension ??= DesignVar(0); + // AnyVar PelvisThoraxLateralBending ??= DesignVar(0); + // //////////////////////////////////////////////////////////////// + // + // AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + // AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + // #include "EvaluateMomentArmsStudy.any" + // AnyString OutputFileName = "MomentArms_Trunk_PelvisThoraxRotation"; + // Model.Drivers = { + // AnyKinEqSimpleDriver TrunkDriver= { + // AnyKinMeasure& ref = .TrunkMeasure; + // DriverPos = {...PelvisThoraxExtension,...PelvisThoraxLateralBending,...RangeOfMotion[0], 0,0,0}*pi/180; + // DriverVel = {0,0,...RangeOfMotion[1]-...RangeOfMotion[0],0,0,0}*pi/180; + // }; + // }; + // }; + + + +};//Trunk + +Run_all_studies ={ + // AnyOperation &Trunk1 = .Trunk.PelvisThoraxExtension.Run; + // AnyOperation &Trunk2 = .Trunk.PelvisThoraxLateralBending.Run; + // AnyOperation &Trunk3 = .Trunk.PelvisThoraxRotation.Run; + AnyOperation &PelvisSacrumExtension = .Trunk.PelvisSacrumExtension.Run; + AnyOperation &L5SacrumExtension = .Trunk.L5SacrumExtension.Run; + AnyOperation &L4L5Extension = .Trunk.L4L5Extension.Run; + AnyOperation &L3L4Extension = .Trunk.L3L4Extension.Run; + AnyOperation &L2L3Extension = .Trunk.L2L3Extension.Run; + AnyOperation &L1L2Extension = .Trunk.L1L2Extension.Run; + AnyOperation &T12L1Extension = .Trunk.T12L1Extension.Run; + AnyOperation &T11T12Extension = .Trunk.T11T12Extension.Run; + AnyOperation &T10T11Extension = .Trunk.T10T11Extension.Run; + AnyOperation &T9T10Extension = .Trunk.T9T10Extension.Run; + AnyOperation &T8T9Extension = .Trunk.T8T9Extension.Run; + AnyOperation &T7T8Extension = .Trunk.T7T8Extension.Run; + AnyOperation &T6T7Extension = .Trunk.T6T7Extension.Run; + AnyOperation &T5T6Extension = .Trunk.T5T6Extension.Run; + AnyOperation &T4T5Extension = .Trunk.T4T5Extension.Run; + AnyOperation &T3T4Extension = .Trunk.T3T4Extension.Run; + AnyOperation &T2T3Extension = .Trunk.T2T3Extension.Run; + AnyOperation &T1T2Extension = .Trunk.T1T2Extension.Run; + AnyOperation &T1C7Extension = .Trunk.T1C7Extension.Run; + AnyOperation &C7C6Extension = .Trunk.C7C6Extension.Run; + AnyOperation &C6C5Extension = .Trunk.C6C5Extension.Run; + AnyOperation &C5C4Extension = .Trunk.C5C4Extension.Run; + AnyOperation &C4C3Extension = .Trunk.C4C3Extension.Run; + AnyOperation &C3C2Extension = .Trunk.C3C2Extension.Run; +// AnyOperation &C2C1Extension = .Trunk.C2C1Extension.Run; + AnyOperation &C1C0Extension = .Trunk.C1C0Extension.Run; +}; + diff --git a/Body/AAUHuman/Trunk/EvaluateMomentArmsSequence_IVJs_LateralBending.any b/Body/AAUHuman/Trunk/EvaluateMomentArmsSequence_IVJs_LateralBending.any new file mode 100644 index 000000000..57c9b1cda --- /dev/null +++ b/Body/AAUHuman/Trunk/EvaluateMomentArmsSequence_IVJs_LateralBending.any @@ -0,0 +1,1068 @@ +Trunk = { + +// // Adjust the initial posture +// AnyVar Extension ??= DesignVar(0); +// AnyVar LateralBending ??= DesignVar(0); +// AnyVar Rotation ??= DesignVar(0); + + + AnyFolder PelvisSacrumLateralBending={ + + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion = DesignVar({-5,5}); + + ///////////////////////////////////////// + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_PelvisSacrumLateralBending"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + ...RangeOfMotion[0],0,0, //SacrumPelvis + 0,0,0, //L5Sacrum + 0,0,0, //L4L5 + 0,0,0, //L3L4 + 0,0,0, //L2L3 + 0,0,0, //L1L2 + 0,0,0, //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + ...RangeOfMotion[1]-...RangeOfMotion[0],0,0, //SacrumPelvis + 0,0,0, //L5Sacrum + 0,0,0, //L4L5 + 0,0,0, //L3L4 + 0,0,0, //L2L3 + 0,0,0, //L1L2 + 0,0,0, //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder L5SacrumLateralBending={ + + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + ///////////////////////////////////////// + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_L5SacrumLateralBending"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, //SacrumPelvis + ...RangeOfMotion[0],0,0, //L5Sacrum + 0,0,0, //L4L5 + 0,0,0, //L3L4 + 0,0,0, //L2L3 + 0,0,0, //L1L2 + 0,0,0, //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, //SacrumPelvis + ...RangeOfMotion[1]-...RangeOfMotion[0],0,0, //L5Sacrum + 0,0,0, //L4L5 + 0,0,0, //L3L4 + 0,0,0, //L2L3 + 0,0,0, //L1L2 + 0,0,0, //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder L4L5LateralBending={ + + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + ///////////////////////////////////////// + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_L4L5LateralBending"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, //SacrumPelvis + 0,0,0, //L5Sacrum + ...RangeOfMotion[0],0,0, //L4L5 + 0,0,0, //L3L4 + 0,0,0, //L2L3 + 0,0,0, //L1L2 + 0,0,0, //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, //SacrumPelvis + 0,0,0, //L5Sacrum + ...RangeOfMotion[1]-...RangeOfMotion[0],0,0, //L4L5 + 0,0,0, //L3L4 + 0,0,0, //L2L3 + 0,0,0, //L1L2 + 0,0,0, //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder L3L4LateralBending={ + + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + ///////////////////////////////////////// + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_L3L4LateralBending"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, //SacrumPelvis + 0,0,0, //L5Sacrum + 0,0,0, //L4L5 + ...RangeOfMotion[0],0,0, //L3L4 + 0,0,0, //L2L3 + 0,0,0, //L1L2 + 0,0,0, //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, //SacrumPelvis + 0,0,0, //L5Sacrum + 0,0,0, //L4L5 + ...RangeOfMotion[1]-...RangeOfMotion[0],0,0, //L3L4 + 0,0,0, //L2L3 + 0,0,0, //L1L2 + 0,0,0, //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder L2L3LateralBending={ + + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + ///////////////////////////////////////// + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_L2L3LateralBending"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, //SacrumPelvis + 0,0,0, //L5Sacrum + 0,0,0, //L4L5 + 0,0,0, //L3L4 + ...RangeOfMotion[0],0,0, //L2L3 + 0,0,0, //L1L2 + 0,0,0, //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, //SacrumPelvis + 0,0,0, //L5Sacrum + 0,0,0, //L4L5 + 0,0,0, //L3L4 + ...RangeOfMotion[1]-...RangeOfMotion[0],0,0, //L2L3 + 0,0,0, //L1L2 + 0,0,0, //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder L1L2LateralBending={ + + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + ///////////////////////////////////////// + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_L1L2LateralBending"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, //SacrumPelvis + 0,0,0, //L5Sacrum + 0,0,0, //L4L5 + 0,0,0, //L3L4 + 0,0,0, //L2L3 + ...RangeOfMotion[0],0,0, //L1L2 + 0,0,0, //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, //SacrumPelvis + 0,0,0, //L5Sacrum + 0,0,0, //L4L5 + 0,0,0, //L3L4 + 0,0,0, //L2L3 + ...RangeOfMotion[1]-...RangeOfMotion[0],0,0, //L1L2 + 0,0,0, //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder T12L1LateralBending={ + + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + ///////////////////////////////////////// + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_T12L1LateralBending"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, //SacrumPelvis + 0,0,0, //L5Sacrum + 0,0,0, //L4L5 + 0,0,0, //L3L4 + 0,0,0, //L2L3 + 0,0,0, //L1L2 + ...RangeOfMotion[0],0,0, //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, //SacrumPelvis + 0,0,0, //L5Sacrum + 0,0,0, //L4L5 + 0,0,0, //L3L4 + 0,0,0, //L2L3 + 0,0,0, //L1L2 + ...RangeOfMotion[1]-...RangeOfMotion[0],0,0, //T12L1 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + + AnyFolder T11T12LateralBending={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_T11T12LateralBending"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + ...RangeOfMotion[0],0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + ...RangeOfMotion[1]-...RangeOfMotion[0],0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder T10T11LateralBending={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_T10T11LateralBending"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + ...RangeOfMotion[0],0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + ...RangeOfMotion[1]-...RangeOfMotion[0],0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder T9T10LateralBending={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_T9T10LateralBending"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + ...RangeOfMotion[0],0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + ...RangeOfMotion[1]-...RangeOfMotion[0],0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder T8T9LateralBending={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_T8T9LateralBending"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + ...RangeOfMotion[0],0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + ...RangeOfMotion[1]-...RangeOfMotion[0],0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder T7T8LateralBending={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_T7T8LateralBending"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + ...RangeOfMotion[0],0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + ...RangeOfMotion[1]-...RangeOfMotion[0],0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder T6T7LateralBending={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_T6T7LateralBending"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + ...RangeOfMotion[0],0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + ...RangeOfMotion[1]-...RangeOfMotion[0],0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder T5T6LateralBending={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_T5T6LateralBending"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + ...RangeOfMotion[0],0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + ...RangeOfMotion[1]-...RangeOfMotion[0],0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder T4T5LateralBending={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_T4T5LateralBending"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + ...RangeOfMotion[0],0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + ...RangeOfMotion[1]-...RangeOfMotion[0],0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder T3T4LateralBending={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_T3T4LateralBending"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + ...RangeOfMotion[0],0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + ...RangeOfMotion[1]-...RangeOfMotion[0],0,0, //T3T4 + 0,0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder T2T3LateralBending={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_T2T3LateralBending"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + ...RangeOfMotion[0],0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + ...RangeOfMotion[1]-...RangeOfMotion[0],0,0, //T2T3 + 0,0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder T1T2LateralBending={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_T1T2LateralBending"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + ...RangeOfMotion[0],0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, //T11T12 + 0,0,0, //T10T11 + 0,0,0, //T9T10 + 0,0,0, //T8T9 + 0,0,0, //T7T8 + 0,0,0, //T6T7 + 0,0,0, //T5T6 + 0,0,0, //T4T5 + 0,0,0, //T3T4 + 0,0,0, //T2T3 + ...RangeOfMotion[1]-...RangeOfMotion[0],0,0, //T1T2 + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0, 0, //Cervical + }*pi/180; + }; + }; + }; + + AnyFolder T1C7LateralBending={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_T1C7LateralBending"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + ...RangeOfMotion[0],0,0, //T1C7 + 0,0,0, //C7C6 + 0,0,0, //C6C5 + 0,0,0, //C5C4 + 0,0,0, //C4C3 + 0,0,0, //C3C2 + 0, //C2C1 + 0, //C1C0 + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + ...RangeOfMotion[1]-...RangeOfMotion[0],0,0, //T1C7 + 0,0,0, //C7C6 + 0,0,0, //C6C5 + 0,0,0, //C5C4 + 0,0,0, //C4C3 + 0,0,0, //C3C2 + 0, //C2C1 + 0, //C1C0 + }*pi/180; + }; + }; + }; + + AnyFolder C7C6LateralBending={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_C7C6LateralBending"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, //T1C7 + ...RangeOfMotion[0],0,0, //C7C6 + 0,0,0, //C6C5 + 0,0,0, //C5C4 + 0,0,0, //C4C3 + 0,0,0, //C3C2 + 0, //C2C1 + 0, //C1C0 + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, //T1C7 + ...RangeOfMotion[1]-...RangeOfMotion[0],0,0, //C7C6 + 0,0,0, //C6C5 + 0,0,0, //C5C4 + 0,0,0, //C4C3 + 0,0,0, //C3C2 + 0, //C2C1 + 0, //C1C0 + }*pi/180; + }; + }; + }; + + AnyFolder C6C5LateralBending={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_C6C5LateralBending"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, //T1C7 + 0,0,0, //C7C6 + ...RangeOfMotion[0],0,0, //C6C5 + 0,0,0, //C5C4 + 0,0,0, //C4C3 + 0,0,0, //C3C2 + 0, //C2C1 + 0, //C1C0 + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, //T1C7 + 0,0,0, //C7C6 + ...RangeOfMotion[1]-...RangeOfMotion[0],0,0, //C6C5 + 0,0,0, //C5C4 + 0,0,0, //C4C3 + 0,0,0, //C3C2 + 0, //C2C1 + 0, //C1C0 + }*pi/180; + }; + }; + }; + + AnyFolder C5C4LateralBending={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_C5C4LateralBending"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, //T1C7 + 0,0,0, //C7C6 + 0,0,0, //C6C5 + ...RangeOfMotion[0],0,0, //C5C4 + 0,0,0, //C4C3 + 0,0,0, //C3C2 + 0, //C2C1 + 0, //C1C0 + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, //T1C7 + 0,0,0, //C7C6 + 0,0,0, //C6C5 + ...RangeOfMotion[1]-...RangeOfMotion[0],0,0, //C5C4 + 0,0,0, //C4C3 + 0,0,0, //C3C2 + 0, //C2C1 + 0, //C1C0 + }*pi/180; + }; + }; + }; + + AnyFolder C4C3LateralBending={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_C4C3LateralBending"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, //T1C7 + 0,0,0, //C7C6 + 0,0,0, //C6C5 + 0,0,0, //C5C4 + ...RangeOfMotion[0],0,0, //C4C3 + 0,0,0, //C3C2 + 0, //C2C1 + 0, //C1C0 + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, //T1C7 + 0,0,0, //C7C6 + 0,0,0, //C6C5 + 0,0,0, //C5C4 + ...RangeOfMotion[1]-...RangeOfMotion[0],0,0, //C4C3 + 0,0,0, //C3C2 + 0, //C2C1 + 0, //C1C0 + }*pi/180; + }; + }; + }; + + AnyFolder C3C2LateralBending={ + // Change the following variables to adjust the moment arm study + AnyVector RangeOfMotion ??= DesignVar({-5,5}); + + // The following should not be changed + AnyFolder &TrunkHumanFolderRef =...BodyModel.Trunk; + AnyFolder &TrunkHumanInterfaceRef = ...BodyModel.Interface.Trunk; + #include "EvaluateMomentArmsStudy_IVJs.any" + AnyString OutputFileName = "MomentArms_Trunk_C3C2LateralBending"; + Model.Drivers = { + AnyKinEqSimpleDriver TrunkDriver= { + AnyKinMeasure& TrunkMeasure = ....Measure_Spine; + DriverPos = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, //T1C7 + 0,0,0, //C7C6 + 0,0,0, //C6C5 + 0,0,0, //C5C4 + 0,0,0, //C4C3 + ...RangeOfMotion[0],0,0, //C3C2 + 0, //C2C1 + 0, //C1C0 + }*pi/180; + DriverVel = { + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Lumbar + 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, //Thoracic + 0,0,0, //T1C7 + 0,0,0, //C7C6 + 0,0,0, //C6C5 + 0,0,0, //C5C4 + 0,0,0, //C4C3 + ...RangeOfMotion[1]-...RangeOfMotion[0],0,0, //C3C2 + 0, //C2C1 + 0, //C1C0 + }*pi/180; + }; + }; + }; + + + + +};//Trunk + +Run_all_studies ={ + AnyOperation &PelvisSacrumLateralBending = .Trunk.PelvisSacrumLateralBending.Run; + AnyOperation &L5SacrumLateralBending = .Trunk.L5SacrumLateralBending.Run; + AnyOperation &L4L5LateralBending = .Trunk.L4L5LateralBending.Run; + AnyOperation &L3L4LateralBending = .Trunk.L3L4LateralBending.Run; + AnyOperation &L2L3LateralBending = .Trunk.L2L3LateralBending.Run; + AnyOperation &L1L2LateralBending = .Trunk.L1L2LateralBending.Run; + AnyOperation &T12L1LateralBending = .Trunk.T12L1LateralBending.Run; + AnyOperation &T11T12LateralBending = .Trunk.T11T12LateralBending.Run; + AnyOperation &T10T11LateralBending = .Trunk.T10T11LateralBending.Run; + AnyOperation &T9T10LateralBending = .Trunk.T9T10LateralBending.Run; + AnyOperation &T8T9LateralBending = .Trunk.T8T9LateralBending.Run; + AnyOperation &T7T8LateralBending = .Trunk.T7T8LateralBending.Run; + AnyOperation &T6T7LateralBending = .Trunk.T6T7LateralBending.Run; + AnyOperation &T5T6LateralBending = .Trunk.T5T6LateralBending.Run; + AnyOperation &T4T5LateralBending = .Trunk.T4T5LateralBending.Run; + AnyOperation &T3T4LateralBending = .Trunk.T3T4LateralBending.Run; + AnyOperation &T2T3LateralBending = .Trunk.T2T3LateralBending.Run; + AnyOperation &T1T2LateralBending = .Trunk.T1T2LateralBending.Run; + AnyOperation &T1C7LateralBending = .Trunk.T1C7LateralBending.Run; + AnyOperation &C7C6LateralBending = .Trunk.C7C6LateralBending.Run; + AnyOperation &C6C5LateralBending = .Trunk.C6C5LateralBending.Run; + AnyOperation &C5C4LateralBending = .Trunk.C5C4LateralBending.Run; + AnyOperation &C4C3LateralBending = .Trunk.C4C3LateralBending.Run; + AnyOperation &C3C2LateralBending = .Trunk.C3C2LateralBending.Run; +}; + diff --git a/Body/AAUHuman/Trunk/EvaluateMomentArmsStudy.any b/Body/AAUHuman/Trunk/EvaluateMomentArmsStudy.any index db6a7df8b..93dcfb9bd 100644 --- a/Body/AAUHuman/Trunk/EvaluateMomentArmsStudy.any +++ b/Body/AAUHuman/Trunk/EvaluateMomentArmsStudy.any @@ -77,6 +77,7 @@ AnyKinStudy Study = { Kinematics.SolverType = KinSolDeterminate; AnyFolder &Model = .Model; + AnyOutputFun AngularVelocity_output = {Val = ..Model.Drivers.AngularVelocity;}; AnyFolder MomentArmCalculations = { @@ -417,13 +418,14 @@ AnyOperationSequence Run = MacroStr = { "classoperation " + CompleteNameOf(&..ModelViews.Views.SelectedView) + strquote("Set View") }; }; AnyOperation &Study = .Study.Kinematics; -// #ifdef ANYBODY_PATH_OUTPUT -// AnyOperationMacro Save = -// { -// MacroStr = { -// "classoperation " + CompleteNameOf(&.Study.Output) + strquote("Save data") -// + " --type=" + strquote("Deep") +" --file=" + strquote( -// ANYBODY_PATH_OUTPUT + .OutputFileName + ".anydata.h5") -// }; -// #endif -}; + #ifdef ANYBODY_PATH_OUTPUT + AnyOperationMacro Save = + { + MacroStr = { + "classoperation " + CompleteNameOf(&..Study.Output) + strquote("Save data") + + " --type=" + strquote("Deep") +" --file=" + strquote( + ANYBODY_PATH_OUTPUT + ..OutputFileName + ".anydata.h5") + }; + }; + #endif +}; \ No newline at end of file diff --git a/Body/AAUHuman/Trunk/EvaluateMomentArmsStudy_IVJs.any b/Body/AAUHuman/Trunk/EvaluateMomentArmsStudy_IVJs.any new file mode 100644 index 000000000..44b0c3979 --- /dev/null +++ b/Body/AAUHuman/Trunk/EvaluateMomentArmsStudy_IVJs.any @@ -0,0 +1,144 @@ + +AnyFolder Model = { + // Model parts included in the moment arm study + AnyFolder &PelvisRef = .TrunkHumanFolderRef.Segments.PelvisSeg; + AnyFolder &TrunkRef = .TrunkHumanFolderRef; + AnyFolder &SpineMusRef = .TrunkHumanFolderRef.Muscles; + AnyFolder &SpineMusRightRef =. TrunkHumanFolderRef.Muscles.Right; + AnyFolder &SpineMusLeftRef = .TrunkHumanFolderRef.Muscles.Left; + + + AnyFixedRefFrame ground = { + AnyRefNode node = { + ARel=..PelvisRef.Axes0; + sRel=..PelvisRef.r0; + }; + }; + + + + +AnyFolder Drivers = { + AnyVar AngularVelocity = (..RangeOfMotion[1]-..RangeOfMotion[0])*pi/180; + + // If Leg are included then Psoas muscle are attached to the legs. + // Thus, we need to driver for the hip joint + #if BM_LEG_RIGHT + AnySphericalJoint &RHipJoint = .....BodyModel.Right.Leg.Jnt.Hip; + AnyKinEq RHipDriver= { + AnyKinMeasureOrg HipMeasure = { + AnyKinMeasure& ref1 = .......BodyModel.Interface.Right.HipFlexion; + AnyKinMeasure& ref2 = .......BodyModel.Interface.Right.HipAbduction; + AnyKinMeasure& ref3 = .......BodyModel.Interface.Right.HipExternalRotation; + }; + }; + #endif + #if BM_LEG_LEFT + AnySphericalJoint &LHipJoint = .....BodyModel.Left.Leg.Jnt.Hip; + AnyKinEq LHipDriver= { + AnyKinMeasureOrg HipMeasure = { + AnyKinMeasure& ref1 = .......BodyModel.Interface.Left.HipFlexion; + AnyKinMeasure& ref2 = .......BodyModel.Interface.Left.HipAbduction; + AnyKinMeasure& ref3 = .......BodyModel.Interface.Left.HipExternalRotation; + }; + }; + #endif + + + AnyStdJoint PelvisGround={ + AnyRefFrame &Ground = ..ground.node; + AnyRefFrame &Sacrum= ..PelvisRef; + }; + +};// Drivers + +//AnyFolder MomentArmCalculations_AllMuscles = { +// +// AnyFolder Abcissa = { +// AnyVar JointAngle = not(not(..Drivers.TrunkDriver.DriverVel))*..Drivers.TrunkDriver.TrunkMeasure.Pos'*180/pi ; +// }; +// +// AnyObjectPtrArray trunk_muscles = ObjSearchRecursive("Main.HumanModel.BodyModel.Trunk.Muscles", "*", "AnyMuscle",10); +// +// MomentArmPtrArrays MomentArm() = { +// MusclesLmtDotObj = ObjGetMember(.trunk_muscles, "LmtDot"); +// MusclesStrengthObj = ObjGetMember(.trunk_muscles, "Strength"); +// AngularVelocity = ..Drivers.AngularVelocity; +// }; +// +//}; + +}; + + +AnyKinStudy Study = { + Gravity = {0,0,0}; + #ifdef EVALUATE_MOMENT_ARMS_NSTEP + nStep = EVALUATE_MOMENT_ARMS_NSTEP; + #else + nStep = 40; + #endif + + InitialConditions.SolverType = Kinematics.SolverType ; + Kinematics.SolverType = KinSolDeterminate; + + AnyFolder &Model = .Model; + AnyOutputFun AngularVelocity_output = {Val = ..Model.Drivers.AngularVelocity;}; + + AnyFolder MomentArmCalculations = { + + AnyFolder Abcissa = { + AnyVar JointAngle = not(not(..Model.Drivers.TrunkDriver.DriverVel))*..Model.Drivers.TrunkDriver.TrunkMeasure.Pos'*180/pi ; + }; + + AnyObjectPtrArray trunk_muscles = ObjSearchRecursive("Main.HumanModel.BodyModel.Trunk.Muscles", "*", "AnyMuscle",10); + + + + }; +}; + +#if (ANYBODY_V1 >= 6) & (ANYBODY_V2 >= 1) +AnyFolder ModelViews = { AnyFolder Views = {}; }; +#else +AnyProject ModelViews = {}; +#endif + +ModelViews = { + AnyDrawGroup Selection = { + Objects = arrcat(arrcat(arrcat(arrcat( + ObjSearchRecursive(CompleteNameOf(&..Model.PelvisRef ), "*", "AnyDrawObject"), + ObjSearchRecursive(CompleteNameOf(&..Model.TrunkRef ), "*", "AnyDrawObject")), + ObjSearchRecursive(CompleteNameOf(&..Model.SpineMusRef ), "*", "AnyDrawObject")), + ObjSearchRecursive(CompleteNameOf(&..Model.SpineMusRightRef ), "*", "AnyDrawObject")), + ObjSearchRecursive(CompleteNameOf(&..Model.SpineMusLeftRef ), "*", "AnyDrawObject")); + }; + Views = { + AnyProjectModelViewDefinition SelectedView = { + DrawGroupSequence = {&..Selection}; + Reset = {On}; + }; + }; +}; + +AnyOperationSequence Run = +{ + AnyOperationMacro SetView = + { + MacroStr = { "classoperation " + CompleteNameOf(&..ModelViews.Views.SelectedView) + strquote("Set View") }; + }; + AnyOperation &Study = .Study.Kinematics; + #ifdef ANYBODY_PATH_OUTPUT + AnyOperationMacro Save = + { + MacroStr = { + "classoperation " + CompleteNameOf(&..Study.Output) + strquote("Save data") + + " --type=" + strquote("Deep") +" --file=" + strquote( + ANYBODY_PATH_OUTPUT + ..OutputFileName + ".anydata.h5") + }; + }; + #endif + + + +}; \ No newline at end of file From 88200ece9ae039c4362c08d36c380b45fba91439 Mon Sep 17 00:00:00 2001 From: Morten Enemark Lund Date: Thu, 5 Sep 2024 15:30:34 +0200 Subject: [PATCH 27/31] Fixed trunk scaling issue This correct the fix in 089792e23f7ad41a40553ba8f123c229e7c987da --- Body/AAUHuman/Scaling/DefaultAnthropometrics.any | 2 +- Body/AAUHuman/Scaling/DefaultAnthropometrics_xyz.any | 2 +- Body/AAUHuman/Trunk/TrunkData1.1/ThoracicNodes.any | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Body/AAUHuman/Scaling/DefaultAnthropometrics.any b/Body/AAUHuman/Scaling/DefaultAnthropometrics.any index 28b9c7fde..b68efea3d 100644 --- a/Body/AAUHuman/Scaling/DefaultAnthropometrics.any +++ b/Body/AAUHuman/Scaling/DefaultAnthropometrics.any @@ -63,7 +63,7 @@ AnyFolder SegmentDimensions = { #endif AnyVar HeadHeight ??= DesignVar(0.14*.BodyHeight/1.75); //height in neutral position from C1HatNode to top of head - AnyVar TrunkHeight ??= DesignVar(0.620233*.BodyHeight/1.75); //height in neautral position from C1HatNode to L5SacrumJnt + AnyVar TrunkHeight ??= DesignVar(0.6012695*.BodyHeight/1.75); //height in neautral position from C1HatNode to L5SacrumJnt // These two folders are used by the scaling laws diff --git a/Body/AAUHuman/Scaling/DefaultAnthropometrics_xyz.any b/Body/AAUHuman/Scaling/DefaultAnthropometrics_xyz.any index 923b8d479..3d7562931 100644 --- a/Body/AAUHuman/Scaling/DefaultAnthropometrics_xyz.any +++ b/Body/AAUHuman/Scaling/DefaultAnthropometrics_xyz.any @@ -61,7 +61,7 @@ AnyFolder SegmentDimensions = { AnyVar HeadWidth ??= DesignVar(0.1797169*.SegmentScaleFactors.BodyScale); ///< Distance from the most lateral point to most medial point on the skull AnyVar HeadDepth ??= DesignVar(0.2295371*.SegmentScaleFactors.BodyScale); ///< Distance from the most anterior point on the skull to the most posterior point on the skull - AnyVar TrunkHeight ??= DesignVar(0.606667*.BodyHeight/1.75); ///< Height in neutral position from C1HatNode to L5SacrumJnt + AnyVar TrunkHeight ??= DesignVar(0.6012695*.BodyHeight/1.75); ///< Height in neutral position from C1HatNode to L5SacrumJnt AnyVar TrunkWidth ??= DesignVar(0.3875729*.SegmentScaleFactors.BodyScale); //< Width between shoulder joints AnyVar TrunkDepth ??= DesignVar(0.1867059*.SegmentScaleFactors.BodyScale); ///< Horizontal distance between (midpoint of LTptT8S3Via3NodeL and LTptT8S3Via3NodeR) and (midpoint of RACP_CO6ViaNodeR and RACP_CO6ViaNodeL) diff --git a/Body/AAUHuman/Trunk/TrunkData1.1/ThoracicNodes.any b/Body/AAUHuman/Trunk/TrunkData1.1/ThoracicNodes.any index e631f978e..0a892582d 100644 --- a/Body/AAUHuman/Trunk/TrunkData1.1/ThoracicNodes.any +++ b/Body/AAUHuman/Trunk/TrunkData1.1/ThoracicNodes.any @@ -5628,7 +5628,7 @@ AnyFolder Thorax = { AnyVar BodyMass = 75; ///< This is a body mass that the trunk dataset is based on AnyVar UBHeight = 0.50; //Upperbody height - AnyVar Height = 0.620233;///< Height computed from the L5SacrumJnt to C1 node + AnyVar Height = vnorm( .C1.C1C0JntNode_pos - .L5.L5SacrumJntNode_pos);///< Height computed from the L5SacrumJnt to C1 node AnyVar Width = 0.3881839;///< Shoulder width AnyVar Depth = 0.1870;///< Horizontal distance between (midpoint of LTptT8S3Via3NodeL and LTptT8S3Via3NodeR) and (midpoint of RACP_CO6ViaNodeR and RACP_CO6ViaNodeL) From f52fa9a98c7ba63202be5d5e04ac5ed24b2b2c67 Mon Sep 17 00:00:00 2001 From: hs Date: Thu, 12 Sep 2024 11:43:15 +0200 Subject: [PATCH 28/31] Pelvis interface morphing fixing points --- .../LegTLEM/TLEM2.2/ModelSegmentParameters.any | 9 ++++++++- Body/AAUHuman/Trunk/TrunkData1.1/LumbarNodes.any | 13 ++++++++++--- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/Body/AAUHuman/LegTLEM/TLEM2.2/ModelSegmentParameters.any b/Body/AAUHuman/LegTLEM/TLEM2.2/ModelSegmentParameters.any index 5a56f275a..091132510 100644 --- a/Body/AAUHuman/LegTLEM/TLEM2.2/ModelSegmentParameters.any +++ b/Body/AAUHuman/LegTLEM/TLEM2.2/ModelSegmentParameters.any @@ -99,7 +99,14 @@ Pelvis = { {-0.0416322, -0.000682139, 0.10062}, AsisIpsilateral*.TF', PsisIpsilateral*.TF', - PubicTubercleIpsilateral*.TF' + PubicTubercleIpsilateral*.TF', + {-0.128466, 0.01200837, 0.0409471}, + {-0.125244, 0.02645837, 0.0523163}, + {-0.118915, 0.03473837, 0.0576838}, + {-0.1132534, 0.04438297, 0.06014032}, + {-0.09199495, 0.06035837, 0.07938269}, + {-0.08392038, 0.06081087, 0.09200036}, + {-0.0735202, 0.05591577, 0.1074162} }; diff --git a/Body/AAUHuman/Trunk/TrunkData1.1/LumbarNodes.any b/Body/AAUHuman/Trunk/TrunkData1.1/LumbarNodes.any index e324587ee..f3af345aa 100644 --- a/Body/AAUHuman/Trunk/TrunkData1.1/LumbarNodes.any +++ b/Body/AAUHuman/Trunk/TrunkData1.1/LumbarNodes.any @@ -7,7 +7,7 @@ AnyFolder Pelvis = { AnyFloat SacralInterfaceMorphingPointsPickedMidline = { {0.0543855, -0.0164601, 0}, {0.024924, 0.00666343, 0}, - {-0.0164834, 0.00836085, 0}, + {-0.0164834, 0.00236085, 0}, {-0.0242425, -0.022508, 0}, {-0.0406775, -0.0590935, 0}, {-0.0336094, -0.128441, 0}, @@ -102,11 +102,18 @@ AnyFolder Pelvis = { {0.0711565, -0.0407633, 0.103029}, ASIS, PSIS, - PT + PT, + {-0.0187111, 0.00909837, 0.0499859}, + {-0.0119614, 0.02531837, 0.0537879}, + {-0.001592202, 0.03452027, 0.05598822}, + {0.01285505, 0.04296467, 0.06240207}, + {0.04438692, 0.04429117, 0.08807922}, + {0.05957438, 0.03936057, 0.1033819}, + {0.06883843, 0.03050837, 0.11382} }; AnyVec3 ASIS = {0.120080, -0.05009163, 0.1312}; - AnyVec3 PSIS = {-0.016926, 0.01085285, 0.0236796}; + AnyVec3 PSIS = {-0.016926, -0.00514715, 0.0396796}; AnyVec3 PT = {0.1070, -0.1413, 0.0190}; // Multifidi nodes From b83bd63df5eb810343b4869e898c934375331ff7 Mon Sep 17 00:00:00 2001 From: hs Date: Thu, 12 Sep 2024 14:07:14 +0200 Subject: [PATCH 29/31] Add relative points to TLEM1 for interface morphing of pelvis to fix the tests --- .../LegTLEM1/TLEM1.2/ModelSegmentParameters.any | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Body/AAUHuman/LegTLEM1/TLEM1.2/ModelSegmentParameters.any b/Body/AAUHuman/LegTLEM1/TLEM1.2/ModelSegmentParameters.any index 3f9b91de9..092b51dea 100644 --- a/Body/AAUHuman/LegTLEM1/TLEM1.2/ModelSegmentParameters.any +++ b/Body/AAUHuman/LegTLEM1/TLEM1.2/ModelSegmentParameters.any @@ -108,7 +108,16 @@ Pelvis = { {-0.04849145, -0.01136248, 0.103029}, AsisIpsilateral*.TF', PsisIpsilateral*.TF', - PubicTubercleIpsilateral*.TF' + PubicTubercleIpsilateral*.TF', + + //Added extra points same as trunk_pelvis points (just needed a pretransformation) + {-0.1514385, -0.001043461, 0.04982949}, + {-0.1518925, 0.01658327, 0.05361959}, + {-0.1461542, 0.02919527, 0.05581303}, + {-0.136367, 0.04273873, 0.06220681}, + {-0.1080019, 0.05655351, 0.08780361}, + {-0.09205898, 0.05808058, 0.1030584}, + {-0.07994077, 0.05363192, 0.1134638} }; AnyMatrix points_RBF_unscaled = arrcat( From cd8774bd1138f117adfb2a1170ca05f5d5879ff0 Mon Sep 17 00:00:00 2001 From: hs Date: Fri, 13 Sep 2024 12:16:25 +0200 Subject: [PATCH 30/31] Remove via nodes of erector spinae muscles on L4 which are close to pelvis --- Body/AAUHuman/Trunk/MusclesLeft.any | 4 ++-- Body/AAUHuman/Trunk/MusclesRight.any | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Body/AAUHuman/Trunk/MusclesLeft.any b/Body/AAUHuman/Trunk/MusclesLeft.any index c51fc622c..2a1a0e3f8 100644 --- a/Body/AAUHuman/Trunk/MusclesLeft.any +++ b/Body/AAUHuman/Trunk/MusclesLeft.any @@ -387,7 +387,7 @@ AnyFolder ErectorSpinae = { AnyRefNode &Org = ....Segments.L1Seg.ILplL1CINodeL; AnyRefNode &Via1 = ....Segments.L2Seg.ILplL1CIViaNodeL; AnyRefNode &Via2 = ....Segments.L3Seg.ILplL1CIViaNodeL; - AnyRefNode &Via3 = ....Segments.L4Seg.ILplL1CIViaNodeL; +// AnyRefNode &Via3 = ....Segments.L4Seg.ILplL1CIViaNodeL; AnyRefNode &Ins = ....Segments.PelvisSeg.ILplL1CINodeL; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; viewForce.Visible ??= Off; @@ -396,7 +396,7 @@ AnyFolder ErectorSpinae = { AnyMuscleModel &MusMdl = ....MuscleModels.Left.ErectorSpinae.ILplL2CI; AnyRefNode &Org = ....Segments.L2Seg.ILplL2CINodeL; AnyRefNode &Via1 = ....Segments.L3Seg.ILplL2CIViaNodeL; - AnyRefNode &Via2 = ....Segments.L4Seg.ILplL2CIViaNodeL; +// AnyRefNode &Via2 = ....Segments.L4Seg.ILplL2CIViaNodeL; AnyRefNode &Ins = ....Segments.PelvisSeg.ILplL2CINodeL; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; viewForce.Visible ??= Off; diff --git a/Body/AAUHuman/Trunk/MusclesRight.any b/Body/AAUHuman/Trunk/MusclesRight.any index 0f19dee80..2c6b26309 100644 --- a/Body/AAUHuman/Trunk/MusclesRight.any +++ b/Body/AAUHuman/Trunk/MusclesRight.any @@ -395,7 +395,7 @@ AnyFolder ErectorSpinae = { AnyRefNode &Org = ....Segments.L1Seg.ILplL1CINodeR; AnyRefNode &Via1 = ....Segments.L2Seg.ILplL1CIViaNodeR; AnyRefNode &Via2 = ....Segments.L3Seg.ILplL1CIViaNodeR; - AnyRefNode &Via3 = ....Segments.L4Seg.ILplL1CIViaNodeR; +// AnyRefNode &Via3 = ....Segments.L4Seg.ILplL1CIViaNodeR; AnyRefNode &Ins = ....Segments.PelvisSeg.ILplL1CINodeR; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; viewForce.Visible ??= Off; @@ -404,7 +404,7 @@ AnyFolder ErectorSpinae = { AnyMuscleModel &MusMdl = ....MuscleModels.Right.ErectorSpinae.ILplL2CI; AnyRefNode &Org = ....Segments.L2Seg.ILplL2CINodeR; AnyRefNode &Via1 = ....Segments.L3Seg.ILplL2CIViaNodeR; - AnyRefNode &Via2 = ....Segments.L4Seg.ILplL2CIViaNodeR; +// AnyRefNode &Via2 = ....Segments.L4Seg.ILplL2CIViaNodeR; AnyRefNode &Ins = ....Segments.PelvisSeg.ILplL2CINodeR; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; viewForce.Visible ??= Off; From f5fa492d688a3ea41d829ce5ef591c9433fb9314 Mon Sep 17 00:00:00 2001 From: hs Date: Mon, 23 Sep 2024 12:31:06 +0200 Subject: [PATCH 31/31] Define statement for removing via nodes on L3 and L4 in erector spinae #define REMOVE_ERECTORSPINAE_L3VIA #define REMOVE_ERECTORSPINAE_L4VIA --- Body/AAUHuman/Trunk/MusclesLeft.any | 38 ++++++++++++++++++++++++---- Body/AAUHuman/Trunk/MusclesRight.any | 32 +++++++++++++++++++++-- 2 files changed, 63 insertions(+), 7 deletions(-) diff --git a/Body/AAUHuman/Trunk/MusclesLeft.any b/Body/AAUHuman/Trunk/MusclesLeft.any index 2a1a0e3f8..44ffa9f6f 100644 --- a/Body/AAUHuman/Trunk/MusclesLeft.any +++ b/Body/AAUHuman/Trunk/MusclesLeft.any @@ -386,8 +386,12 @@ AnyFolder ErectorSpinae = { AnyMuscleModel &MusMdl = ....MuscleModels.Left.ErectorSpinae.ILplL1CI; AnyRefNode &Org = ....Segments.L1Seg.ILplL1CINodeL; AnyRefNode &Via1 = ....Segments.L2Seg.ILplL1CIViaNodeL; + #ifndef REMOVE_ERECTORSPINAE_L3VIA AnyRefNode &Via2 = ....Segments.L3Seg.ILplL1CIViaNodeL; -// AnyRefNode &Via3 = ....Segments.L4Seg.ILplL1CIViaNodeL; + #endif + #ifndef REMOVE_ERECTORSPINAE_L4VIA + AnyRefNode &Via3 = ....Segments.L4Seg.ILplL1CIViaNodeL; + #endif AnyRefNode &Ins = ....Segments.PelvisSeg.ILplL1CINodeL; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; viewForce.Visible ??= Off; @@ -395,8 +399,12 @@ AnyFolder ErectorSpinae = { AnyMuscleViaPoint ILplL2CI = { AnyMuscleModel &MusMdl = ....MuscleModels.Left.ErectorSpinae.ILplL2CI; AnyRefNode &Org = ....Segments.L2Seg.ILplL2CINodeL; + #ifndef REMOVE_ERECTORSPINAE_L3VIA AnyRefNode &Via1 = ....Segments.L3Seg.ILplL2CIViaNodeL; -// AnyRefNode &Via2 = ....Segments.L4Seg.ILplL2CIViaNodeL; + #endif + #ifndef REMOVE_ERECTORSPINAE_L4VIA + AnyRefNode &Via2 = ....Segments.L4Seg.ILplL2CIViaNodeL; + #endif AnyRefNode &Ins = ....Segments.PelvisSeg.ILplL2CINodeL; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; viewForce.Visible ??= Off; @@ -419,7 +427,9 @@ AnyFolder ErectorSpinae = { AnyMuscleModel &MusMdl = ....MuscleModels.Left.ErectorSpinae.LTplL1SIPS; AnyRefNode &Org = ....Segments.L1Seg.LTplL1SIPSNodeL; AnyRefNode &Via1 = ....Segments.L2Seg.LTplL1SIPSViaNodeL; + #ifndef REMOVE_ERECTORSPINAE_L3VIA AnyRefNode &Via2 = ....Segments.L3Seg.LTplL1SIPSViaNodeL; + #endif AnyRefNode &Ins = ....Segments.PelvisSeg.LTplL1SIPSNodeL; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; viewForce.Visible ??= Off; @@ -427,7 +437,9 @@ AnyFolder ErectorSpinae = { AnyMuscleViaPoint LTplL2SIPS = { AnyMuscleModel &MusMdl = ....MuscleModels.Left.ErectorSpinae.LTplL2SIPS; AnyRefNode &Org = ....Segments.L2Seg.LTplL2SIPSNodeL; + #ifndef REMOVE_ERECTORSPINAE_L3VIA AnyRefNode &Via1 = ....Segments.L3Seg.LTplL2SIPSViaNodeL; + #endif AnyRefNode &Ins = ....Segments.PelvisSeg.LTplL2SIPSNodeL; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; viewForce.Visible ??= Off; @@ -464,7 +476,9 @@ AnyFolder ErectorSpinae = { AnyRefNode &Via6 = ....Segments.Left.R12Seg.ILptC5SIPSVia6NodeL; AnyRefNode &Via7 = ....Segments.L1Seg.ILptC5SIPSVia7NodeL; AnyRefNode &Via8 = ....Segments.L2Seg.ILptC5SIPSVia8NodeL; + #ifndef REMOVE_ERECTORSPINAE_L3VIA AnyRefNode &Via9 = ....Segments.L3Seg.ILptC5SIPSVia9NodeL; + #endif AnyRefNode &Ins = ....Segments.PelvisSeg.ILptC5SIPSNodeL; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; viewForce.Visible ??= Off; @@ -479,7 +493,9 @@ AnyFolder ErectorSpinae = { AnyRefNode &Via5 = ....Segments.Left.R12Seg.ILptC6SIPSVia5NodeL; AnyRefNode &Via6 = ....Segments.L1Seg.ILptC6SIPSVia6NodeL; AnyRefNode &Via7 = ....Segments.L2Seg.ILptC6SIPSVia7NodeL; + #ifndef REMOVE_ERECTORSPINAE_L3VIA AnyRefNode &Via8 = ....Segments.L3Seg.ILptC6SIPSVia8NodeL; + #endif AnyRefNode &Ins = ....Segments.PelvisSeg.ILptC6SIPSNodeL; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; viewForce.Visible ??= Off; @@ -493,7 +509,9 @@ AnyFolder ErectorSpinae = { AnyRefNode &Via4 = ....Segments.Left.R12Seg.ILptC7CIVia4NodeL; AnyRefNode &Via5 = ....Segments.L1Seg.ILptC7CIVia5NodeL; AnyRefNode &Via6 = ....Segments.L2Seg.ILptC7CIVia6NodeL; - AnyRefNode &Via7 = ....Segments.L3Seg.ILptC7CIVia7NodeL; + #ifndef REMOVE_ERECTORSPINAE_L3VIA + AnyRefNode &Via7 = ....Segments.L3Seg.ILptC7CIVia7NodeL; + #endif AnyRefNode &Ins = ....Segments.PelvisSeg.ILptC7CINodeL; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; viewForce.Visible ??= Off; @@ -506,7 +524,9 @@ AnyFolder ErectorSpinae = { AnyRefNode &Via3 = ....Segments.Left.R12Seg.ILptC8CIVia3NodeL; AnyRefNode &Via4 = ....Segments.L1Seg.ILptC8CIVia4NodeL; AnyRefNode &Via5 = ....Segments.L2Seg.ILptC8CIVia5NodeL; - AnyRefNode &Via6 = ....Segments.L3Seg.ILptC8CIVia6NodeL; + #ifndef REMOVE_ERECTORSPINAE_L3VIA + AnyRefNode &Via6 = ....Segments.L3Seg.ILptC8CIVia6NodeL; + #endif AnyRefNode &Ins = ....Segments.PelvisSeg.ILptC8CINodeL; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; viewForce.Visible ??= Off; @@ -518,7 +538,9 @@ AnyFolder ErectorSpinae = { AnyRefNode &Via2 = ....Segments.Left.R12Seg.ILptC9CIVia2NodeL; AnyRefNode &Via3 = ....Segments.L1Seg.ILptC9CIVia3NodeL; AnyRefNode &Via4 = ....Segments.L2Seg.ILptC9CIVia4NodeL; + #ifndef REMOVE_ERECTORSPINAE_L3VIA AnyRefNode &Via5 = ....Segments.L3Seg.ILptC9CIVia5NodeL; + #endif AnyRefNode &Ins = ....Segments.PelvisSeg.ILptC9CINodeL; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; viewForce.Visible ??= Off; @@ -529,7 +551,9 @@ AnyFolder ErectorSpinae = { AnyRefNode &Via1 = ....Segments.Left.R12Seg.ILptC10CIVia1NodeL; AnyRefNode &Via2 = ....Segments.L1Seg.ILptC10CIVia2NodeL; AnyRefNode &Via3 = ....Segments.L2Seg.ILptC10CIVia3NodeL; - AnyRefNode &Via4 = ....Segments.L3Seg.ILptC10CIVia4NodeL; + #ifndef REMOVE_ERECTORSPINAE_L3VIA + AnyRefNode &Via4 = ....Segments.L3Seg.ILptC10CIVia4NodeL; + #endif AnyRefNode &Ins = ....Segments.PelvisSeg.ILptC10CINodeL; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; viewForce.Visible ??= Off; @@ -539,7 +563,9 @@ AnyFolder ErectorSpinae = { AnyRefNode &Org = ....Segments.Left.R11Seg.ILptC11CINodeL; AnyRefNode &Via1 = ....Segments.L1Seg.ILptC11CIVia1NodeL; AnyRefNode &Via2 = ....Segments.L2Seg.ILptC11CIVia2NodeL; + #ifndef REMOVE_ERECTORSPINAE_L3VIA AnyRefNode &Via3 = ....Segments.L3Seg.ILptC11CIVia3NodeL; + #endif AnyRefNode &Ins = ....Segments.PelvisSeg.ILptC11CINodeL; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; viewForce.Visible ??= Off; @@ -549,7 +575,9 @@ AnyFolder ErectorSpinae = { AnyRefNode &Org = ....Segments.Left.R12Seg.ILptC12CINodeL; AnyRefNode &Via1 = ....Segments.L1Seg.ILptC12CIVia1NodeL; AnyRefNode &Via2 = ....Segments.L2Seg.ILptC12CIVia2NodeL; + #ifndef REMOVE_ERECTORSPINAE_L3VIA AnyRefNode &Via3 = ....Segments.L3Seg.ILptC12CIVia3NodeL; + #endif AnyRefNode &Ins = ....Segments.PelvisSeg.ILptC12CINodeL; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; viewForce.Visible ??= Off; diff --git a/Body/AAUHuman/Trunk/MusclesRight.any b/Body/AAUHuman/Trunk/MusclesRight.any index 2c6b26309..312eeeb00 100644 --- a/Body/AAUHuman/Trunk/MusclesRight.any +++ b/Body/AAUHuman/Trunk/MusclesRight.any @@ -394,8 +394,12 @@ AnyFolder ErectorSpinae = { AnyMuscleModel &MusMdl = ....MuscleModels.Right.ErectorSpinae.ILplL1CI; AnyRefNode &Org = ....Segments.L1Seg.ILplL1CINodeR; AnyRefNode &Via1 = ....Segments.L2Seg.ILplL1CIViaNodeR; + #ifndef REMOVE_ERECTORSPINAE_L3VIA AnyRefNode &Via2 = ....Segments.L3Seg.ILplL1CIViaNodeR; -// AnyRefNode &Via3 = ....Segments.L4Seg.ILplL1CIViaNodeR; + #endif + #ifndef REMOVE_ERECTORSPINAE_L4VIA + AnyRefNode &Via3 = ....Segments.L4Seg.ILplL1CIViaNodeR; + #endif AnyRefNode &Ins = ....Segments.PelvisSeg.ILplL1CINodeR; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; viewForce.Visible ??= Off; @@ -403,8 +407,12 @@ AnyFolder ErectorSpinae = { AnyMuscleViaPoint ILplL2CI = { AnyMuscleModel &MusMdl = ....MuscleModels.Right.ErectorSpinae.ILplL2CI; AnyRefNode &Org = ....Segments.L2Seg.ILplL2CINodeR; + #ifndef REMOVE_ERECTORSPINAE_L3VIA AnyRefNode &Via1 = ....Segments.L3Seg.ILplL2CIViaNodeR; -// AnyRefNode &Via2 = ....Segments.L4Seg.ILplL2CIViaNodeR; + #endif + #ifndef REMOVE_ERECTORSPINAE_L4VIA + AnyRefNode &Via2 = ....Segments.L4Seg.ILplL2CIViaNodeR; + #endif AnyRefNode &Ins = ....Segments.PelvisSeg.ILplL2CINodeR; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; viewForce.Visible ??= Off; @@ -427,7 +435,9 @@ AnyFolder ErectorSpinae = { AnyMuscleModel &MusMdl = ....MuscleModels.Right.ErectorSpinae.LTplL1SIPS; AnyRefNode &Org = ....Segments.L1Seg.LTplL1SIPSNodeR; AnyRefNode &Via1 = ....Segments.L2Seg.LTplL1SIPSViaNodeR; + #ifndef REMOVE_ERECTORSPINAE_L3VIA AnyRefNode &Via2 = ....Segments.L3Seg.LTplL1SIPSViaNodeR; + #endif AnyRefNode &Ins = ....Segments.PelvisSeg.LTplL1SIPSNodeR; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; viewForce.Visible ??= Off; @@ -435,7 +445,9 @@ AnyFolder ErectorSpinae = { AnyMuscleViaPoint LTplL2SIPS = { AnyMuscleModel &MusMdl = ....MuscleModels.Right.ErectorSpinae.LTplL2SIPS; AnyRefNode &Org = ....Segments.L2Seg.LTplL2SIPSNodeR; + #ifndef REMOVE_ERECTORSPINAE_L3VIA AnyRefNode &Via1 = ....Segments.L3Seg.LTplL2SIPSViaNodeR; + #endif AnyRefNode &Ins = ....Segments.PelvisSeg.LTplL2SIPSNodeR; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; viewForce.Visible ??= Off; @@ -472,7 +484,9 @@ AnyFolder ErectorSpinae = { AnyRefNode &Via6 = ....Segments.Right.R12Seg.ILptC5SIPSVia6NodeR; AnyRefNode &Via7 = ....Segments.L1Seg.ILptC5SIPSVia7NodeR; AnyRefNode &Via8 = ....Segments.L2Seg.ILptC5SIPSVia8NodeR; + #ifndef REMOVE_ERECTORSPINAE_L3VIA AnyRefNode &Via9 = ....Segments.L3Seg.ILptC5SIPSVia9NodeR; + #endif AnyRefNode &Ins = ....Segments.PelvisSeg.ILptC5SIPSNodeR; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; viewForce.Visible ??= Off; @@ -487,7 +501,9 @@ AnyFolder ErectorSpinae = { AnyRefNode &Via5 = ....Segments.Right.R12Seg.ILptC6SIPSVia5NodeR; AnyRefNode &Via6 = ....Segments.L1Seg.ILptC6SIPSVia6NodeR; AnyRefNode &Via7 = ....Segments.L2Seg.ILptC6SIPSVia7NodeR; + #ifndef REMOVE_ERECTORSPINAE_L3VIA AnyRefNode &Via8 = ....Segments.L3Seg.ILptC6SIPSVia8NodeR; + #endif AnyRefNode &Ins = ....Segments.PelvisSeg.ILptC6SIPSNodeR; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; viewForce.Visible ??= Off; @@ -501,7 +517,9 @@ AnyFolder ErectorSpinae = { AnyRefNode &Via4 = ....Segments.Right.R12Seg.ILptC7CIVia4NodeR; AnyRefNode &Via5 = ....Segments.L1Seg.ILptC7CIVia5NodeR; AnyRefNode &Via6 = ....Segments.L2Seg.ILptC7CIVia6NodeR; + #ifndef REMOVE_ERECTORSPINAE_L3VIA AnyRefNode &Via7 = ....Segments.L3Seg.ILptC7CIVia7NodeR; + #endif AnyRefNode &Ins = ....Segments.PelvisSeg.ILptC7CINodeR; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; viewForce.Visible ??= Off; @@ -514,7 +532,9 @@ AnyFolder ErectorSpinae = { AnyRefNode &Via3 = ....Segments.Right.R12Seg.ILptC8CIVia3NodeR; AnyRefNode &Via4 = ....Segments.L1Seg.ILptC8CIVia4NodeR; AnyRefNode &Via5 = ....Segments.L2Seg.ILptC8CIVia5NodeR; + #ifndef REMOVE_ERECTORSPINAE_L3VIA AnyRefNode &Via6 = ....Segments.L3Seg.ILptC8CIVia6NodeR; + #endif AnyRefNode &Ins = ....Segments.PelvisSeg.ILptC8CINodeR; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; viewForce.Visible ??= Off; @@ -526,7 +546,9 @@ AnyFolder ErectorSpinae = { AnyRefNode &Via2 = ....Segments.Right.R12Seg.ILptC9CIVia2NodeR; AnyRefNode &Via3 = ....Segments.L1Seg.ILptC9CIVia3NodeR; AnyRefNode &Via4 = ....Segments.L2Seg.ILptC9CIVia4NodeR; + #ifndef REMOVE_ERECTORSPINAE_L3VIA AnyRefNode &Via5 = ....Segments.L3Seg.ILptC9CIVia5NodeR; + #endif AnyRefNode &Ins = ....Segments.PelvisSeg.ILptC9CINodeR; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; viewForce.Visible ??= Off; @@ -537,7 +559,9 @@ AnyFolder ErectorSpinae = { AnyRefNode &Via1 = ....Segments.Right.R12Seg.ILptC10CIVia1NodeR; AnyRefNode &Via2 = ....Segments.L1Seg.ILptC10CIVia2NodeR; AnyRefNode &Via3 = ....Segments.L2Seg.ILptC10CIVia3NodeR; + #ifndef REMOVE_ERECTORSPINAE_L3VIA AnyRefNode &Via4 = ....Segments.L3Seg.ILptC10CIVia4NodeR; + #endif AnyRefNode &Ins = ....Segments.PelvisSeg.ILptC10CINodeR; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; viewForce.Visible ??= Off; @@ -547,7 +571,9 @@ AnyFolder ErectorSpinae = { AnyRefNode &Org = ....Segments.Right.R11Seg.ILptC11CINodeR; AnyRefNode &Via1 = ....Segments.L1Seg.ILptC11CIVia1NodeR; AnyRefNode &Via2 = ....Segments.L2Seg.ILptC11CIVia2NodeR; + #ifndef REMOVE_ERECTORSPINAE_L3VIA AnyRefNode &Via3 = ....Segments.L3Seg.ILptC11CIVia3NodeR; + #endif AnyRefNode &Ins = ....Segments.PelvisSeg.ILptC11CINodeR; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; viewForce.Visible ??= Off; @@ -557,7 +583,9 @@ AnyFolder ErectorSpinae = { AnyRefNode &Org = ....Segments.Right.R12Seg.ILptC12CINodeR; AnyRefNode &Via1 = ....Segments.L1Seg.ILptC12CIVia1NodeR; AnyRefNode &Via2 = ....Segments.L2Seg.ILptC12CIVia2NodeR; + #ifndef REMOVE_ERECTORSPINAE_L3VIA AnyRefNode &Via3 = ....Segments.L3Seg.ILptC12CIVia3NodeR; + #endif AnyRefNode &Ins = ....Segments.PelvisSeg.ILptC12CINodeR; viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; viewForce.Visible ??= Off;