From 3f3bb22da0e62acebcc106e63c8720b8b6b69064 Mon Sep 17 00:00:00 2001 From: hs Date: Thu, 24 Oct 2024 13:38:04 +0200 Subject: [PATCH 1/3] OIC_8_extra use its own muscle model --- Body/AAUHuman/Trunk/MusclesLeft.any | 2 +- Body/AAUHuman/Trunk/MusclesRight.any | 2 +- .../TrunkModelMuscleParameters.any | 46 +++++++++++++------ .../Trunk/muscle-models-trunk-simple.any | 24 ++++++++++ Body/AAUHuman/Trunk/muscle-models-trunk.any | 46 +++++++++++++++++++ 5 files changed, 104 insertions(+), 16 deletions(-) diff --git a/Body/AAUHuman/Trunk/MusclesLeft.any b/Body/AAUHuman/Trunk/MusclesLeft.any index 8c0af871..0c2bbf82 100644 --- a/Body/AAUHuman/Trunk/MusclesLeft.any +++ b/Body/AAUHuman/Trunk/MusclesLeft.any @@ -3942,7 +3942,7 @@ AnyMuscleShortestPath OIC_8 = { }; AnyMuscleShortestPath OIC_8_extra = { - AnyMuscleModel &MusMdl = ....MuscleModels.Left.ObliquusInternus.OIC_8; + AnyMuscleModel &MusMdl = ....MuscleModels.Left.ObliquusInternus.OIC_8_extra; AnyRefNode &Org = ....Segments.SternalBodySeg.RACP_Via_2_L; // AnyRefNode &Via = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L1.BaseSegAnterior.TransversusPoints.Left.nn05; diff --git a/Body/AAUHuman/Trunk/MusclesRight.any b/Body/AAUHuman/Trunk/MusclesRight.any index 9df2119f..4162f6bc 100644 --- a/Body/AAUHuman/Trunk/MusclesRight.any +++ b/Body/AAUHuman/Trunk/MusclesRight.any @@ -3986,7 +3986,7 @@ AnyMuscleShortestPath OIC_8 = { }; AnyMuscleShortestPath OIC_8_extra = { - AnyMuscleModel &MusMdl = ....MuscleModels.Right.ObliquusInternus.OIC_8; + AnyMuscleModel &MusMdl = ....MuscleModels.Right.ObliquusInternus.OIC_8_extra; AnyRefNode &Org = ....Segments.SternalBodySeg.RACP_Via_2_R; // AnyRefNode &Via = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L1.BaseSegAnterior.TransversusPoints.Right.nn05; diff --git a/Body/AAUHuman/Trunk/TrunkData1.1/TrunkModelMuscleParameters.any b/Body/AAUHuman/Trunk/TrunkData1.1/TrunkModelMuscleParameters.any index dc7c11ac..e5c1cc03 100644 --- a/Body/AAUHuman/Trunk/TrunkData1.1/TrunkModelMuscleParameters.any +++ b/Body/AAUHuman/Trunk/TrunkData1.1/TrunkModelMuscleParameters.any @@ -2304,14 +2304,14 @@ 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) + AnyVar Volume ??= DesignVar(145.36); ///< Total volume of the muscle group (ml) AnyFolder OIC_1 = { AnyString Muscle = "Obliquus Internus"; ///< Descriptive name for the muscle, e.g. for plotting AnyIntVar MuscleElemAmount = 1; ///< The total amount of elements for this muscle AnyFloat Pennationangle ??= DesignVar(0); ///< Pennation angle of the muscle fibers (degres) AnyFloat VolumeScaleFactor ??= DesignVar(1.0); ///< Factor for scaling the muscle volume - AnyFloat MuscleVolume ??= .Volume*0.047288; ///< Volume of the muscle (ml) (the fraction of the group volume is based on the strength of the previous model) + AnyFloat MuscleVolume ??= .Volume*0.042648; ///< Volume of the muscle (ml) (the fraction of the group volume is based on the strength of the previous model) AnyFloat MuscleVolumeSIScaled ??= ..VolumeUnitFactor*VolumeScaleFactor*MuscleVolume; ///< Scaled Volume of the muscle in SI base unit (m^3) AnyFloat OptimalFiberlength ??= _FIBER_LENGTH_DESIGNVAR(0.099347); ///< Optimal working length of the muscle fiber (m) AnyFloat TotalTendonLength ??= _TENDON_LENGTH_DESIGNVAR(0.01);///< The total tendon length (m) @@ -2329,7 +2329,7 @@ AnyFolder Muscles = AnyIntVar MuscleElemAmount = 1; ///< The total amount of elements for this muscle AnyFloat Pennationangle ??= DesignVar(0); ///< Pennation angle of the muscle fibers (degres) AnyFloat VolumeScaleFactor ??= DesignVar(1.0); ///< Factor for scaling the muscle volume - AnyFloat MuscleVolume ??= .Volume*0.046203; ///< Volume of the muscle (ml) (the fraction of the group volume is based on the strength of the previous model) + AnyFloat MuscleVolume ??= .Volume*0.041669; ///< Volume of the muscle (ml) (the fraction of the group volume is based on the strength of the previous model) AnyFloat MuscleVolumeSIScaled ??= ..VolumeUnitFactor*VolumeScaleFactor*MuscleVolume; ///< Scaled Volume of the muscle in SI base unit (m^3) AnyFloat OptimalFiberlength ??= _FIBER_LENGTH_DESIGNVAR(0.097068); ///< Optimal working length of the muscle fiber (m) AnyFloat TotalTendonLength ??= _TENDON_LENGTH_DESIGNVAR(0.01);///< The total tendon length (m) @@ -2347,7 +2347,7 @@ AnyFolder Muscles = AnyIntVar MuscleElemAmount = 1; ///< The total amount of elements for this muscle AnyFloat Pennationangle ??= DesignVar(0); ///< Pennation angle of the muscle fibers (degres) AnyFloat VolumeScaleFactor ??= DesignVar(1.0); ///< Factor for scaling the muscle volume - AnyFloat MuscleVolume ??= .Volume*0.039771; ///< Volume of the muscle (ml) (the fraction of the group volume is based on the strength of the previous model) + AnyFloat MuscleVolume ??= .Volume*0.035868; ///< Volume of the muscle (ml) (the fraction of the group volume is based on the strength of the previous model) AnyFloat MuscleVolumeSIScaled ??= ..VolumeUnitFactor*VolumeScaleFactor*MuscleVolume; ///< Scaled Volume of the muscle in SI base unit (m^3) AnyFloat OptimalFiberlength ??= _FIBER_LENGTH_DESIGNVAR(0.083554); ///< Optimal working length of the muscle fiber (m) AnyFloat TotalTendonLength ??= _TENDON_LENGTH_DESIGNVAR(0.01);///< The total tendon length (m) @@ -2365,7 +2365,7 @@ AnyFolder Muscles = AnyIntVar MuscleElemAmount = 1; ///< The total amount of elements for this muscle AnyFloat Pennationangle ??= DesignVar(0); ///< Pennation angle of the muscle fibers (degres) AnyFloat VolumeScaleFactor ??= DesignVar(1.0); ///< Factor for scaling the muscle volume - AnyFloat MuscleVolume ??= .Volume*0.056113; ///< Volume of the muscle (ml) (the fraction of the group volume is based on the strength of the previous model) + AnyFloat MuscleVolume ??= .Volume*0.050607; ///< Volume of the muscle (ml) (the fraction of the group volume is based on the strength of the previous model) AnyFloat MuscleVolumeSIScaled ??= ..VolumeUnitFactor*VolumeScaleFactor*MuscleVolume; ///< Scaled Volume of the muscle in SI base unit (m^3) AnyFloat OptimalFiberlength ??= _FIBER_LENGTH_DESIGNVAR(0.11789); ///< Optimal working length of the muscle fiber (m) AnyFloat TotalTendonLength ??= _TENDON_LENGTH_DESIGNVAR(0.01);///< The total tendon length (m) @@ -2383,7 +2383,7 @@ AnyFolder Muscles = AnyIntVar MuscleElemAmount = 1; ///< The total amount of elements for this muscle AnyFloat Pennationangle ??= DesignVar(0); ///< Pennation angle of the muscle fibers (degres) AnyFloat VolumeScaleFactor ??= DesignVar(1.0); ///< Factor for scaling the muscle volume - AnyFloat MuscleVolume ??= .Volume*0.051835; ///< Volume of the muscle (ml) (the fraction of the group volume is based on the strength of the previous model) + AnyFloat MuscleVolume ??= .Volume*0.046749; ///< Volume of the muscle (ml) (the fraction of the group volume is based on the strength of the previous model) AnyFloat MuscleVolumeSIScaled ??= ..VolumeUnitFactor*VolumeScaleFactor*MuscleVolume; ///< Scaled Volume of the muscle in SI base unit (m^3) AnyFloat OptimalFiberlength ??= _FIBER_LENGTH_DESIGNVAR(0.1089); ///< Optimal working length of the muscle fiber (m) AnyFloat TotalTendonLength ??= _TENDON_LENGTH_DESIGNVAR(0.01);///< The total tendon length (m) @@ -2401,7 +2401,7 @@ AnyFolder Muscles = AnyIntVar MuscleElemAmount = 1; ///< The total amount of elements for this muscle AnyFloat Pennationangle ??= DesignVar(0); ///< Pennation angle of the muscle fibers (degres) AnyFloat VolumeScaleFactor ??= DesignVar(1.0); ///< Factor for scaling the muscle volume - AnyFloat MuscleVolume ??= .Volume*0.072362; ///< Volume of the muscle (ml) (the fraction of the group volume is based on the strength of the previous model) + AnyFloat MuscleVolume ??= .Volume*0.065262; ///< Volume of the muscle (ml) (the fraction of the group volume is based on the strength of the previous model) AnyFloat MuscleVolumeSIScaled ??= ..VolumeUnitFactor*VolumeScaleFactor*MuscleVolume; ///< Scaled Volume of the muscle in SI base unit (m^3) AnyFloat OptimalFiberlength ??= _FIBER_LENGTH_DESIGNVAR(0.15203); ///< Optimal working length of the muscle fiber (m) AnyFloat TotalTendonLength ??= _TENDON_LENGTH_DESIGNVAR(0.01);///< The total tendon length (m) @@ -2419,7 +2419,7 @@ AnyFolder Muscles = AnyIntVar MuscleElemAmount = 1; ///< The total amount of elements for this muscle AnyFloat Pennationangle ??= DesignVar(0); ///< Pennation angle of the muscle fibers (degres) AnyFloat VolumeScaleFactor ??= DesignVar(1.0); ///< Factor for scaling the muscle volume - AnyFloat MuscleVolume ??= .Volume*0.088349; ///< Volume of the muscle (ml) (the fraction of the group volume is based on the strength of the previous model) + AnyFloat MuscleVolume ??= .Volume*0.07968; ///< Volume of the muscle (ml) (the fraction of the group volume is based on the strength of the previous model) AnyFloat MuscleVolumeSIScaled ??= ..VolumeUnitFactor*VolumeScaleFactor*MuscleVolume; ///< Scaled Volume of the muscle in SI base unit (m^3) AnyFloat OptimalFiberlength ??= _FIBER_LENGTH_DESIGNVAR(0.18561); ///< Optimal working length of the muscle fiber (m) AnyFloat TotalTendonLength ??= _TENDON_LENGTH_DESIGNVAR(0.01);///< The total tendon length (m) @@ -2430,6 +2430,24 @@ AnyFolder Muscles = }; #endif + #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ + AnyFolder OIC_8_extra = + { + AnyString Muscle = "Obliquus Internus"; ///< Descriptive name for the muscle, e.g. for plotting + AnyIntVar MuscleElemAmount = 1; ///< The total amount of elements for this muscle + AnyFloat Pennationangle ??= DesignVar(0); ///< Pennation angle of the muscle fibers (degres) + AnyFloat VolumeScaleFactor ??= DesignVar(1.0); ///< Factor for scaling the muscle volume + AnyFloat MuscleVolume ??= .Volume*0.09812; ///< Volume of the muscle (ml) (the fraction of the group volume is based on the strength of the previous model) + AnyFloat MuscleVolumeSIScaled ??= ..VolumeUnitFactor*VolumeScaleFactor*MuscleVolume; ///< Scaled Volume of the muscle in SI base unit (m^3) + AnyFloat OptimalFiberlength ??= _FIBER_LENGTH_DESIGNVAR(0.22857); ///< Optimal working length of the muscle fiber (m) + AnyFloat TotalTendonLength ??= _TENDON_LENGTH_DESIGNVAR(0.01);///< The total tendon length (m) + AnyFloat K1 ??= DesignVar(10); ///< K1 constant in the muscle model. Factor for determining shortening speed at optimum length + AnyFloat K2 ??= DesignVar(1); ///< K2 constant in the muscle model. Factor for determining shortening speed at optimum length + AnyFloat Epsilon0 ??= DesignVar(0.053); ///< Epsilon bar in the muscle model. Represents tendon strain at F0 + AnyFloat Fcfast ??= DesignVar(0.4); ///< Factor for determining shortening speed at optimum length + }; + #endif + #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ AnyFolder OIC_8 = { @@ -2437,7 +2455,7 @@ AnyFolder Muscles = AnyIntVar MuscleElemAmount = 1; ///< The total amount of elements for this muscle AnyFloat Pennationangle ??= DesignVar(0); ///< Pennation angle of the muscle fibers (degres) AnyFloat VolumeScaleFactor ??= DesignVar(1.0); ///< Factor for scaling the muscle volume - AnyFloat MuscleVolume ??= .Volume*0.13585; ///< Volume of the muscle (ml) (the fraction of the group volume is based on the strength of the previous model) + AnyFloat MuscleVolume ??= .Volume*0.12252; ///< Volume of the muscle (ml) (the fraction of the group volume is based on the strength of the previous model) AnyFloat MuscleVolumeSIScaled ??= ..VolumeUnitFactor*VolumeScaleFactor*MuscleVolume; ///< Scaled Volume of the muscle in SI base unit (m^3) AnyFloat OptimalFiberlength ??= _FIBER_LENGTH_DESIGNVAR(0.28541); ///< Optimal working length of the muscle fiber (m) AnyFloat TotalTendonLength ??= _TENDON_LENGTH_DESIGNVAR(0.01);///< The total tendon length (m) @@ -2455,7 +2473,7 @@ AnyFolder Muscles = AnyIntVar MuscleElemAmount = 1; ///< The total amount of elements for this muscle AnyFloat Pennationangle ??= DesignVar(0); ///< Pennation angle of the muscle fibers (degres) AnyFloat VolumeScaleFactor ??= DesignVar(1.0); ///< Factor for scaling the muscle volume - AnyFloat MuscleVolume ??= .Volume*0.11169; ///< Volume of the muscle (ml) (the fraction of the group volume is based on the strength of the previous model) + AnyFloat MuscleVolume ??= .Volume*0.10073; ///< Volume of the muscle (ml) (the fraction of the group volume is based on the strength of the previous model) AnyFloat MuscleVolumeSIScaled ??= ..VolumeUnitFactor*VolumeScaleFactor*MuscleVolume; ///< Scaled Volume of the muscle in SI base unit (m^3) AnyFloat OptimalFiberlength ??= _FIBER_LENGTH_DESIGNVAR(0.23466); ///< Optimal working length of the muscle fiber (m) AnyFloat TotalTendonLength ??= _TENDON_LENGTH_DESIGNVAR(0.01);///< The total tendon length (m) @@ -2473,7 +2491,7 @@ AnyFolder Muscles = AnyIntVar MuscleElemAmount = 1; ///< The total amount of elements for this muscle AnyFloat Pennationangle ??= DesignVar(0); ///< Pennation angle of the muscle fibers (degres) AnyFloat VolumeScaleFactor ??= DesignVar(1.0); ///< Factor for scaling the muscle volume - AnyFloat MuscleVolume ??= .Volume*0.098613; ///< Volume of the muscle (ml) (the fraction of the group volume is based on the strength of the previous model) + AnyFloat MuscleVolume ??= .Volume*0.088937; ///< Volume of the muscle (ml) (the fraction of the group volume is based on the strength of the previous model) AnyFloat MuscleVolumeSIScaled ??= ..VolumeUnitFactor*VolumeScaleFactor*MuscleVolume; ///< Scaled Volume of the muscle in SI base unit (m^3) AnyFloat OptimalFiberlength ??= _FIBER_LENGTH_DESIGNVAR(0.20718); ///< Optimal working length of the muscle fiber (m) AnyFloat TotalTendonLength ??= _TENDON_LENGTH_DESIGNVAR(0.01);///< The total tendon length (m) @@ -2491,7 +2509,7 @@ AnyFolder Muscles = AnyIntVar MuscleElemAmount = 1; ///< The total amount of elements for this muscle AnyFloat Pennationangle ??= DesignVar(0); ///< Pennation angle of the muscle fibers (degres) AnyFloat VolumeScaleFactor ??= DesignVar(1.0); ///< Factor for scaling the muscle volume - AnyFloat MuscleVolume ??= .Volume*0.08875; ///< Volume of the muscle (ml) (the fraction of the group volume is based on the strength of the previous model) + AnyFloat MuscleVolume ??= .Volume*0.080042; ///< Volume of the muscle (ml) (the fraction of the group volume is based on the strength of the previous model) AnyFloat MuscleVolumeSIScaled ??= ..VolumeUnitFactor*VolumeScaleFactor*MuscleVolume; ///< Scaled Volume of the muscle in SI base unit (m^3) AnyFloat OptimalFiberlength ??= _FIBER_LENGTH_DESIGNVAR(0.18646); ///< Optimal working length of the muscle fiber (m) AnyFloat TotalTendonLength ??= _TENDON_LENGTH_DESIGNVAR(0.01);///< The total tendon length (m) @@ -2509,7 +2527,7 @@ AnyFolder Muscles = AnyIntVar MuscleElemAmount = 1; ///< The total amount of elements for this muscle AnyFloat Pennationangle ??= DesignVar(0); ///< Pennation angle of the muscle fibers (degres) AnyFloat VolumeScaleFactor ??= DesignVar(1.0); ///< Factor for scaling the muscle volume - AnyFloat MuscleVolume ??= .Volume*0.084843; ///< Volume of the muscle (ml) (the fraction of the group volume is based on the strength of the previous model) + AnyFloat MuscleVolume ??= .Volume*0.076519; ///< Volume of the muscle (ml) (the fraction of the group volume is based on the strength of the previous model) AnyFloat MuscleVolumeSIScaled ??= ..VolumeUnitFactor*VolumeScaleFactor*MuscleVolume; ///< Scaled Volume of the muscle in SI base unit (m^3) AnyFloat OptimalFiberlength ??= _FIBER_LENGTH_DESIGNVAR(0.17825); ///< Optimal working length of the muscle fiber (m) AnyFloat TotalTendonLength ??= _TENDON_LENGTH_DESIGNVAR(0.01);///< The total tendon length (m) @@ -2527,7 +2545,7 @@ AnyFolder Muscles = AnyIntVar MuscleElemAmount = 1; ///< The total amount of elements for this muscle AnyFloat Pennationangle ??= DesignVar(0); ///< Pennation angle of the muscle fibers (degres) AnyFloat VolumeScaleFactor ??= DesignVar(1.0); ///< Factor for scaling the muscle volume - AnyFloat MuscleVolume ??= .Volume*0.078328; ///< Volume of the muscle (ml) (the fraction of the group volume is based on the strength of the previous model) + AnyFloat MuscleVolume ??= .Volume*0.070643; ///< Volume of the muscle (ml) (the fraction of the group volume is based on the strength of the previous model) AnyFloat MuscleVolumeSIScaled ??= ..VolumeUnitFactor*VolumeScaleFactor*MuscleVolume; ///< Scaled Volume of the muscle in SI base unit (m^3) AnyFloat OptimalFiberlength ??= _FIBER_LENGTH_DESIGNVAR(0.16456); ///< Optimal working length of the muscle fiber (m) AnyFloat TotalTendonLength ??= _TENDON_LENGTH_DESIGNVAR(0.01);///< The total tendon length (m) diff --git a/Body/AAUHuman/Trunk/muscle-models-trunk-simple.any b/Body/AAUHuman/Trunk/muscle-models-trunk-simple.any index 9cb9f1c8..3010a3d6 100644 --- a/Body/AAUHuman/Trunk/muscle-models-trunk-simple.any +++ b/Body/AAUHuman/Trunk/muscle-models-trunk-simple.any @@ -1629,6 +1629,18 @@ AnyFolder Left = { }; #endif + #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ + AnyMuscleModel OIC_8_extra = { + AnyFolder& MuscleParameters = ....Data.unscaled.ModelParameters.Muscles.ObliquusInternus.OIC_8_extra; + AnyIntVar MuscleElemNo = 1; ///< The number of this element of the muscle + AnyIntVar MuscleElemAmount = MuscleParameters.MuscleElemAmount; ///< The total amount of elements for this muscle + F0 ??= ...DefaultMusPar.PCSAfactor*PCSA; ///< Maximum force output at optimum fiber length + Lf0 ??= MuscleParameters.OptimalFiberlength / cos(pi/180*MuscleParameters.Pennationangle); //< Optimal fiber length corrected by pennation angle + AnyVar PCSA ??= 1e4*...StrengthScaleSpine*MuscleParameters.MuscleVolumeSIScaled/(Lf0); ///< PCSA (cm2) of the individual element is total volumen divided by the sum of muscle element fiber lengths. + Vol0 = (1e-4*PCSA) * Lf0; // New calculation of the vol for the specific muscle branch + }; + #endif + #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ AnyMuscleModel OIC_8 = { AnyFolder& MuscleParameters = ....Data.unscaled.ModelParameters.Muscles.ObliquusInternus.OIC_8; @@ -6809,6 +6821,18 @@ AnyFolder Right = { }; #endif + #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ + AnyMuscleModel OIC_8_extra = { + AnyFolder& MuscleParameters = ....Data.unscaled.ModelParameters.Muscles.ObliquusInternus.OIC_8_extra; + AnyIntVar MuscleElemNo = 1; ///< The number of this element of the muscle + AnyIntVar MuscleElemAmount = MuscleParameters.MuscleElemAmount; ///< The total amount of elements for this muscle + F0 ??= ...DefaultMusPar.PCSAfactor*PCSA; ///< Maximum force output at optimum fiber length + Lf0 ??= MuscleParameters.OptimalFiberlength / cos(pi/180*MuscleParameters.Pennationangle); //< Optimal fiber length corrected by pennation angle + AnyVar PCSA ??= 1e4*...StrengthScaleSpine*MuscleParameters.MuscleVolumeSIScaled/(Lf0); ///< PCSA (cm2) of the individual element is total volumen divided by the sum of muscle element fiber lengths. + Vol0 = (1e-4*PCSA) * Lf0; // New calculation of the vol for the specific muscle branch + }; + #endif + #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ AnyMuscleModel OIC_8 = { AnyFolder& MuscleParameters = ....Data.unscaled.ModelParameters.Muscles.ObliquusInternus.OIC_8; diff --git a/Body/AAUHuman/Trunk/muscle-models-trunk.any b/Body/AAUHuman/Trunk/muscle-models-trunk.any index 3bdf5ea7..87ac053e 100644 --- a/Body/AAUHuman/Trunk/muscle-models-trunk.any +++ b/Body/AAUHuman/Trunk/muscle-models-trunk.any @@ -3062,6 +3062,29 @@ AnyFolder Left = { #endif + #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ + + AnyMuscleModel3E OIC_8_extra = { + AnyFolder& MuscleParameters = ....Data.unscaled.ModelParameters.Muscles.ObliquusInternus.OIC_8_extra; + AnyIntVar MuscleElemNo = 1; ///< The number of this element of the muscle + AnyIntVar MuscleElemAmount = MuscleParameters.MuscleElemAmount; ///< The total amount of elements for this muscle + F0 ??= ...DefaultMusPar.PCSAfactor*PCSA; ///< Maximum force output at optimum fiber length + Lf0 ??= MuscleParameters.OptimalFiberlength; ///< Optimum fiber length + AnyVar PCSA ??= 1e4*...StrengthScaleSpine*MuscleParameters.MuscleVolumeSIScaled/(Lf0); //< PCSA (cm2) of the individual element is total volumen divided by the sum of muscle element fiber lengths. + Vol0 = (1e-4*PCSA) * Lf0; ///< Volume of specific muscle branch calculated from PCSA and optimal fiber length (m^3) + Lt0 ??= max({MuscleParameters.TotalTendonLength, 0.001}); ///< Tendon slack length (Cannot be zero) + Gamma0 ??= MuscleParameters.Pennationangle*(pi/180); ///< Pennation angle in radian + Epsilon0 ??= MuscleParameters.Epsilon0; ///< Tendon strain at F0 + K1 ??= MuscleParameters.K1; ///< Factor for determining shortening speed at optimum length + K2 ??= MuscleParameters.K2; ///< Factor for determining shortening speed at optimum length + Fcfast ??= MuscleParameters.Fcfast; ///< Factor for determining shortening speed at optimum length + Jt ??= ...DefaultMusPar.Jt; ///< Shape parameter for the tendon stiffness + Jpe ??= ...DefaultMusPar.Jpe; ///< Shape parameter for the parallel stiffness + PEFactor ??= ...DefaultMusPar.PEFactor; ///< Parameter for influence of parallel stiffness + }; + #endif + + #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ AnyMuscleModel3E OIC_8 = { @@ -12793,6 +12816,29 @@ AnyFolder Right = { #endif + #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ + + AnyMuscleModel3E OIC_8_extra = { + AnyFolder& MuscleParameters = ....Data.unscaled.ModelParameters.Muscles.ObliquusInternus.OIC_8_extra; + AnyIntVar MuscleElemNo = 1; ///< The number of this element of the muscle + AnyIntVar MuscleElemAmount = MuscleParameters.MuscleElemAmount; ///< The total amount of elements for this muscle + F0 ??= ...DefaultMusPar.PCSAfactor*PCSA; ///< Maximum force output at optimum fiber length + Lf0 ??= MuscleParameters.OptimalFiberlength; ///< Optimum fiber length + AnyVar PCSA ??= 1e4*...StrengthScaleSpine*MuscleParameters.MuscleVolumeSIScaled/(Lf0); //< PCSA (cm2) of the individual element is total volumen divided by the sum of muscle element fiber lengths. + Vol0 = (1e-4*PCSA) * Lf0; ///< Volume of specific muscle branch calculated from PCSA and optimal fiber length (m^3) + Lt0 ??= max({MuscleParameters.TotalTendonLength, 0.001}); ///< Tendon slack length (Cannot be zero) + Gamma0 ??= MuscleParameters.Pennationangle*(pi/180); ///< Pennation angle in radian + Epsilon0 ??= MuscleParameters.Epsilon0; ///< Tendon strain at F0 + K1 ??= MuscleParameters.K1; ///< Factor for determining shortening speed at optimum length + K2 ??= MuscleParameters.K2; ///< Factor for determining shortening speed at optimum length + Fcfast ??= MuscleParameters.Fcfast; ///< Factor for determining shortening speed at optimum length + Jt ??= ...DefaultMusPar.Jt; ///< Shape parameter for the tendon stiffness + Jpe ??= ...DefaultMusPar.Jpe; ///< Shape parameter for the parallel stiffness + PEFactor ??= ...DefaultMusPar.PEFactor; ///< Parameter for influence of parallel stiffness + }; + #endif + + #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ AnyMuscleModel3E OIC_8 = { From 520a0e9337da4f2b44f02d7bc1e9a27aa814cfe9 Mon Sep 17 00:00:00 2001 From: hs Date: Thu, 24 Oct 2024 13:58:17 +0200 Subject: [PATCH 2/3] Fixing ITC7R7 origin node Now it is inserted to C7 instead of T1 --- Body/AAUHuman/Trunk/MusclesLeft.any | 2 +- Body/AAUHuman/Trunk/MusclesRight.any | 2 +- Body/AAUHuman/Trunk/NodesForThoracicMuscles.any | 2 -- Body/AAUHuman/Trunk/SegmentsCervicalSpine.any | 4 ++++ Body/AAUHuman/Trunk/TrunkData1.1/CervicalNodes.any | 2 ++ Body/AAUHuman/Trunk/TrunkData1.1/ThoracicNodes.any | 2 -- 6 files changed, 8 insertions(+), 6 deletions(-) diff --git a/Body/AAUHuman/Trunk/MusclesLeft.any b/Body/AAUHuman/Trunk/MusclesLeft.any index 0c2bbf82..84eba0c5 100644 --- a/Body/AAUHuman/Trunk/MusclesLeft.any +++ b/Body/AAUHuman/Trunk/MusclesLeft.any @@ -915,7 +915,7 @@ AnyFolder ErectorSpinae = { // Iliocostalis Thoracis AnyMuscleViaPoint ITC7R7 = { AnyMuscleModel &MusMdl = ....MuscleModels.Left.ErectorSpinae.ITC7R7; - AnyRefNode &Org = ....Segments.T1Seg.ITC7R7NodeLOrg; + AnyRefNode &Org = ....Segments.C7Seg.Left.ITC7R7NodeOrg; AnyRefNode &Via1 = ....Segments.Left.R1Seg.ITC7R7Via1NodeL; AnyRefNode &Via2 = ....Segments.Left.R2Seg.ITC7R7Via2NodeL; AnyRefNode &Via3 = ....Segments.Left.R3Seg.ITC7R7Via3NodeL; diff --git a/Body/AAUHuman/Trunk/MusclesRight.any b/Body/AAUHuman/Trunk/MusclesRight.any index 4162f6bc..6ed4c9f6 100644 --- a/Body/AAUHuman/Trunk/MusclesRight.any +++ b/Body/AAUHuman/Trunk/MusclesRight.any @@ -923,7 +923,7 @@ AnyFolder ErectorSpinae = { // Iliocostalis Thoracis AnyMuscleViaPoint ITC7R7 = { AnyMuscleModel &MusMdl = ....MuscleModels.Right.ErectorSpinae.ITC7R7; - AnyRefNode &Org = ....Segments.T1Seg.ITC7R7NodeROrg; + AnyRefNode &Org = ....Segments.C7Seg.Right.ITC7R7NodeOrg; AnyRefNode &Via1 = ....Segments.Right.R1Seg.ITC7R7Via1NodeR; AnyRefNode &Via2 = ....Segments.Right.R2Seg.ITC7R7Via2NodeR; AnyRefNode &Via3 = ....Segments.Right.R3Seg.ITC7R7Via3NodeR; diff --git a/Body/AAUHuman/Trunk/NodesForThoracicMuscles.any b/Body/AAUHuman/Trunk/NodesForThoracicMuscles.any index df472ca6..5da076b3 100644 --- a/Body/AAUHuman/Trunk/NodesForThoracicMuscles.any +++ b/Body/AAUHuman/Trunk/NodesForThoracicMuscles.any @@ -94,8 +94,6 @@ Segments.T1Seg = { AnyRefNode LTptT1L1NodeR = {sRel = .Scale(.Data.Thorax.Right.LTptT1L1Node_pos);}; AnyRefNode LTptT1L1NodeL = {sRel = .Scale(.Data.Thorax.Left.LTptT1L1Node_pos);}; //Scalenus Posterior nodes - AnyRefNode ITC7R7NodeROrg = {sRel = .Scale(.Data.T1.Right.ITC7R7Node_pos);}; - AnyRefNode ITC7R7NodeLOrg = {sRel = .Scale(.Data.T1.Left.ITC7R7Node_pos);}; AnyRefNode LumpedHyoidStC0NodeROrg = {sRel = .Scale(.Data.T1.Right.LumpedHyoidStC0Org_pos);}; AnyRefNode LumpedHyoidStC0NodeLOrg = {sRel = .Scale(.Data.T1.Left.LumpedHyoidStC0Org_pos);}; AnyRefNode LCBrT1R2ROrg = {sRel = .Scale(.Data.T1.Right.LCBrT1R2_pos);}; diff --git a/Body/AAUHuman/Trunk/SegmentsCervicalSpine.any b/Body/AAUHuman/Trunk/SegmentsCervicalSpine.any index e03f826a..b5116a69 100644 --- a/Body/AAUHuman/Trunk/SegmentsCervicalSpine.any +++ b/Body/AAUHuman/Trunk/SegmentsCervicalSpine.any @@ -832,6 +832,8 @@ AnySeg C7Seg = { //Rotatores AnyRefNode RotatoresBrevisT1C7Node = {sRel = ..Scale(..Data.Right.RotatoresBrevisT1C7InsNode_pos);}; AnyRefNode RotatoresLongusT2C7Node = {sRel = ..Scale(..Data.Right.RotatoresLongusT2C7InsNode_pos);}; + //Illiocostalis thoracic + AnyRefNode ITC7R7NodeOrg = {sRel = ..Scale(..Data.Right.ITC7R7Node_pos);}; }; Left = { //Longus Colli @@ -846,6 +848,8 @@ AnySeg C7Seg = { //Rotatores AnyRefNode RotatoresBrevisT1C7Node = {sRel = ..Scale(..Data.Left.RotatoresBrevisT1C7InsNode_pos);}; AnyRefNode RotatoresLongusT2C7Node = {sRel = ..Scale(..Data.Left.RotatoresLongusT2C7InsNode_pos);}; + //Illiocostalis thoracic + AnyRefNode ITC7R7NodeOrg = {sRel = ..Scale(..Data.Left.ITC7R7Node_pos);}; }; AnyDrawSurf BoneDraw = { diff --git a/Body/AAUHuman/Trunk/TrunkData1.1/CervicalNodes.any b/Body/AAUHuman/Trunk/TrunkData1.1/CervicalNodes.any index d05396b6..cf19e1bb 100644 --- a/Body/AAUHuman/Trunk/TrunkData1.1/CervicalNodes.any +++ b/Body/AAUHuman/Trunk/TrunkData1.1/CervicalNodes.any @@ -283,6 +283,7 @@ AnyFolder C7 = { AnyFloat RotatoresBrevisT1C7InsNode_pos = {-0.0152623, 0.4761823, 0.005}; AnyFloat RotatoresLongusT2C7InsNode_pos = RotatoresBrevisT1C7InsNode_pos; AnyFloat SuperiorEndplateNode_pos = 0.5*(.SuperiorEndplateAnteriorNode_pos + .SuperiorEndplatePosteriorNode_pos) + {0,-0.000200,0.019000}; + AnyFloat ITC7R7Node_pos = {-0.013, 0.495, 0.032}; }; AnyFolder Left = { @@ -307,5 +308,6 @@ AnyFolder C7 = { AnyFloat RotatoresBrevisT1C7InsNode_pos = .Right.RotatoresBrevisT1C7InsNode_pos * ..MirrorTransform; AnyFloat RotatoresLongusT2C7InsNode_pos = .Right.RotatoresLongusT2C7InsNode_pos * ..MirrorTransform; AnyFloat SuperiorEndplateNode_pos = .Right.SuperiorEndplateNode_pos * ..MirrorTransform; + AnyFloat ITC7R7Node_pos = .Right.ITC7R7Node_pos * ..MirrorTransform; }; }; \ No newline at end of file diff --git a/Body/AAUHuman/Trunk/TrunkData1.1/ThoracicNodes.any b/Body/AAUHuman/Trunk/TrunkData1.1/ThoracicNodes.any index 0a892582..a9bf6819 100644 --- a/Body/AAUHuman/Trunk/TrunkData1.1/ThoracicNodes.any +++ b/Body/AAUHuman/Trunk/TrunkData1.1/ThoracicNodes.any @@ -2465,7 +2465,6 @@ AnyFolder T1 = { AnyFloat SET5T1NodeIns_pos = {-0.028,0.445,0.005}; AnyFloat SET4T1NodeIns_pos = {-0.028,0.445,0.005}; AnyFloat SET3T1NodeIns_pos = {-0.028,0.445,0.005}; - AnyFloat ITC7R7Node_pos = {-0.019, 0.477, 0.04}; AnyFloat LongusColliT1C4Node_pos = {0.02200000, 0.4480000, 0.008000000}; AnyFloat LongusColliT2C5Node_pos = {0.02200000, 0.4480000, 0.008000000}; AnyFloat LongusColliT3C6Node_pos = {0.02200000, 0.4480000, 0.008000000}; @@ -2556,7 +2555,6 @@ AnyFolder T1 = { }; AnyFolder Left = { - AnyFloat ITC7R7Node_pos = .Right.ITC7R7Node_pos * ..MirrorTransform; AnyFloat LumpedHyoidStC0Org_pos = .Right.LumpedHyoidStC0Org_pos * ..MirrorTransform; AnyFloat LCBrT1R2_pos = .Right.LCBrT1R2_pos * ..MirrorTransform; AnyFloat MFT6T1NodeIns_pos = .Right.MFT6T1NodeIns_pos * ..MirrorTransform; From 599da9878d4ac55374a5916c050e9ddf4b176474 Mon Sep 17 00:00:00 2001 From: hs Date: Thu, 24 Oct 2024 14:11:26 +0200 Subject: [PATCH 3/3] Fix naming of Obliq internals --- Body/AAUHuman/Trunk/MusclesLeft.any | 157 ++++++++------- Body/AAUHuman/Trunk/MusclesRight.any | 179 +++++++++--------- .../TrunkModelMuscleParameters.any | 14 +- .../Trunk/muscle-models-trunk-simple.any | 48 ++--- Body/AAUHuman/Trunk/muscle-models-trunk.any | 56 +++--- 5 files changed, 226 insertions(+), 228 deletions(-) diff --git a/Body/AAUHuman/Trunk/MusclesLeft.any b/Body/AAUHuman/Trunk/MusclesLeft.any index 84eba0c5..e8014f17 100644 --- a/Body/AAUHuman/Trunk/MusclesLeft.any +++ b/Body/AAUHuman/Trunk/MusclesLeft.any @@ -3872,16 +3872,13 @@ AnyMuscleShortestPath OIC_7 = { AnyMuscleShortestPath OIC_8 = { AnyMuscleModel &MusMdl = ....MuscleModels.Left.ObliquusInternus.OIC_8; - AnyRefNode &Org = ....Segments.SternalBodySeg.Xiphoid_DiaphragmNodeL; - AnyRefNode &Via = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L1.BaseSegAnterior.TransversusPoints.Left.nn06; + AnyRefNode &Org = ....Segments.SternalBodySeg.RACP_Via_2_L; + // 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; -// AnySurfTriCylMesh &mesh5 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L5.BaseSegAnterior.mesh; - +//// 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; @@ -3892,23 +3889,24 @@ AnyMuscleShortestPath OIC_8 = { // 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=240; - SPLine.StringMesh=240; - - SPLine ={ -// StringSurfaceMap={{Off,Off,Off},{On,On,On}}; //no wrap before after via - StringSurfaceMap={{Off,Off},{On,On}}; //no wrap before after via +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), -// // transf3D({.mesh5.Radius[0],0,0}, &.mesh5), // }; // #endif // #if MESH_TYPE == "ELLIPSOID_SIDE" @@ -3918,38 +3916,51 @@ AnyMuscleShortestPath OIC_8 = { // 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) -// }; -// +// 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 = { + + 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), - // transf3D({.mesh5.Radius[0],0,0}, &.mesh5), }; - InitWrapPosVecArr = {None,&InitWrapPos}; - }; - viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; - viewForce.Visible ??= Off; + + InitWrapPosVecArr = {&InitWrapPos}; + //InitWrapPosVecArr = {&InitWrapPos}; + + +}; +viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; +viewForce.Visible ??= Off; }; -AnyMuscleShortestPath OIC_8_extra = { - AnyMuscleModel &MusMdl = ....MuscleModels.Left.ObliquusInternus.OIC_8_extra; - AnyRefNode &Org = ....Segments.SternalBodySeg.RACP_Via_2_L; - // AnyRefNode &Via = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L1.BaseSegAnterior.TransversusPoints.Left.nn05; +AnyMuscleShortestPath OIC_9 = { + AnyMuscleModel &MusMdl = ....MuscleModels.Left.ObliquusInternus.OIC_9; + AnyRefNode &Org = ....Segments.SternalBodySeg.Xiphoid_DiaphragmNodeL; + AnyRefNode &Via = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L1.BaseSegAnterior.TransversusPoints.Left.nn06; 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 &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; @@ -3960,24 +3971,23 @@ 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 &mesh3 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L3.BaseSegAnterior.mesh3; AnySurfEllipsoid &mesh4 = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L4.BaseSegAnterior.mesh3; - -SPLine.StringMesh=240; -SPLine ={ - // SolverVersion=3; - // StringSurfaceMap={{Off,Off,Off,Off},{On,On,On,On}}; //no wrap before after via - + SPLine.StringMesh=240; -// #if MESH_TYPE == "ELLIPSOID" + SPLine ={ +// 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 = { // 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" @@ -3987,42 +3997,31 @@ SPLine ={ // 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) -// }; // +// #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({.mesh1.Radius[0],0,0}, &.mesh1), + 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), }; - - InitWrapPosVecArr = {&InitWrapPos}; - //InitWrapPosVecArr = {&InitWrapPos}; - - -}; -viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; -viewForce.Visible ??= Off; + InitWrapPosVecArr = {None,&InitWrapPos}; + }; + viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; + viewForce.Visible ??= Off; }; - -AnyMuscleShortestPath OIC_9 = { - AnyMuscleModel &MusMdl = ....MuscleModels.Left.ObliquusInternus.OIC_9; +AnyMuscleShortestPath OIC_10 = { + AnyMuscleModel &MusMdl = ....MuscleModels.Left.ObliquusInternus.OIC_10; AnyRefNode &Org = ....Abdominal.Layer_L1.BaseSegAnterior.mid; AnyRefNode &Ins = ....Segments.PelvisSeg.Left.ObliquusInternusNode_6; @@ -4099,8 +4098,8 @@ AnyMuscleShortestPath OIC_9 = { }; -AnyMuscleShortestPath OIC_10 = { - AnyMuscleModel &MusMdl = ....MuscleModels.Left.ObliquusInternus.OIC_10; +AnyMuscleShortestPath OIC_11 = { + AnyMuscleModel &MusMdl = ....MuscleModels.Left.ObliquusInternus.OIC_11; AnyRefNode &Org = ....Abdominal.Layer_L2.BaseSegAnterior.mid; AnyRefNode &Ins = ....Segments.PelvisSeg.Left.ObliquusInternusNode_6; @@ -4183,8 +4182,8 @@ AnyMuscleShortestPath OIC_10 = { // -AnyMuscleShortestPath OIC_11 = { - AnyMuscleModel &MusMdl = ....MuscleModels.Left.ObliquusInternus.OIC_11; +AnyMuscleShortestPath OIC_12 = { + AnyMuscleModel &MusMdl = ....MuscleModels.Left.ObliquusInternus.OIC_12; AnyRefNode &Org = ....Abdominal.Layer_L3.BaseSegAnterior.mid; AnyRefNode &Ins = ....Segments.PelvisSeg.Left.ObliquusInternusNode_7; @@ -4252,8 +4251,8 @@ AnyMuscleShortestPath OIC_11 = { }; -AnyMuscleShortestPath OIC_12 = { - AnyMuscleModel &MusMdl = ....MuscleModels.Left.ObliquusInternus.OIC_12; +AnyMuscleShortestPath OIC_13 = { + AnyMuscleModel &MusMdl = ....MuscleModels.Left.ObliquusInternus.OIC_13; AnyRefNode &Org = ....Abdominal.Layer_L4.BaseSegAnterior.mid; AnyRefNode &Ins = ....Segments.PelvisSeg.Left.ObliquusInternusNode_7; @@ -4307,8 +4306,8 @@ AnyMuscleShortestPath OIC_12 = { viewForce.Visible ??= Off; }; -AnyMuscleViaPoint OIC_13= { - AnyMuscleModel &MusMdl = ....MuscleModels.Left.ObliquusInternus.OIC_13; +AnyMuscleViaPoint OIC_14= { + AnyMuscleModel &MusMdl = ....MuscleModels.Left.ObliquusInternus.OIC_14; AnyRefNode &Org = ....Abdominal.Layer_L5.BaseSegAnterior.mid; AnyRefNode &Ins = ....Segments.PelvisSeg.Left.ObliquusInternusNode_8; diff --git a/Body/AAUHuman/Trunk/MusclesRight.any b/Body/AAUHuman/Trunk/MusclesRight.any index 6ed4c9f6..1dbd1e8d 100644 --- a/Body/AAUHuman/Trunk/MusclesRight.any +++ b/Body/AAUHuman/Trunk/MusclesRight.any @@ -3896,6 +3896,85 @@ AnyMuscleShortestPath OIC_7 = { AnyMuscleShortestPath OIC_8 = { AnyMuscleModel &MusMdl = ....MuscleModels.Right.ObliquusInternus.OIC_8; + AnyRefNode &Org = ....Segments.SternalBodySeg.RACP_Via_2_R; + // 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 &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=240; + +SPLine ={ + // SolverVersion=3; + // StringSurfaceMap={{Off,Off,Off,Off},{On,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), +// }; +// #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), + }; + + + InitWrapPosVecArr = {&InitWrapPos}; + + +}; +viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; +viewForce.Visible ??= Off; +}; + +AnyMuscleShortestPath OIC_9 = { + AnyMuscleModel &MusMdl = ....MuscleModels.Right.ObliquusInternus.OIC_9; AnyRefNode &Org = ....Segments.SternalBodySeg.Xiphoid_DiaphragmNodeR; AnyRefNode &Via = Main.HumanModel.BodyModel.Trunk.Abdominal.Layer_L1.BaseSegAnterior.TransversusPoints.Right.nn06; @@ -3985,88 +4064,8 @@ AnyMuscleShortestPath OIC_8 = { viewForce.Visible ??= Off; }; -AnyMuscleShortestPath OIC_8_extra = { - AnyMuscleModel &MusMdl = ....MuscleModels.Right.ObliquusInternus.OIC_8_extra; - AnyRefNode &Org = ....Segments.SternalBodySeg.RACP_Via_2_R; - // 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 &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=240; - -SPLine ={ - // SolverVersion=3; - // StringSurfaceMap={{Off,Off,Off,Off},{On,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), -// }; -// #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), - }; - - - InitWrapPosVecArr = {&InitWrapPos}; - - -}; -viewMuscle = {#include "../DrawSettings/MusDrawSettings.any"}; -viewForce.Visible ??= Off; -}; - - -AnyMuscleShortestPath OIC_9 = { - AnyMuscleModel &MusMdl = ....MuscleModels.Right.ObliquusInternus.OIC_9; +AnyMuscleShortestPath OIC_10 = { + AnyMuscleModel &MusMdl = ....MuscleModels.Right.ObliquusInternus.OIC_10; AnyRefNode &Org = ....Abdominal.Layer_L1.BaseSegAnterior.mid; AnyRefNode &Ins = ....Segments.PelvisSeg.Right.ObliquusInternusNode_6; @@ -4143,8 +4142,8 @@ AnyMuscleShortestPath OIC_9 = { }; -AnyMuscleShortestPath OIC_10 = { - AnyMuscleModel &MusMdl = ....MuscleModels.Right.ObliquusInternus.OIC_10; +AnyMuscleShortestPath OIC_11 = { + AnyMuscleModel &MusMdl = ....MuscleModels.Right.ObliquusInternus.OIC_11; AnyRefNode &Org = ....Abdominal.Layer_L2.BaseSegAnterior.mid; AnyRefNode &Ins = ....Segments.PelvisSeg.Right.ObliquusInternusNode_6; @@ -4226,8 +4225,8 @@ AnyMuscleShortestPath OIC_10 = { // -AnyMuscleShortestPath OIC_11 = { - AnyMuscleModel &MusMdl = ....MuscleModels.Right.ObliquusInternus.OIC_11; +AnyMuscleShortestPath OIC_12 = { + AnyMuscleModel &MusMdl = ....MuscleModels.Right.ObliquusInternus.OIC_12; AnyRefNode &Org = ....Abdominal.Layer_L3.BaseSegAnterior.mid; AnyRefNode &Ins = ....Segments.PelvisSeg.Right.ObliquusInternusNode_7; @@ -4294,8 +4293,8 @@ AnyMuscleShortestPath OIC_11 = { }; -AnyMuscleShortestPath OIC_12 = { - AnyMuscleModel &MusMdl = ....MuscleModels.Right.ObliquusInternus.OIC_12; +AnyMuscleShortestPath OIC_13 = { + AnyMuscleModel &MusMdl = ....MuscleModels.Right.ObliquusInternus.OIC_13; AnyRefNode &Org = ....Abdominal.Layer_L4.BaseSegAnterior.mid; AnyRefNode &Ins = ....Segments.PelvisSeg.Right.ObliquusInternusNode_7; @@ -4346,8 +4345,8 @@ AnyMuscleShortestPath OIC_12 = { viewForce.Visible ??= Off; }; -AnyMuscleViaPoint OIC_13= { - AnyMuscleModel &MusMdl = ....MuscleModels.Right.ObliquusInternus.OIC_13; +AnyMuscleViaPoint OIC_14= { + AnyMuscleModel &MusMdl = ....MuscleModels.Right.ObliquusInternus.OIC_14; AnyRefNode &Org = ....Abdominal.Layer_L5.BaseSegAnterior.mid; AnyRefNode &Ins = ....Segments.PelvisSeg.Right.ObliquusInternusNode_8; diff --git a/Body/AAUHuman/Trunk/TrunkData1.1/TrunkModelMuscleParameters.any b/Body/AAUHuman/Trunk/TrunkData1.1/TrunkModelMuscleParameters.any index e5c1cc03..33554203 100644 --- a/Body/AAUHuman/Trunk/TrunkData1.1/TrunkModelMuscleParameters.any +++ b/Body/AAUHuman/Trunk/TrunkData1.1/TrunkModelMuscleParameters.any @@ -2431,7 +2431,7 @@ AnyFolder Muscles = #endif #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ - AnyFolder OIC_8_extra = + AnyFolder OIC_8 = { AnyString Muscle = "Obliquus Internus"; ///< Descriptive name for the muscle, e.g. for plotting AnyIntVar MuscleElemAmount = 1; ///< The total amount of elements for this muscle @@ -2449,7 +2449,7 @@ AnyFolder Muscles = #endif #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ - AnyFolder OIC_8 = + AnyFolder OIC_9 = { AnyString Muscle = "Obliquus Internus"; ///< Descriptive name for the muscle, e.g. for plotting AnyIntVar MuscleElemAmount = 1; ///< The total amount of elements for this muscle @@ -2467,7 +2467,7 @@ AnyFolder Muscles = #endif #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ - AnyFolder OIC_9 = + AnyFolder OIC_10 = { AnyString Muscle = "Obliquus Internus"; ///< Descriptive name for the muscle, e.g. for plotting AnyIntVar MuscleElemAmount = 1; ///< The total amount of elements for this muscle @@ -2485,7 +2485,7 @@ AnyFolder Muscles = #endif #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ - AnyFolder OIC_10 = + AnyFolder OIC_11 = { AnyString Muscle = "Obliquus Internus"; ///< Descriptive name for the muscle, e.g. for plotting AnyIntVar MuscleElemAmount = 1; ///< The total amount of elements for this muscle @@ -2503,7 +2503,7 @@ AnyFolder Muscles = #endif #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ - AnyFolder OIC_11 = + AnyFolder OIC_12 = { AnyString Muscle = "Obliquus Internus"; ///< Descriptive name for the muscle, e.g. for plotting AnyIntVar MuscleElemAmount = 1; ///< The total amount of elements for this muscle @@ -2521,7 +2521,7 @@ AnyFolder Muscles = #endif #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ - AnyFolder OIC_12 = + AnyFolder OIC_13 = { AnyString Muscle = "Obliquus Internus"; ///< Descriptive name for the muscle, e.g. for plotting AnyIntVar MuscleElemAmount = 1; ///< The total amount of elements for this muscle @@ -2539,7 +2539,7 @@ AnyFolder Muscles = #endif #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ - AnyFolder OIC_13 = + AnyFolder OIC_14 = { AnyString Muscle = "Obliquus Internus"; ///< Descriptive name for the muscle, e.g. for plotting AnyIntVar MuscleElemAmount = 1; ///< The total amount of elements for this muscle diff --git a/Body/AAUHuman/Trunk/muscle-models-trunk-simple.any b/Body/AAUHuman/Trunk/muscle-models-trunk-simple.any index 3010a3d6..e0fb2264 100644 --- a/Body/AAUHuman/Trunk/muscle-models-trunk-simple.any +++ b/Body/AAUHuman/Trunk/muscle-models-trunk-simple.any @@ -1629,18 +1629,6 @@ AnyFolder Left = { }; #endif - #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ - AnyMuscleModel OIC_8_extra = { - AnyFolder& MuscleParameters = ....Data.unscaled.ModelParameters.Muscles.ObliquusInternus.OIC_8_extra; - AnyIntVar MuscleElemNo = 1; ///< The number of this element of the muscle - AnyIntVar MuscleElemAmount = MuscleParameters.MuscleElemAmount; ///< The total amount of elements for this muscle - F0 ??= ...DefaultMusPar.PCSAfactor*PCSA; ///< Maximum force output at optimum fiber length - Lf0 ??= MuscleParameters.OptimalFiberlength / cos(pi/180*MuscleParameters.Pennationangle); //< Optimal fiber length corrected by pennation angle - AnyVar PCSA ??= 1e4*...StrengthScaleSpine*MuscleParameters.MuscleVolumeSIScaled/(Lf0); ///< PCSA (cm2) of the individual element is total volumen divided by the sum of muscle element fiber lengths. - Vol0 = (1e-4*PCSA) * Lf0; // New calculation of the vol for the specific muscle branch - }; - #endif - #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ AnyMuscleModel OIC_8 = { AnyFolder& MuscleParameters = ....Data.unscaled.ModelParameters.Muscles.ObliquusInternus.OIC_8; @@ -1713,6 +1701,18 @@ AnyFolder Left = { }; #endif + #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ + AnyMuscleModel OIC_14 = { + AnyFolder& MuscleParameters = ....Data.unscaled.ModelParameters.Muscles.ObliquusInternus.OIC_14; + AnyIntVar MuscleElemNo = 1; ///< The number of this element of the muscle + AnyIntVar MuscleElemAmount = MuscleParameters.MuscleElemAmount; ///< The total amount of elements for this muscle + F0 ??= ...DefaultMusPar.PCSAfactor*PCSA; ///< Maximum force output at optimum fiber length + Lf0 ??= MuscleParameters.OptimalFiberlength / cos(pi/180*MuscleParameters.Pennationangle); //< Optimal fiber length corrected by pennation angle + AnyVar PCSA ??= 1e4*...StrengthScaleSpine*MuscleParameters.MuscleVolumeSIScaled/(Lf0); ///< PCSA (cm2) of the individual element is total volumen divided by the sum of muscle element fiber lengths. + Vol0 = (1e-4*PCSA) * Lf0; // New calculation of the vol for the specific muscle branch + }; + #endif + }; AnyFolder ObliquusExternus = { @@ -6821,18 +6821,6 @@ AnyFolder Right = { }; #endif - #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ - AnyMuscleModel OIC_8_extra = { - AnyFolder& MuscleParameters = ....Data.unscaled.ModelParameters.Muscles.ObliquusInternus.OIC_8_extra; - AnyIntVar MuscleElemNo = 1; ///< The number of this element of the muscle - AnyIntVar MuscleElemAmount = MuscleParameters.MuscleElemAmount; ///< The total amount of elements for this muscle - F0 ??= ...DefaultMusPar.PCSAfactor*PCSA; ///< Maximum force output at optimum fiber length - Lf0 ??= MuscleParameters.OptimalFiberlength / cos(pi/180*MuscleParameters.Pennationangle); //< Optimal fiber length corrected by pennation angle - AnyVar PCSA ??= 1e4*...StrengthScaleSpine*MuscleParameters.MuscleVolumeSIScaled/(Lf0); ///< PCSA (cm2) of the individual element is total volumen divided by the sum of muscle element fiber lengths. - Vol0 = (1e-4*PCSA) * Lf0; // New calculation of the vol for the specific muscle branch - }; - #endif - #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ AnyMuscleModel OIC_8 = { AnyFolder& MuscleParameters = ....Data.unscaled.ModelParameters.Muscles.ObliquusInternus.OIC_8; @@ -6905,6 +6893,18 @@ AnyFolder Right = { }; #endif + #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ + AnyMuscleModel OIC_14 = { + AnyFolder& MuscleParameters = ....Data.unscaled.ModelParameters.Muscles.ObliquusInternus.OIC_14; + AnyIntVar MuscleElemNo = 1; ///< The number of this element of the muscle + AnyIntVar MuscleElemAmount = MuscleParameters.MuscleElemAmount; ///< The total amount of elements for this muscle + F0 ??= ...DefaultMusPar.PCSAfactor*PCSA; ///< Maximum force output at optimum fiber length + Lf0 ??= MuscleParameters.OptimalFiberlength / cos(pi/180*MuscleParameters.Pennationangle); //< Optimal fiber length corrected by pennation angle + AnyVar PCSA ??= 1e4*...StrengthScaleSpine*MuscleParameters.MuscleVolumeSIScaled/(Lf0); ///< PCSA (cm2) of the individual element is total volumen divided by the sum of muscle element fiber lengths. + Vol0 = (1e-4*PCSA) * Lf0; // New calculation of the vol for the specific muscle branch + }; + #endif + }; AnyFolder ObliquusExternus = { diff --git a/Body/AAUHuman/Trunk/muscle-models-trunk.any b/Body/AAUHuman/Trunk/muscle-models-trunk.any index 87ac053e..23ae4d88 100644 --- a/Body/AAUHuman/Trunk/muscle-models-trunk.any +++ b/Body/AAUHuman/Trunk/muscle-models-trunk.any @@ -3064,8 +3064,8 @@ AnyFolder Left = { #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ - AnyMuscleModel3E OIC_8_extra = { - AnyFolder& MuscleParameters = ....Data.unscaled.ModelParameters.Muscles.ObliquusInternus.OIC_8_extra; + AnyMuscleModel3E OIC_8 = { + AnyFolder& MuscleParameters = ....Data.unscaled.ModelParameters.Muscles.ObliquusInternus.OIC_8; AnyIntVar MuscleElemNo = 1; ///< The number of this element of the muscle AnyIntVar MuscleElemAmount = MuscleParameters.MuscleElemAmount; ///< The total amount of elements for this muscle F0 ??= ...DefaultMusPar.PCSAfactor*PCSA; ///< Maximum force output at optimum fiber length @@ -3087,8 +3087,8 @@ AnyFolder Left = { #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ - AnyMuscleModel3E OIC_8 = { - AnyFolder& MuscleParameters = ....Data.unscaled.ModelParameters.Muscles.ObliquusInternus.OIC_8; + AnyMuscleModel3E OIC_9 = { + AnyFolder& MuscleParameters = ....Data.unscaled.ModelParameters.Muscles.ObliquusInternus.OIC_9; AnyIntVar MuscleElemNo = 1; ///< The number of this element of the muscle AnyIntVar MuscleElemAmount = MuscleParameters.MuscleElemAmount; ///< The total amount of elements for this muscle F0 ??= ...DefaultMusPar.PCSAfactor*PCSA; ///< Maximum force output at optimum fiber length @@ -3110,8 +3110,8 @@ AnyFolder Left = { #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ - AnyMuscleModel3E OIC_9 = { - AnyFolder& MuscleParameters = ....Data.unscaled.ModelParameters.Muscles.ObliquusInternus.OIC_9; + AnyMuscleModel3E OIC_10 = { + AnyFolder& MuscleParameters = ....Data.unscaled.ModelParameters.Muscles.ObliquusInternus.OIC_10; AnyIntVar MuscleElemNo = 1; ///< The number of this element of the muscle AnyIntVar MuscleElemAmount = MuscleParameters.MuscleElemAmount; ///< The total amount of elements for this muscle F0 ??= ...DefaultMusPar.PCSAfactor*PCSA; ///< Maximum force output at optimum fiber length @@ -3133,8 +3133,8 @@ AnyFolder Left = { #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ - AnyMuscleModel3E OIC_10 = { - AnyFolder& MuscleParameters = ....Data.unscaled.ModelParameters.Muscles.ObliquusInternus.OIC_10; + AnyMuscleModel3E OIC_11 = { + AnyFolder& MuscleParameters = ....Data.unscaled.ModelParameters.Muscles.ObliquusInternus.OIC_11; AnyIntVar MuscleElemNo = 1; ///< The number of this element of the muscle AnyIntVar MuscleElemAmount = MuscleParameters.MuscleElemAmount; ///< The total amount of elements for this muscle F0 ??= ...DefaultMusPar.PCSAfactor*PCSA; ///< Maximum force output at optimum fiber length @@ -3156,8 +3156,8 @@ AnyFolder Left = { #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ - AnyMuscleModel3E OIC_11 = { - AnyFolder& MuscleParameters = ....Data.unscaled.ModelParameters.Muscles.ObliquusInternus.OIC_11; + AnyMuscleModel3E OIC_12 = { + AnyFolder& MuscleParameters = ....Data.unscaled.ModelParameters.Muscles.ObliquusInternus.OIC_12; AnyIntVar MuscleElemNo = 1; ///< The number of this element of the muscle AnyIntVar MuscleElemAmount = MuscleParameters.MuscleElemAmount; ///< The total amount of elements for this muscle F0 ??= ...DefaultMusPar.PCSAfactor*PCSA; ///< Maximum force output at optimum fiber length @@ -3179,8 +3179,8 @@ AnyFolder Left = { #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ - AnyMuscleModel3E OIC_12 = { - AnyFolder& MuscleParameters = ....Data.unscaled.ModelParameters.Muscles.ObliquusInternus.OIC_12; + AnyMuscleModel3E OIC_13 = { + AnyFolder& MuscleParameters = ....Data.unscaled.ModelParameters.Muscles.ObliquusInternus.OIC_13; AnyIntVar MuscleElemNo = 1; ///< The number of this element of the muscle AnyIntVar MuscleElemAmount = MuscleParameters.MuscleElemAmount; ///< The total amount of elements for this muscle F0 ??= ...DefaultMusPar.PCSAfactor*PCSA; ///< Maximum force output at optimum fiber length @@ -3202,8 +3202,8 @@ AnyFolder Left = { #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ - AnyMuscleModel3E OIC_13 = { - AnyFolder& MuscleParameters = ....Data.unscaled.ModelParameters.Muscles.ObliquusInternus.OIC_13; + AnyMuscleModel3E OIC_14 = { + AnyFolder& MuscleParameters = ....Data.unscaled.ModelParameters.Muscles.ObliquusInternus.OIC_14; AnyIntVar MuscleElemNo = 1; ///< The number of this element of the muscle AnyIntVar MuscleElemAmount = MuscleParameters.MuscleElemAmount; ///< The total amount of elements for this muscle F0 ??= ...DefaultMusPar.PCSAfactor*PCSA; ///< Maximum force output at optimum fiber length @@ -12818,8 +12818,8 @@ AnyFolder Right = { #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ - AnyMuscleModel3E OIC_8_extra = { - AnyFolder& MuscleParameters = ....Data.unscaled.ModelParameters.Muscles.ObliquusInternus.OIC_8_extra; + AnyMuscleModel3E OIC_8 = { + AnyFolder& MuscleParameters = ....Data.unscaled.ModelParameters.Muscles.ObliquusInternus.OIC_8; AnyIntVar MuscleElemNo = 1; ///< The number of this element of the muscle AnyIntVar MuscleElemAmount = MuscleParameters.MuscleElemAmount; ///< The total amount of elements for this muscle F0 ??= ...DefaultMusPar.PCSAfactor*PCSA; ///< Maximum force output at optimum fiber length @@ -12841,8 +12841,8 @@ AnyFolder Right = { #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ - AnyMuscleModel3E OIC_8 = { - AnyFolder& MuscleParameters = ....Data.unscaled.ModelParameters.Muscles.ObliquusInternus.OIC_8; + AnyMuscleModel3E OIC_9 = { + AnyFolder& MuscleParameters = ....Data.unscaled.ModelParameters.Muscles.ObliquusInternus.OIC_9; AnyIntVar MuscleElemNo = 1; ///< The number of this element of the muscle AnyIntVar MuscleElemAmount = MuscleParameters.MuscleElemAmount; ///< The total amount of elements for this muscle F0 ??= ...DefaultMusPar.PCSAfactor*PCSA; ///< Maximum force output at optimum fiber length @@ -12864,8 +12864,8 @@ AnyFolder Right = { #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ - AnyMuscleModel3E OIC_9 = { - AnyFolder& MuscleParameters = ....Data.unscaled.ModelParameters.Muscles.ObliquusInternus.OIC_9; + AnyMuscleModel3E OIC_10 = { + AnyFolder& MuscleParameters = ....Data.unscaled.ModelParameters.Muscles.ObliquusInternus.OIC_10; AnyIntVar MuscleElemNo = 1; ///< The number of this element of the muscle AnyIntVar MuscleElemAmount = MuscleParameters.MuscleElemAmount; ///< The total amount of elements for this muscle F0 ??= ...DefaultMusPar.PCSAfactor*PCSA; ///< Maximum force output at optimum fiber length @@ -12887,8 +12887,8 @@ AnyFolder Right = { #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ - AnyMuscleModel3E OIC_10 = { - AnyFolder& MuscleParameters = ....Data.unscaled.ModelParameters.Muscles.ObliquusInternus.OIC_10; + AnyMuscleModel3E OIC_11 = { + AnyFolder& MuscleParameters = ....Data.unscaled.ModelParameters.Muscles.ObliquusInternus.OIC_11; AnyIntVar MuscleElemNo = 1; ///< The number of this element of the muscle AnyIntVar MuscleElemAmount = MuscleParameters.MuscleElemAmount; ///< The total amount of elements for this muscle F0 ??= ...DefaultMusPar.PCSAfactor*PCSA; ///< Maximum force output at optimum fiber length @@ -12910,8 +12910,8 @@ AnyFolder Right = { #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ - AnyMuscleModel3E OIC_11 = { - AnyFolder& MuscleParameters = ....Data.unscaled.ModelParameters.Muscles.ObliquusInternus.OIC_11; + AnyMuscleModel3E OIC_12 = { + AnyFolder& MuscleParameters = ....Data.unscaled.ModelParameters.Muscles.ObliquusInternus.OIC_12; AnyIntVar MuscleElemNo = 1; ///< The number of this element of the muscle AnyIntVar MuscleElemAmount = MuscleParameters.MuscleElemAmount; ///< The total amount of elements for this muscle F0 ??= ...DefaultMusPar.PCSAfactor*PCSA; ///< Maximum force output at optimum fiber length @@ -12933,8 +12933,8 @@ AnyFolder Right = { #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ - AnyMuscleModel3E OIC_12 = { - AnyFolder& MuscleParameters = ....Data.unscaled.ModelParameters.Muscles.ObliquusInternus.OIC_12; + AnyMuscleModel3E OIC_13 = { + AnyFolder& MuscleParameters = ....Data.unscaled.ModelParameters.Muscles.ObliquusInternus.OIC_13; AnyIntVar MuscleElemNo = 1; ///< The number of this element of the muscle AnyIntVar MuscleElemAmount = MuscleParameters.MuscleElemAmount; ///< The total amount of elements for this muscle F0 ??= ...DefaultMusPar.PCSAfactor*PCSA; ///< Maximum force output at optimum fiber length @@ -12956,8 +12956,8 @@ AnyFolder Right = { #if BM_TRUNK_MUSCLES & BM_TRUNK_CAVITY_MODEL == _CAVITY_MODEL_VOLUME_ - AnyMuscleModel3E OIC_13 = { - AnyFolder& MuscleParameters = ....Data.unscaled.ModelParameters.Muscles.ObliquusInternus.OIC_13; + AnyMuscleModel3E OIC_14 = { + AnyFolder& MuscleParameters = ....Data.unscaled.ModelParameters.Muscles.ObliquusInternus.OIC_14; AnyIntVar MuscleElemNo = 1; ///< The number of this element of the muscle AnyIntVar MuscleElemAmount = MuscleParameters.MuscleElemAmount; ///< The total amount of elements for this muscle F0 ??= ...DefaultMusPar.PCSAfactor*PCSA; ///< Maximum force output at optimum fiber length