Provided by: linuxcnc-uspace_2.9.0~pre0+git20220402.2500863908-4build1_amd64 bug

NAME

       eoffset_per_angle - Compute External Offset Per Angle

SYNOPSIS

       loadrt eoffset_per_angle [count=N|names=name1[,name2...]]

DESCRIPTION

       An  offset is computed (from one of several functions) based on an input angle in degrees.
       The angle could be a rotary coordinate value or a spindle angle.

       The computed offset is represented as an s32 kcounts output pin that is a compatible input
       to  external  offset  pins  like  axis.L.eoffset-counts  where L is the coordinate letter.
       Scaling of the s32 kcounts is controlled by the input  (k)  --  its  reciprocal  value  is
       presented  on  an  output  pin  (kreciprocal) for connection to axis.L.eoffset-scale.  The
       default value for k should be suitable for most uses.

       The built-in functions use pins fmult and rfraction to control the  output  frequency  (or
       number  of  polygon  sides)  and  amplitude respectively.  The  rfraction pin controls the
       offset amplitude as a fraction of the radius-ref pin.

       One of the four built-in functions is specified by the fnum pin:
         0: f0 inside  polygon  (requires fmult == nsides >= 3)
         1: f1 outside polygon  (requires fmult == nsides >= 3)
         2: f2 sinusoid
         3: f3 square wave

       Unsupported fnum values default to use function f0.

       NOTES:

       radius-ref: The computed offsets are based on the radius-ref pin value.  This pin  may  be
       set  to  a  constant  radius  value or controlled by a user interface or by g code program
       (using M68 and a motion.analog-out-NN pin for instance).

       Stopping: When the enable-in pin is deasserted, the offset is returned to zero  respecting
       the  allocated  acceleration  and  velocity  limits.  The allocations for coordinate L are
       typically controlled by an ini file setting: [AXIS_L]OFFSET_AV_RATIO.

       NOTES: If unsupported parameters are supplied to a function (for instance a  polygon  with
       fewer  than three sides), the current offset will be returned to zero (respecting velocity
       and acceleration constraints).  After correcting the offending  parameter,  the  enable-in
       pin must be toggled to resume offset computations.

       EXAMPLE:      An      example     simulation     configuration     is     provided     at:
       configs/sim/axis/external_offsets/opa.ini.  A simulated XZC machine uses the C  coordinate
       angle to offset the transverse X coordinate according to the selected fnum function.

FUNCTIONS

       eoffset-per-angle.N (requires a floating-point thread)

PINS

       eoffset-per-angle.N.active bit in (default: 0)
              From: motion.eoffset-active

       eoffset-per-angle.N.is-on bit in (default: 0)
              From: halui.machine.is-on

       eoffset-per-angle.N.enable-in bit in (default: 0)
              Enable Input

       eoffset-per-angle.N.radius-ref float in (default: 1)
              Radius reference (see notes)

       eoffset-per-angle.N.angle float in (default: 0)
              Input angle (in degrees)

       eoffset-per-angle.N.start-angle float in (default: 0)
              Start angle (in degrees)

       eoffset-per-angle.N.fnum s32 in (default: 0)
              Function selector (default 0)

       eoffset-per-angle.N.rfraction float in (default: 0.1)
              Offset amplitude (+/- fraction of radius_ref)

       eoffset-per-angle.N.fmult float in (default: 6)
              Offset frequency multiplier

       eoffset-per-angle.N.k u32 in (default: 10000)
              Scaling Factor (if 0, use 10000)

       eoffset-per-angle.N.is-off bit out
              invert is_on (for convenience)

       eoffset-per-angle.N.enable-out bit out
              To: axis.L.eoffset-enable

       eoffset-per-angle.N.clear bit out
              To: axis.L.eoffset-clear

       eoffset-per-angle.N.kcounts s32 out
              To: axis.L.eoffset-counts

       eoffset-per-angle.N.kreciprocal float out
              To: axis.L.eoffset-scale (1/k)

       eoffset-per-angle.N.eoffset-dbg float out
              offset (debug pin--use kcounts & kreciprocal)

       eoffset-per-angle.N.state-dbg u32 out
              state  (debug pin)

LICENSE

       GPL