Contact area and COP

Hi !
I would have a question regarding the output of the AnyForceSurfaceContact function. I use it to compute contact between humeral head and glenoid components of a total shoulder arthroplasty.

The two parameters for which I would have question are the ContactArea and the COP. I understand, after reading the reference manual, that :

  • ContactArea refers to the area of contact between the two surfaces.
  • COP refers to the Center of Pressure in global coordinates frame.

Using a Camera I got the contact area in pictures for each step of my movement. I defined the camera to look at my glenoid surface :

  • the EyePoint is positioned at a node corresponding to the position of the humeral head center and oriented with the same axis than my glenoid axis
  • the LookAtPoint corresponds to the center of my glenoid axis
  • the UpPoint is a point defined on the superior part of my glenoid vertical axis.

My idea was that I would be able to combine the contact area pictures (obtained by my camera) with the COP (drawn with matlab in the glenoid coordinate system). But, of what I saw, the COP is not at the center of my contact area, what I found strange.

My hypothesis is that the COP depends not only on the contact area but also on the forces applied at each vertex of the contact area. Am I right ? If yes, how to get forces (Fc) at each vertex ? Would it be also possible to draw/show an array to picture the direction of the total force (F, applied at the COP) ?

Thank you for your help !
Best regards,

Hi Lauranne,

You are right, the COP depends on the area and also on the amount of force at each contact point.
Unfortunately, you cannot output those individual forcevalues yet. We are currently working on that, but I cannot promise when it’ll be finished.

Hello Amir Thank you for your answer ;
I understand for the picture of vertex forces. However, is it possible to represent the total contact force applied at the cop ?


Hi Lauranne,

please have a look at the “TKA-KneeBendDemo” in Beta of the repository. In there the load is applied in the COP.

code looks like:

AnyDrawLine drwForceMedial = 
  p0 = .COP;
  p1 = p0 + .Fslave / 10000;
  Line = 
    Style = Line3DStyleFull;
    Thickness = 0.001;
    RGB = {0, 0, 0};
    Start = 
      Style = Line3DCapStyleNone;
      RGB = {0, 0, 0};
      Thickness = 0;
      Length = 0;
    End = 
      Style = Line3DCapStyleArrow;
      RGB = {0, 0, 0};
      Thickness = 0.002;
      Length = 0.002;
  Text = "F_contact";
  AnyRefFrame &G = Main.Model.EnvironmentModel.GlobalRef;

hope this is what you need.

This is perfect :slight_smile: ! Thank you !