chrono::ChLineCamTranslatingInline Class Reference
Description
Class to represent the profile of a cam with a translating follower (roller or knife), inline with cam origin.
#include <ChLineCam.h>
Inheritance diagram for chrono::ChLineCamTranslatingInline:

Collaboration diagram for chrono::ChLineCamTranslatingInline:

Public Member Functions | |
| ChLineCamTranslatingInline (double cam_base_rad, double follower_rad) | |
| virtual ChLineCamTranslatingInline * | Clone () const override |
| "Virtual" copy constructor (covariant return type). | |
| void | Initialize (double cam_base_rad, double follower_rad) |
| Initialize data for the translating offset roller/knife follower case. More... | |
| ChVector3d | EvaluateCam (double U, double &theta, double &rho) const |
| Return a point on cam profile corresponding to parametric coordinate U in [0, 1]. More... | |
| virtual void | ArchiveOut (ChArchiveOut &archive_out) override |
| Method to allow serialization of transient data to archives. | |
| virtual void | ArchiveIn (ChArchiveIn &archive_in) override |
| Method to allow de-serialization of transient data from archives. | |
Public Member Functions inherited from chrono::ChLineCam | |
| ChLineCam (const ChLineCam &source) | |
| virtual Type | GetType () const override |
| Get the line class type as an enum. | |
| virtual void | SetClosed (bool state) override |
| Assume the cam as closed by definition. | |
| virtual bool | IsClosed () const override |
| Get if the curve is closed. | |
| TypeFollower | GetFollowerType () const |
| Get follower type. | |
| void | SetOrigin (const ChVector2d &pt) |
| Set position of cam origin in XY plane. | |
| const ChVector2d & | GetOrigin () const |
| Get position of cam origin in XY plane. | |
| double | GetBaseRadius () const |
| Get cam base radius. More... | |
| void | SetPhase (double ang) |
| Set cam phase in [0, 2PI]. | |
| double | GetPhase () const |
| Get cam phase in [0, 2PI]. | |
| void | SetMotionLaw (std::shared_ptr< ChFunction > motion_law) |
| Set motion law produced by cam, as function of angle in [0, 2PI]. | |
| std::shared_ptr< ChFunction > | GetMotionLaw () const |
| Get motion law produced by cam, as function of angle in [0, 2PI]. | |
| void | SetNegative (bool val) |
| If true, create a negative cam. | |
| bool | IsNegative () const |
| Check if the cam is negative (true) or not (false). | |
| void | SetInternal (bool val) |
| If true, create an internal cam. | |
| bool | IsInternal () const |
| Check if cam is internal (true) or not (false). | |
| virtual ChVector3d | Evaluate (double U) const override |
| Return a point on cam profile corresponding to parametric coordinate U in [0, 1]. | |
| double | GetWeight (double U) const |
| Weight evaluation at U in [0, 1]. More... | |
Public Member Functions inherited from chrono::ChLine | |
| ChLine (const ChLine &source) | |
| virtual ChVector3d | GetTangent (double parU) const |
| Return the tangent unit vector at the parametric coordinate U (in [0,1]). More... | |
| virtual int | GetComplexity () const |
| Get the complexity. | |
| virtual void | SetComplexity (int mc) |
| virtual int | GetManifoldDimension () const override |
| Return dimensionality of this object. More... | |
| bool | FindNearestLinePoint (const ChVector3d &point, double &resU, double approxU, double tol) const |
| Find the parameter resU for the nearest point on curve to "point". | |
| virtual double | Length (int sampling) const |
| Returns curve length. Typical sampling 1..5 (1 already gives correct result with degree1 curves). | |
| virtual ChVector3d | GetEndA () const |
| Return the start point of the line. More... | |
| virtual ChVector3d | GetEndB () const |
| Return the end point of the line. More... | |
| double | CurveCurveDist (const ChLine *compline, int samples) const |
| Return adimensional information on "how much" this curve is similar to another in its overall shape. More... | |
| double | CurveSegmentDist (const ChLine *complinesegm, int samples) const |
| Same as before, but returns "how near" is complinesegm to whatever segment of this line (does not matter the percentual of line). More... | |
| double | CurveCurveDistMax (const ChLine *compline, int samples) const |
| Same as above, but instead of making average of the distances, these functions return the maximum of the distances. | |
| double | CurveSegmentDistMax (const ChLine *complinesegm, int samples) const |
Public Member Functions inherited from chrono::ChGeometry | |
| ChGeometry (const ChGeometry &other) | |
| virtual ChAABB | GetBoundingBox () const |
| Compute bounding box along the directions of the shape definition frame. More... | |
| void | InflateBoundingBox (ChAABB &bbox) const |
| Enlarge the given existing bounding box with the bounding box of this object. | |
| virtual double | GetBoundingSphereRadius () const |
| Returns the radius of a bounding sphere for this geometry. More... | |
| virtual ChVector3d | Barycenter () const |
| Compute center of mass. | |
| virtual void | Update () |
| Generic update of internal data. | |
Additional Inherited Members | |
Public Types inherited from chrono::ChLineCam | |
| enum | TypeFollower { TypeFollower::TRANSLATING_INLINE, TypeFollower::TRANSLATING_OFFSET, TypeFollower::TRANSLATING_FLAT, TypeFollower::OSCILLATING_ROLLER, TypeFollower::OSCILLATING_FLAT } |
| Follower types. More... | |
Public Types inherited from chrono::ChGeometry | |
| enum | Type { NONE, SPHERE, ELLIPSOID, BOX, CYLINDER, TRIANGLE, CAPSULE, CONE, LINE, LINE_ARC, LINE_BEZIER, LINE_CAM, LINE_PATH, LINE_POLY, LINE_SEGMENT, ROUNDED_BOX, ROUNDED_CYLINDER, TRIANGLEMESH, TRIANGLEMESH_CONNECTED, TRIANGLEMESH_SOUP } |
| Enumeration of geometric object types. | |
Protected Member Functions inherited from chrono::ChLineCam | |
| ChVector3d | CalcProfilePoint (double r, double phi) const |
Protected Attributes inherited from chrono::ChLineCam | |
| TypeFollower | type = TypeFollower::TRANSLATING_INLINE |
| type of cam | |
| ChVector2d | origin |
| cam origin in XY plane | |
| std::shared_ptr< ChFunction > | motlaw |
| follower motion law as function of angle in [0, 2PI] | |
| double | phase = 0 |
| cam phase (rotation) in [0, 2PI]; default=0, neutral position | |
| double | Rb = 0 |
| cam base radius | |
| bool | negative = false |
| negative cam: for desmodromic applications (cam is also Y or X mirrored, depending on type) | |
| bool | internal = false |
| follower roller is inside the cam | |
Protected Attributes inherited from chrono::ChLine | |
| bool | closed |
| int | complexityU |
Member Function Documentation
◆ EvaluateCam()
|
virtual |
Return a point on cam profile corresponding to parametric coordinate U in [0, 1].
Additionally return pressure angle theta and curvature radius rho in U.
Implements chrono::ChLineCam.
◆ Initialize()
| void chrono::ChLineCamTranslatingInline::Initialize | ( | double | cam_base_rad, |
| double | follower_rad | ||
| ) |
Initialize data for the translating offset roller/knife follower case.
Provide cam base radius, follower roller radius (if zero, assume no roller), and the offset between the follower translation axis and cam origin.
The documentation for this class was generated from the following files:
- /builds/uwsbel/chrono/src/chrono/geometry/ChLineCam.h
- /builds/uwsbel/chrono/src/chrono/geometry/ChLineCam.cpp
Public Member Functions inherited from