MotionContact (hwx.inspire.motion)

Creates an object that generates a contact force between a collection of parts.

Typical use cases include latches, cams, and other parts that have persistent or intermittent contact behavior including friction effects.

Inherits:

Attributes

active: Bool collisionType: Enum computedAtType: Enum
damping: Double enableFriction: Bool exponent: Double
frictionTransitionVelocity: Double frictionType: Enum keepForceResults: Enum
layerDepth: Double measureClearance: Bool muDynamic: Double
muStatic: Double name: Attribute newStepSize: Double
normalVelocity: Double parts: Attribute parts1: Attribute
parts2: Attribute penalty: Double penetrationDepth: Double
preciseContactEvent: Bool refineStepSize: Bool restitutionCoefficient: Double
stictionTransitionVelocity: Double stiffness: Double tolerance: Double
visible: Bool writePlantSignals: Bool  

Properties

Public Methods

classmethod areFeaturesContacted (cls, part1, part2)
classmethod arePartsContacted (cls, part1, part2)
classmethod getIntersections (cls, visibleOnly=True)
classmethod hideContacts (cls)
classmethod isValidPart (cls, part)
classmethod showContacts (cls, on=True)
getContactingPartPairs (self)
getIntersectingParts (self)

Attribute Details

active : Bool

Returns or sets the object activeness.

Setting this on or off sets all children. Setting to True sets all the parents active too.

collisionType : Enum (IMPACT, POISSON, VOLUME)

Type of collision upon contact between entities.

Collision type can be Impact, Poisson and Volume.

computedAtType : Enum (NODE, ELEMENT)

Specifies how the contact force will be computed.

When parts come into contact, the contact normal force is applied at the element center, then the force computation type should be selected Element Center. If the parts come into contact, the contact normal force is applied at the nodes of the element, then force computation type should be selected Nodes.

damping : Double (units=”damping”)

Specifies the maximum damping coefficient.

It defaults to 100 N*s/m and this property is specifiable when the contact collision is of type Impact or Volume.

enableFriction : Bool

If True, enables friction between entities.

exponent : Double

The exponent of the force deformation characteristic.

This value is used to generate the stiffness. It defaults to 2.1 and this property is specifiable when the contact collision type is Impact or Volume.

frictionTransitionVelocity : Double (units=”velocity”)

The velocity at which transition occurs between a stationary entity and a moving entity.

This property is specifiable when friction is enabled.

frictionType : Enum (ON, DYNAMIC_ONLY)

Specifies the type of friction upon contact.

Type of friction can be Static and Dynamic or Dynamic only. This property is specifiable when friction is enabled.

keepForceResults : Enum (default, all, region, none)

This allows to limit the number of contact forces that are stored in the model after Motion Analysis.

They can be Default, All, Region Only, or None

layerDepth : Double (units=”length”)

The layer depth of material.

This is used to calculate the contact stiffness and it defaults to 1 m. This property is specifiable when the contact collision is of type Volume.

measureClearance : Bool

If True, allows proximity between parts to be computed.

This will provide additional outputs during Motion Analysis, which is used
in plotting.

muDynamic : Double

The dynamic coefficient of friction, which the body experiences while in motion.

This property is specifiable when friction is enabled.

muStatic : Double

The static coefficient of friction, which has to be overcome by a body before it can move.

This property is specifiable when friction is enabled.

name : Attribute

Returns or sets the name of the object.

It can be any text string, including spaces, although it’s best to avoid using the following characters: ” ‘ * ? and $.

While these characters are allowed, they could create difficulties when you export the model to other applications.

newStepSize : Double (units=”time”)

Specifies the new step size used by the solver after the contact is detected. Defaults to 0.0005 s.

normalVelocity : Double

Velocity limit after which full damping force is applied.

By default the value is 0.001. This property is specifiable when the contact collision type is Poisson.

parts : Attribute

List of entities used to create the contact.

parts1 : Attribute

The first part or feature entity used to create a contact.

parts2 : Attribute

The second part or feature entity used to create a contact.

penalty : Double (units=”stiffness”)

Determines the local stiffness properties between materials.

Larger values lead to reduced penetration between two bodies. By default penalty value is 5e+06 N/m. This property is specifiable when the contact collision type is Poisson.

penetrationDepth : Double (units=”length”)

The depth beyond which full damping is applied.

It defaults to 0.0001 m and this property is specifiable when the contact collision is of type Impact.

preciseContactEvent : Bool

If True, enables monitoring of the collision of two entities upon contact with greater accuracy.

refineStepSize : Bool

If True, this property along with the value of New Step Size, the solver will use it as the maximum step size for the simulation after the contact is detected.

restitutionCoefficient : Double

The ratio of the final to initial relative velocity between two entities after they collide.

  • 0 for a perfectly plastic collision
  • 1 for a perfectly elastic collision

By default the value is 0.8. This property is specifiable when the contact collision type is Poisson.

stictionTransitionVelocity : Double (units=”velocity”)

The velocity of the entity after overcoming the static friction upon contact.

This property is specifiable when friction is enabled.

stiffness : Double (units=”stiffness”)

The stiffness of the boundary surface interaction. The nonlinear effect of the Exponent parameter will be accounted for automatically. It defaults to 1000 N/m and this property is specifiable when the contact collision is of type Impact.

tolerance : Double

If Precise Contact Event is enabled then the tolerance value represents a band around the current integrator step size, its value is expressed as a percentage of the current integrator step size, defaults to 0.01.

visible : Bool

Determines whether the object is visible in the modeling window.

Setting this on or off sets all children. Setting to True sets all the parents visible too.

writePlantSignals : Bool

Generates a plant input and output signal for the contact, if set to True.

Property Details

location()

Specifies the midpoint of the all the parts center of gravity.

Method Details

classmethod areFeaturesContacted(cls, part1, part2)

Determines if there is a contact between the specified parts.

param part1:First part to determine contact.
type part1:Part, List[Part]
param part2:Second part to determine contact.
type part2:Part, List[Part]
returns:The found contact object.
rtype:MotionContact
classmethod arePartsContacted(cls, part1, part2)

Determines if there is a contact between the specified parts.

param part1:First part to determine contact.
type part1:Part, List[Part]
param part2:Second part to determine contact.
type part2:Part, List[Part]
returns:The found contact object.
rtype:MotionContact
classmethod getIntersections(cls, visibleOnly=True)

Finds the parts of the all contacts that intersect.

param visibleOnly:
 Search only for visible contacts.
type visibleOnly:
 bool
returns:A list of pair of parts that intersect.
rtype:list(tuple(Part))
classmethod hideContacts(cls)

Hides graphics for the contact while in the context.

classmethod isValidPart(cls, part)

Determines if the specified part is valid for creating a motion contact.

param part:Part for which to determine the validity.
type part:Part
returns:True if its a valid part, False otherwise.
rtype:bool
classmethod showContacts(cls, on=True)

Shows graphics for the contact while in the context.

getContactingPartPairs(self)

Returns a generator of pairs (Features or Parts) that are in contact.

getIntersectingParts(self)

Finds the parts of the contact that intersect.

returns:A list of pair of parts that intersect.
rtype:list(tuple(Part))