Point-On-STLSurface

Hello everyone,

I am a new Anybody user and I aim to define a constraint of the position of a point and STL surface (The point is on this STL surface or there are specified distances between the point and STL surface at different times).

However, in AnyScript, I just found ‘AnyKinPointSurface’ kinematic measure which can only use parametric surfaces as surface objects instead of STL surfaces.

Could you please let me know how can I do it and in addition, how to define a constraint condition between two STL surfaces(One surface slides along with the other).

I will be so grateful to help me, Thank you!

Best regards,

Jun

Hi Jun,

It is not possible to create a kinematic constraint between a point and an STL surface. As you have found you can have a point (or several points ) against a parametric surface or a plane.

STL / STL contact is not possible as a kinematic constraint but you can create a AnyForceSurfaceContact object which will create a contact force if the surfaces are penetrating. This object is often used in combination with force dependent kinematics.
Tutorial on FDK

Best regards
Søren

Hi Soren,

My model doesn't include muscles and just calculates kinematics currently.

I'll try to add some simple muscles first, then use Anyforcesurfacecontact object in combination with Force Dependent Kinematics and finally set a very high PressureModule to simulate Point-On-STLSurface kinematic constraints.

Thank you very much for your detailed reply.

Best Regards,

Jun

Hi Jun,

For force dependent kinematics the elastic properties are very important. For the DOF which are controlled by FDK you need to have elastic forces realistic defined, some of these will be the surface contact.

What are you trying to model?

Best regards
Søren

Hi Søren,

Thank you very much for your patience.

I want to analyze the effect of the Temporomandibular joint surface geometry on the mandible kinematics.
The skull of my model is fixed. The movement of one point of the mandible is input, the condyle and fossa of both sides are always contacted as constraints, and the final goal is to find out the movement of the whole mandible.

I've considered using ADAMS for kinematic analysis and then importing the movement into AnyBody for inverse dynamic analysis. At present, I am trying to study Anderson's FDK TMJ model.

Best regards,

Jun

1 Like

Hi Jun,

I think the best option is the FDK model by Anderson. It will account for muscle, ligament and contact forces in combination.

Best regards
Søren

Hi Søren,

Thank you for your reply!

Is it possible to create a kinematic constraint of a point (or several points ) on compound surfaces (consisting of two parametric surfaces and a plane) using ‘AnyKinPointSurface’ object?

Best Regards,

Jun

Hi Jun,

The AnyPointSurface measure has a norm switch so it can give you distance to surface from all nodes or the norm distance which is essentially the min distance (depending on settings)

Combining such two measures using a AnyKinMeasureNormComb object into one constraint is possible but requires some tweaking on the settings of the this measure..

Alternatively if you run the model with over-constrained kinematics each of the AnyPointSurface measures could be constrained not to go below zero. So in this way you could have e.g. two ellipsoids against a plane.

Best regards
Søren

Hi Søren,

Thank you very much for your prompt and detailed reply, It is so helpful for my research.
At present, I'm trying to use AnyKinMeasureNormComb object to combine three measures and my code is as follows:

//AnyKinEq PointOnCompoundSurfaces ={
AnyKinMeasureNormComb constraint = {
Order = 35;
Offset = 0.06;
AnyKinMeasureOrg Sur1={ AnyKinLinear &ref =Main.Model.Joints.PointOnPlane_R; MeasureOrganizer={1};};
AnyKinMeasureOrg Sur2 ={AnyKinPointSurface&MT2 = Main.Model.Joints. PointOnCylinder; MeasureOrganizer={0}; };
AnyKinMeasureOrg Sur3 = {AnyKinPointSurface&MT3 = Main.Model.Joints. PointOnSphere; MeasureOrganizer={0}; };
};
//};
AnyKinEqSimpleDriver PointOnCompoundSurfaces = {
AnyKinMeasureNormComb &Distance = Main.Model.Joints.constraint;
MeasureOrganizer = {0};
DriverPos = {0};
DriverVel = {0};
DriverAcc = {0};
Reaction.Type = {Off};
};

However, ANYBODY displays ‘kinetic analysis failed in time step0’. I wonder if this is because the second surface I defined is too far away from the third surface.

In addition, which object can constrain the measures not to go below zero as you mentioned. Is there an example here?

Best Regards,
Jun

This topic was automatically closed 125 days after the last reply. New replies are no longer allowed.