Model ElementCvcv defines higher pair constraint.
Description
The constraint consists of a 3D curve fixed on one body rolling and
sliding on a 3D curve fixed on a second body. The curves are
required to have a unique point of contact and a common tangent at
that point of contact. Moreover the curves are required to be
co-planar, i.e. they must exist in parallel planes.
Attribute Summary
| Name |
Property |
Modifiable by command? |
Designable? |
| id |
Int () |
|
|
| label |
Str () |
|
|
| icurve |
Reference
("Curve") |
|
Yes |
| irm |
Reference
("Marker") |
|
Yes |
| idisp |
Double ([0,0,0],
count=3) |
|
FD Only |
| ivel |
Double () |
|
FD Only |
| jcurve |
Reference
("Curve") |
|
Yes |
| jrm |
Reference
("Marker") |
|
Yes |
| jdisp |
Double ([0,0,0],
count=3) |
|
FD Only |
| jvel |
Double () |
|
FD Only |
| no_slip |
Bool () |
|
|
| active |
Bool () |
Yes |
|
Usage
Cvcv (icurve=objCurve, irm=objMarker, jcurve=objCurve, jrm=objMarker, optional_attributes)
Attributes
- icurve
- Reference to an existing Curve object
- Specifies the first curve in the CVCV
object.
- This attribute is mandatory.
- irm
- Reference to an existing Marker object
- Specifies a fixed marker that defines the coordinate
system in which the icurve points
are defined. It also implicitly defines the body on
which the curve is "etched". The curve moves with
the body.
- This attribute is mandatory.
- jcurve
- Reference to an existing Marker object
- Specifies the second curve in the
CVCV object.
- This attribute is mandatory.
- jrm
- Reference to an existing Marker object
- Specifies a fixed marker that defines the coordinate
system in which the jcurve points
are defined. It also implicitly defines the body on
which the curve is "etched". The curve moves with
the body.
- This attribute is mandatory.
Note: irm ≠
jrm
- id
- Integer
- Specifies the element identification number. This number
must be unique among all the CVCV
objects in the model.
- This attribute is optional. MotionSolve will automatically
create an ID when one is not specified.
- Range of values: id > 0
- label
- String
- Specifies the name of the CVCV
object.
- This attribute is optional. When not specified, MotionSolve will create a label
for you.
- idisp
- List of 3 doubles
- Specifies the coordinates of initial point of contact on
the first curve with respect to
irm. An initial guess for the
point of contact of the two curves is usually
helpful even though MotionSolve does an initial
search to exactly locate the contact point.
- This attribute is optional.
- ivel
- Double
- Specifies the sliding velocity of the contact point. An
observer attached to the origin of IRM measures this
velocity. The default value for IVEL is 0.0. When
omitted, MotionSolve may
change this value to satisfy system
constraints.
- This attribute is optional.
- jdisp
- List of 3 doubles
- Specifies the coordinates of initial point of contact on
the second curve with respect to
jrm. An initial guess for the
point of contact of the two curves is usually
helpful even though MotionSolve does an initial
search to exactly locate the contact point.
- This attribute is optional.
- jvel
- Double
- Specifies the initial sliding velocity of the contact
point. An observer attached to the origin of JRM
measures this velocity. The default value for JVEL
is 0.0. When omitted, MotionSolve may change this
value to satisfy system constraints.
- This attribute is optional.
- no_slip
- Indicates if slipping is allowed along the curve
- active
- Bool
- Select one from TRUE or FALSE.
- TRUE indicates that the element is active in the
model and it affects the behavior of the
system
- FALSE indicates that the element is inactive in the
model and it does not affect the behavior of the
system. It is almost as if the entity was removed
from the model, of course with the exception that
can be turned "ON" when desirable.
- The attribute active is optional.
When not specified, active
defaults to TRUE.
Example
- A CVCV defined with a minimal amount of
input.
m1 = Marker (label="m1", body=p1, qp=[1.414, 3.142, +1.618], zp=[1.327, 3.142, 2.545])
m2 = Marker (label="m2", body=p2, qp=[5.577, 3.142, -8.531], zp=[2.828, 6.284, 3.236])
c1 = Curve (closed=True, curve_points=True, matrix=mat1)
c2 = Curve (closed=True, curve_points=True, matrix=mat2)
cvcv = Cvcv (icurve=c1, irm=m1, jcurve=c2, jrm=m2)
- A CVCV with an initial contact point
defined.
m1 = Marker (label="m1", body=p1, qp=[1.414, 3.142, +1.618], zp=[1.327, 3.142, 2.545],rm=0)
m2 = Marker (label="m2", body=p2, qp=[5.577, 3.142, -8.531], zp=[2.828, 6.284, 3.236],rm=0)
c1 = Curve (closed=True, curve_points=True, matrix=mat1)
c2 = Curve (closed=True, curve_points=True, matrix=mat2)
cp1 = Point (11.13, -8.45, 6.67)
cp2 = Point (7.97, 3.92, -10.80)
cvcv = Cvcv (icurve=c1, irm=m1, idisp=cp1, jcurve=c2, jrm=m2, jdisp=cp2)
Comments
-
See Properties for an explanation about what
properties are, why they are used, and how you can extend these.
-
For a more detailed explanation about CVCV, see Constraint: CVCV