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()

ChVector3d chrono::ChLineCamTranslatingInline::EvaluateCam ( double  U,
double &  theta,
double &  rho 
) const
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