Specifications

113
They are usually constrained by various obstacles on their way from origin to insertion, either by connective
tissues or by the contact with bone surfaces.
In the former case, the muscle tends to pass as a piecewise straight line between the constrained points,
and this is relatively easy to to accomplish by means of an AnyViaPointMuscle. In the latter case, the muscle
may engage and release contact with the bone surfaces it encounters. This wrapping over bones is a
problem of contact mechanics and optimization. It requires a different muscle class and it is computationally
much more demanding. In this lesson we shall look at AnyViaPointMuscles and postpone the discussion of
wrapping to the next lesson.
Anatomically, via point muscles are mostly found in the lower extremities and in the spine, while the arms
and shoulders almost exclusively have wrapping muscles.
Most muscles in the legs can be modeled
reasonably with via point muscles.
The deltoid muscle wraps over the head
of the humerus.
Via Point Muscles
Via point muscles pass through a set of at least two points on their way from origin to insertion. Each of the
via points must be attached to a segment or the global reference frame of the model. The first and the last
of the point sequence are special because the muscle is rigidly fixed to them and hence transfers forces in
its local longitudinal direction to them. Conversely, the muscle passes through the interior via points like a
thread through the eye of a needle. This means that the muscle transfers only forces to interior via points
along a line that bisects the angle formed by the muscle on the two sides of the via point.
Let us modify the model we have been working on to investigate the properties of via point muscles. Initially
we reduce the bulging to facilitate study of the muscle path.
AnyDrawMuscle drw = {
//RGB = {0.554688, 0.101563, 0.117188};
//Transparency = 0.2;
//DrawOnOff = 1;
Bulging = 2;
ColorScale = 1;
//RGBColorScale = {0.957031, 0.785156, 0.785156};
MaxStress = 250000;
};
We then move the insertion point of the muscle a bit further out and closer to the axis of the Arm segment
to make room for a via point:
AnySeg Arm = {
r0 = {0.500000, 0.000000, 0.000000};
Mass = 1.000000;
Jii = {0.100000, 1.000000, 1.000000}*0.1;