Questions about KneeNetMomentMuscle

Hi

I am using AnyForceMomentMeasure2 KneeNetMomentMuscle to measure the moment of a single muscle to the knee joint. Why do I get the same results with different muscles? Any help would be greatly appreciated.


Best regards
zzs22500

Hi zzs22500,

I think the reason why you get same results is that the muscles may not be active or that the search did not find these muscles, please check that.

Another thing is that this code was adopted from the moment measure that measure all muscles moment contribution around the knee, for this reason the patella reaction was included.

The construction with the patella and its joint reaction has as I see it the following implications:

  • The patella reaction should only be included if the muscle inserting on patella is measured.
  • The measure will not be able to distinguish between moment contributions from muscles inserting on patella, either measure all these muscles in a measure or none of them. The reason is that the reaction being included into the measure will always be the full reaction from all the muscles inserting on patella.

So bottom line, exclude the patella reaction if you are measuring muscles not inserting on patella and secondly if you measure muscles inserting on patella include the reaction and include ALL muscles inserting on patella.

Hope it made it more clear.

Best regards
Søren

Hi Søren

Thanks again for your reply. The rectus femoris is the muscle inserted on patella. You said PatellaMovement Reaction will include the reaction of all muscles inserted on patella.Then the result I get will be the reaction of all muscles inserted on patella. How do I get the moment of the rectus femoris alone? Also, when I measure a muscle that is not inserted on the patella, I get an error when I exclude the patella reaction:“ ‘}’ unexpected ”. Thank you in advance.

Best regards
zzs22500

Hi zzs22500,

I am not sure how to measure the contribution from just one of the muscles inserting on patella, that is why i wrote that this should be avoided. The mechanism in the knee makes this tricky.
The error you get might be because you have now

    AnyObjectPtrArray pArrJntReactions = {
     };
    IncludeForces = arrcat(
    ObjSearch("…Mus. <em>", “AnyMuscle”),
    ObjSearch("…TrunkMuscles.PsoasMajor.</em> ", “AnyMuscle”),
    ObjSearchRecursive("…JointMuscles", “*”, “AnyMuscle”),
    pArrJntReactions
    );

This will not work since the pointer array can not be empty so instead try this.

  //  AnyObjectPtrArray pArrJntReactions = {            };
            IncludeForces = arrcat(
            ObjSearch("…Mus. *", “AnyMuscle”),
            ObjSearch("…TrunkMuscles.PsoasMajor.* ", “AnyMuscle”),
            ObjSearchRecursive("…JointMuscles", “*”, “AnyMuscle”)
            );

Hi Søren

Thank you for your reply. In this case, am I unable to get the moment of the single muscle to the knee joint?When I comment out PatellaMovementReaction, the value of KneeNetMomentMuscle becomes 0. I feel that KneeNetMomentMuscle is only related to PatellaMovementReaction, and the muscles in ObjSearch have no effect.

Best regards
zzs22500

No this is not correct.

You can use the code to get moment contribution for individual muscles as long they do not insert on patella, then exclude patella reaction

for muscles on patella you need to take all of them.

Muscles in object search do have an effect, did you check the IncludeForce object in the ModelTree to see if your search did work? If the muscle is not listed the search did not find it and it will not impact, same will ofcourse be the case for inactive muscles.

If you do not see the muscle in the IncludeForce list it might be because you had a different model structure and the search needs to be altered. You can use the ModelTree to locate the muscles in question then right click to see options and copy its complete name

Best regards
Søren

Hi Søren

Thank you for your reply, I’m very sorry to bother you for so long. I checked IncludeForce before each run and I saw the target muscle appeared in the list. Do you mean that I can measure the moment of the knee joint by a single muscle that is not inserted on the patella? So I chose TensorFasciaeLatae, which was inserted on the tibia and commented out PatellaReaction, Is there any other JntReaction that needs to be added? What does TrunkMuscles and JointMuscles do in ObjSearch. Should I comment them out. Thank you again.

// AnyObjectPtrArray pArrJntReactions = { };
IncludeForces = arrcat(
ObjSearch("…Mus. TensorFasciaeLatae*", “AnyMuscle”),
// ObjSearch("…TrunkMuscles.PsoasMajor.* “, “AnyMuscle”),
// ObjSearchRecursive(”…JointMuscles", “*”, “AnyMuscle”)
);

Best regards
zzs22500

Hi zzs22500,

In the code you you have listed there is an extra space “Mus. Tenso…” between Mus and TensorFascialates so the search will not find this muscle, this is why it does not work.

When looking at IncludeForces in ModelTree it is the Value object of the IncludeForces which “counts”

Best regards
Søren

Hi Søren

What does TrunkMuscles and JointMuscles do in ObjSearch. Should I comment them out when I measure the moment of the single muscle to the joint?

Best regards
zzs22500

Yes they should be commented out

Hi Søren

Sorry to bother you for so long, thank you so much for your help and patience :blush:

Best regards
zzs22500