PRIMER 22.1

Initial Depenetration

Initial Depenetration
This feature is experimental, and still under development.

Initial depenetration can be used to sort out minor path definition errors, however it can go wrong (see How and why automatic depenetration fails, and what to do about it below) and it should not be relied on always to give a good answer. Adjusting the belt path manually to resolve errors is more likely to give a good end result. However in batch fitting, or in an automated process where manual intervention is not practical it may help to improve robustness.` We will continue to develop this feature.

One problem when defining a basic belt path is that the path may accidentally penetrate the structure resulting in it getting stuck on the "wrong" side of shells during fitting because of the way the contact algorithms work. Another problem is that in regions where belt paths converge, typically near a pelvis slipring, the segments of belt path may overlap and inter-penetrate each other. Examples of these problems are shown below:

The belt path penetrates the chest of the dummy

The belt path overlaps and self-intersects

Initial depenetration can - sometimes - sort out these problems. The images below show what happens when it is run on the two problems above.

The belt has been ejected from the chest.

The belt path has been sorted out.

In both cases the depenetrated result looks quite "bumpy" and has distorted the belt path. Don't worry about this: depenetration does not consider the physics of the belt, but form-finding (fitting) does and it will pull the belt back into a reasonable shape.

The two sorts of depenetration here are two separate problems that are tackled in two different but related ways:

(1) Depenetrating the belt from the structure.

This is achieved by finding a start point on the belt that is definitely "outside" the structure, green in this image, then walking down the belt in small increments of distance until the path moves to "inside" the structure (red).

Because the distinction between outside and inside is well defined it is possible to identify the depenetration "escape" vector (blue) along which it is necessary to move this region of belt path in order to depenetrate it.

This technique tends to work reasonably well where the belt "dips into" the structure as in the example above. It works less well for penetrations along the edge of the belt where it has "cut sideways" into the structure, because in these situations the escape vector is harder to define.

(2) Sorting out overlapping regions of belt.

This problem is not so much outside vs inside, but rather "in front" vs "behind".

The depenetration algorithms first have to work out which segment should be in front of the other, and they do this by majority voting in the region of interest. Each point is tested to see if it is behind or in front of the other segment of belt, and the segment that has most "in front" points is then required to be in front along the whole of its length, the other being forced to be all behind.

Once this priority has been determined then logic similar to the outside vs inside described above can be used to depenetrate the two segments.

This process is particularly necessary where meshed sliprings are used, since there cannot be any ambiguity about which belt segment is to be on which side of the slipring cylinder. Even if initial depenetration is not used the belt near these sliprings is still processed through the majority voting scheme described above in order to resolve this question.

PRIMER attempts to determine automatically which segment in this situation is "in front" but it doesn't always get it right and the Settings... option below can be used to control this manually.

How to use initial depenetration.

(1) Auto Depen : An initial pass before form-finding 

If Auto Depen is selected then prior to a Fit operation depenetration is applied automatically.


(2) Test Depen Now : Immediate depenetration at any time. 

You can run the depenetration test at any time during path creation and editing by using Test Depen Now . It will leave the path in a modified state, and to restore it to the original shape click on any Fitting Options control which affects its shape, the easiest is the Point Offsets one.


(3) Settings...: Controlling details of auto-depenetration 


The Segment in front method controls how overlapping belt segments are depenetrated:

  • Automatic uses a majority voting method based on the normals of nearby segments. It is reasonably accurate but it can be fooled if the overall belt shape is a long way from the conventional "rubber band round an egg" shape.

  • Higher point behind lower states that a belt segment with lower numbered path points, ie one defined first, will lie in front of a segment with higher numbered path points, ie one defined later. For a conventional 3 point belt meshed in the order B-Post, shoulder, pelvis, fixed point at base of seat this means that the torso belt segment will lie in front of the lap segment, which is how a belt fits naturally.

  • Lower point behind higher is the opposite. So it would be correct for a conventional 3-point belt where the path starts at the base fixed point and works its way up the dummy to the shoulder.

  • Do not depen belt to belt turns off belt-to-belt depenetration for initial depenetration only, it does not affect whether or not belt-to-belt contact is considered during the actual fitting process, which is controlled by Depenetrate belt to belt above.

Max #iterations : Depenetration is an iterative operation that makes multiple passes down the belt. If it is going to work it usually does so in 2 or possibly 3 passes, if it takes longer than that it is probably busy failing (see below). You can halt the process at any time with the general Stop button, so restricting the number of passes is really just an upper-bound limit on how long the process will take if you do not intervene manually.

How and why automatic depenetration fails, and what to do about it.

The process is not always successful: try using it and you will find that it sometimes "blows up". This is because it not only has to use logic similar to contact algorithms but it also has to try to work out how a point should be depenetrated. If it chooses the wrong escape vector things rapidly get out of shape and beyond recovery.

The process is iterative and monitors its own progress, so when it finds that a point on the belt is being moved by a ridiculous amount it gives up and reports failure. You will then see a message something like this:

To demonstrate this here is an example which fails. In the left hand image below the belt path around the chest has been twisted so that it intersects the pelvis section at a ridiculous angle, giving the "edge penetration" problem described above that the depenetration algorithms find hard. The right hand image shows what happens, and generated the message above.

A really difficult depenetration problem of serious belt overlap and intersection. This is a deliberately contrived example, and is very poor modelling practice!

The result of attempting an automatic depenetration of this: total failure! The belt path has become horribly distorted, and the only solution is to reposition the path points to give a better initial shape.

It is just possible that a horrible geometry like the above may be depenetrated successfully if you override the automatic determination of the "segment in front" method, which is quite likely to come up with the wrong answer when using the default automatic mode in this situation. However don't be too surprised if this doesn't work: a sufficiently poor initial path geometry simply is not going to work.

In conclusion automatic depenetration is still experimental and it is not totally satisfactory. It will resolve minor penetrations and simple belt overlaps, but it will not deal with really poor geometry. There is no substitute for creating a sensible and well-conditioned belt path in the first place!