*DeformableCurve()
Creates a three-dimensional deformable curve entity.
Syntax
*DeformableCurve(defcrv_name,"defcrv_label", NATURAL|PARABOLIC|PERIODIC|CANTILEVER, [lambda_left_end], NATURAL|PARABOLIC|PERIODIC|CANTILEVER, [lambda_right_end], numrows MarkerorBody,Point, MarkerorBody,Point, MarkerorBody,Point ...) *Set(defcrv_name.uspan,valu)
Arguments
- defcrv_name
- The variable name of the deformable curve.
- defcrv_label
- The label of the deformable curve.
- NATURAL|PARABOLIC| PERIODIC|CANTILEVER
- The type of end condition. There is one for each end of the curve.
- lambda_left_end lambda_right_end
- This is required only in the case of CANTILEVER curve end, and describes the condition for the CUBIC spline interpolation.
- numrows
- Number of markers or body/point sets.
- Marker or Body,Point
- The ordered list of markers (or body, point sets) that form the curve in 3D space. The markers (or body, point sets) can belong to the same body or different bodies, including flexible bodies.
- uspan
- The span of the curve.
Example
*BeginMDL(the_model, "The Model")
*Point(p_1, "Point 1")
*Point(p_2, "Point 2")
*Point(p_3, "Point 3")
*Point(p_4, "Point 4")
*Point(p_5, "Point 5")
*DeformableCurve(defcrv_0, "DeformableCurve 0", NATURAL, NATURAL, 5,
m_0, m_1, m_2, m_3, m_4)
*Marker(m_0, "Marker 0", b_1, p_1)
*Marker(m_1, "Marker 1", b_1, p_2)
*Marker(m_2, "Marker 2", b_1, p_3)
*Marker(m_3, "Marker 3", b_1, p_4)
*Marker(m_4, "Marker 4", b_1, p_5)
*Body(b_1, "Body 1")
*Body(b_0, "Body 0")
*PointToDeformableCurveJoint(aj_0, "Advanced Joint 0", B_Ground, p_10,
defcrv_0)
*Point(p_10, "Point 0")
*Set(defcrv_0.uspan, 1.5)
*SetPoint(p_1, 50, 10, 10)
*SetPoint(p_2, 100, 10, 10)
*SetPoint(p_3, 150, 10, 10)
*SetPoint(p_4, 200, 10, 10)
*SetPoint(p_5, 250, 10, 10)
*SetPoint(p_10, 100, 100, 100)
*EndMDL()
Context
Properties
Property | Returns Data Type | Description |
---|---|---|
end_type_left | option | The type of end description for one end of the curve. |
end_type_right | option | The type of end description for the other end of the curve. |
id | integer | The solver id for the entity. |
idstring | string | The solver id for the entity in string data form. |
label | string | The descriptive name of the entity. |
lamda_left | real | The condition for the CUBIC spline interpolation for one end of the curve. |
lamda_right | real | The condition for the CUBIC spline interpolation for the other end of the curve. |
note | string | The detailed notes and description about the entity. |
state | boolean | Set to zero for the entity to be inactive, or set to one for the entity to be active. |
varname | string | The unique variable name of the entity. |
Comments
The deformable curve can be used with the *PointToDeformableCurveJoint() statement, where a point will be constrained to stay on the curve, even with the curve changing shape due to the relocation of the points/markers that define the curve.