Surface contact in hip model (FDK)

Hi there! :slight_smile:

I am currently trying to bring 2 STL surfaces into contact which are initially separated (~4mm) by “pushing” them together. Subsequently, I would like to measure the contact force. Therefore I set up a hip model with the following specifications:

  • 2 segments (femur + pelvis) with a STL surface each (head + acetabulum)
  • FDK in 1 DoF
  • 1 external force acting in the FDK direction

The surfaces are initially not in contact. Now I would like to bring the surfaces into contact by “pushing” them together. However, the visual results look faulty and the chart gives me an error message (ERROR(OBJ.CHT1)). What is my mistake? :confused:

The hip joint is defined as:

AnyKinMeasureOrg OrgLin = {
AnyKinMeasureOrg RotOrg = {
CType = {ForceDep,Hard,Hard,Hard,Hard,Hard};
Reaction.Type = {Off,On,On,On,On,On};

The external force is defined as F (global) and acts on the hip joint refnode (femoral segment). There are no muscles, ligaments and masses in the model. Is my definition of F correct and do I need additional forces? I get the following warning “The muscles in the model are not loaded due to kinetically over-constrained mechanical system”.

I appreciate any help.

Best regards!


From the reference manual: “This error is caused by a selection made while defining a data serie for a chart object (AnyChart). This can either happen while loading a model with an AnyChart object declared in the AnyScript™ code, or while making serie selections in the AnyChart View that uses an AnyChart object as a component.” So it does not seem to be analysis related.

The code looks strange, but i think it might be an excerpt rather than the full text. Could you show more? What I am missing is the definition of the contact force through STL surfaces.


Dear Pavel,

thanks for your fast response! Indeed, the piece of code is just an excerpt. However, I created a small example with 2 spheres, which works as desired (despite the model output).

In my case, I used 2 surfaces with slightly concave and convex shapes (Example2.png). If the surfaces are initially separated and if I set the FDK in more than 1 direction (e.g. x,y), the surfaces are not necessarily pushed together by the applied force. Do you have any idea? How do you guess your alpha in FDK? Is there any criteria taking the shortest distance between 2 surfaces into account?

Thanks a lot for your help!

Unfortunately FDK is not a full-blown Forward Dynamics solver. It cannot model the motion of a body in space as a result of the force application. Unless an equilibrium is within some perturbation radius.

So it is a good idea to give a good initial guess on the equilibrium for the solver. For example, let the bodies be in some contact. A way to identify these alphas would be to drive model kinematically and find the point of non-zero penetration (if we are talking about general case ,not idealized like this one).

There is also a factor of STL detail - if you have a rather coarse mesh, you may not see inequalities of the volumes along desired axes. This may give you some out of plane solutions.

Hope this makes sense.

Kind regards,