Hi !
I have a question about how I should proceed to measure the subacromial space. My problem is that the subacromial space is defined by the shortest distance between the acromion and the humerus. Since I want to measure it during abduction, the point of the humerus closest to the acromion varies. Is there a way to do it on Anybody?
Here is an example from Bey et al 2007 of what I am trying to do :
You can use the AnyKinPointSurface class to do that. Please see the reference manual for its description and a demo example.
I encountered a small inconvenience when testing it out. We only have the drawing for the humerus and not the surface object itself. So, this something you will need to create additionally in the model. Please add the following lines to your model:
I have been testing this function but I encounter an issue.
First, I would like to ensure I understand how it works well. The Position float corresponds to the distance between the point to the surface and the r vector to the vector between the point and the intersection between the normal of the surface and the surface itself, in the ref frame associated to the point. Is it correct?
My issue is, that the value between the surface and the point doesnโt make sense (0.022 m instead of 0.01 more or less) and all the values of r are constant. My understanding is that the measure is between the acromion and the centre of the humeral head and not the surface of the humerus.
Would you have an idea about how can I fix this?
According to the reference manual, the distances are measured as the scalar product of the surface normal and the difference vector between point and its projection to the surface (i.e. the closest point on the surface).
I tested the code again, and it seems to work alright on my end. I can see the output from the class change with motion of the humerus and it correctly reflects the distance to the surface of the humerus. I am working with the default stl of the humerus available in AMMR. If you are working with humerus stl from your patient, then it may mean that the surface needs some cleaning up.
I can think of one issue, that the AnyKinPointSurface class is somehow not included in your study. This is one explanation why the value is constant. If it is the case you may want to include those lines inside your model folder in the model tree, and make sure it is picked up in the study. Another thing to check is if your reference point in AnyKinPointSurface is correct. I had picked some point on scapula and it may not be the point you are interested in. This can explain why the distance is larger than what you expect.