Provided by: linuxcnc-uspace_2.9.4-2ubuntu1_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.

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)

EXAMPLES

       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.

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.

       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.

AUTHOR

       Dewey Garrett

LICENSE

       GPL

LinuxCNC Documentation                             2025-06-19                               EOFFSET_PER_ANGLE(9)