Skip to content

Commit

Permalink
Added ZoneData class
Browse files Browse the repository at this point in the history
  • Loading branch information
mkatliar committed Dec 26, 2020
1 parent f0ff994 commit 0aca963
Showing 1 changed file with 90 additions and 0 deletions.
90 changes: 90 additions & 0 deletions include/abb_librws/rws_rapid.h
Original file line number Diff line number Diff line change
Expand Up @@ -963,6 +963,96 @@ struct SpeedData : public RAPIDRecord
RAPIDNum v_reax;
};


/**
* \brief A struct, for representing a RAPID zonedata record.
*/
struct ZoneData : public RAPIDRecord
{
public:
/**
* \brief A default constructor.
*/
ZoneData()
:
RAPIDRecord("zonedata")
{
components_.push_back(&finep);
components_.push_back(&pzone_tcp);
components_.push_back(&pzone_ori);
components_.push_back(&pzone_eax);
components_.push_back(&zone_ori);
components_.push_back(&zone_leax);
components_.push_back(&zone_reax);
}

/**
* \brief Copy constructor.
*
* \param other containing the values to copy.
*/
ZoneData(const ZoneData& other)
: RAPIDRecord(other.record_type_name_)
, finep {other.finep}
, pzone_tcp {other.pzone_tcp}
, pzone_ori {other.pzone_ori}
, pzone_eax {other.pzone_eax}
, zone_ori {other.zone_ori}
, zone_leax {other.zone_leax}
, zone_reax {other.zone_reax}
{
components_.clear();
components_.push_back(&finep);
components_.push_back(&pzone_tcp);
components_.push_back(&pzone_ori);
components_.push_back(&pzone_eax);
components_.push_back(&zone_ori);
components_.push_back(&zone_leax);
components_.push_back(&zone_reax);
}

/**
* \brief Defines whether the movement is to terminate as a stop point (fine point) or as a fly-by point.
*/
RAPIDBool finep;

/**
* \brief The size (the radius) of the TCP zone in mm.
*/
RAPIDNum pzone_tcp;

/**
* \brief The zone size (the radius) for the tool reorientation.
*
* The size is defined as the distance of the TCP from the programmed point in mm.
*/
RAPIDNum pzone_ori;

/**
* \brief The zone size (the radius) for external axes.
*
* The size is defined as the distance of the TCP from the programmed point in mm.
*/
RAPIDNum pzone_eax;

/**
* \brief The zone size for the tool reorientation in degrees.
*
* If the robot is holding the work object, this means an angle of rotation for the work object.
*/
RAPIDNum zone_ori;

/**
* \brief The zone size for linear external axes in mm.
*/
RAPIDNum zone_leax;

/**
* \brief The zone size for rotating external axes in degrees.
*/
RAPIDNum zone_reax;
};

} // end namespace rws
} // end namespace abb

Expand Down

0 comments on commit 0aca963

Please sign in to comment.