Man page - eoffset_per_angle(9)
Packages contas this manual
- sim-torch(1)
- latency-plot(1)
- gladevcp(1)
- tool_watch(1)
- enum(9)
- puma560gui(1)
- bitslice(9)
- halmeter(1)
- differential(9)
- hm2_pci(9)
- tpcomp(9)
- schedrmt(1)
- hal_parport(9)
- mdi(1)
- estop_latch(9)
- halscope(1)
- halreport(1)
- 5axisgui(1)
- conv_bit_float(9)
- tool_mmap_read(1)
- joyhandle(9)
- comp(9)
- touchy(1)
- debounce(9)
- ohmic(9)
- linuxcncmkdesktop(1)
- xhc-hb04(1)
- vfs11_vfd(1)
- emccalib(1)
- streamer(9)
- edge(9)
- motion-logger(1)
- gremlin_view(1)
- halshow(1)
- gantrykins(9)
- moveoff_gui(1)
- charge_pump(9)
- wcomp(9)
- corexy_by_hal(9)
- spindle_monitor(9)
- limit1(9)
- eoffset_per_angle(9)
- biquad(9)
- scarakins(9)
- qtvcp(1)
- motion(9)
- watchdog(9)
- linuxcnc_module_helper(1)
- axis(9)
- conv_s32_u32(9)
- max5gui(1)
- sim_home_switch(9)
- bin2gray(9)
- trivkins(9)
- halcmd_twopass(1)
- clarkeinv(9)
- clarke2(9)
- toggle2nist(9)
- tristate_bit(9)
- tof(9)
- latency-test(1)
- filter_kalman(9)
- limit_axis(9)
- thermistor(1)
- mdro(1)
- sphereprobe(9)
- multiswitch(9)
- constant(9)
- mux16(9)
- pyngcgui(1)
- conv_bit_u32(9)
- knob2float(9)
- hm2_eth(9)
- tripodkins(9)
- encoder_ratio(9)
- elbpcom(1)
- lut5(9)
- tooledit(1)
- mux_generic(9)
- inivar(1)
- hal_input(1)
- oneshot(9)
- rotatekins(9)
- hm2_7i43(9)
- qtplasmac_gcode(1)
- conv_u32_float(9)
- pumakins(9)
- melfagui(1)
- flipflop(9)
- ddt(9)
- hostmot2(9)
- histobins(9)
- matrix_kb(9)
- qtplasmac-cfg2prefs(1)
- threads(9)
- clarke3(9)
- io(1)
- plasmac(9)
- pumagui(1)
- scorbot-er-3(1)
- hm2_7i90(9)
- rs274(1)
- conv_u32_s32(9)
- gs2_vfd(1)
- hal-histogram(1)
- xhc_hb04_util(9)
- sample_hold(9)
- simple_tp(9)
- linuxcnc_info(1)
- blend(9)
- scaled_s32_sums(9)
- lincurve(9)
- max31855(9)
- rotarydelta(1)
- linuxcnctop(1)
- millturn(1)
- thc(9)
- shuttle(1)
- spindle(9)
- multiclick(9)
- pmx485(1)
- abs_s32(9)
- ton(9)
- steptest(9)
- gladevcp(9)
- stepgen(9)
- pyui(1)
- sim_matrix_kb(9)
- halsampler(1)
- sampler(9)
- lowpass(9)
- gladevcp_demo(1)
- tristate_float(9)
- update_ini(1)
- near(9)
- linuxcncsvr(1)
- and2(9)
- demux(9)
- opto_ac5(9)
- pentakins(9)
- logic(9)
- select8(9)
- teach-in(1)
- dbounce(9)
- hm2_rpspi(9)
- encoder(9)
- pmx485-test(1)
- mult2(9)
- linuxcnclcd(1)
- tp(9)
- feedcomp(9)
- latency-histogram(1)
- iov2(1)
- pwmgen(9)
- kins(9)
- hexagui(1)
- linuxcncrsh(1)
- limit3(9)
- monitor-xhc-hb04(1)
- linuxcnc(1)
- millturn(9)
- axistest(9)
- gantry(9)
- qtplasmac-materials(1)
- image-to-gcode(1)
- hbmgui(1)
- gmoccapy(1)
- sim_pin(1)
- thcud(9)
- or2(9)
- conv_float_s32(9)
- timedelay(9)
- sum2(9)
- xyzab-tdr-gui(1)
- xhc-whb04b-6(1)
- sim_parport(9)
- setup_designer(1)
- pid(9)
- weighted_sum(9)
- ilowpass(9)
- mesa_7i65(9)
- counter(9)
- message(9)
- wj200_vfd(1)
- serport(9)
- scale(9)
- threadtest(9)
- mux4(9)
- xyzbc-trt-gui(1)
- pyvcp_demo(1)
- mux8(9)
- userkins(9)
- siggen(9)
- qtplasmac-plasmac2qt(1)
- ngcgui(1)
- pncconf(1)
- setsserial(9)
- xyzac-trt-gui(1)
- offset(9)
- mesa_uart(9)
- bitwise(9)
- conv_bit_s32(9)
- match8(9)
- abs(9)
- minmax(9)
- milltask(1)
- xyzab_tdr_kins(9)
- timedelta(9)
- lineardeltakins(9)
- toggle(9)
- simulate_probe(1)
- hm2_spi(9)
- rtapi_app(1)
- limit2(9)
- conv_s32_float(9)
- halstreamer(1)
- sim_encoder(9)
- updown(9)
- conv_u32_bit(9)
- hal_bb_gpio(9)
- hy_gt_vfd(1)
- halui(1)
- xhc-hb04-accels(1)
- pyvcp(1)
- axis(1)
- integ(9)
- halrmt(1)
- sserial(9)
- qtplasmac-setup(1)
- time(9)
- latencybins(9)
- mitsub_vfd(1)
- haltcl(1)
- vfdb_vfd(1)
- at_pid(9)
- classicladder(9)
- mb2hal(1)
- bldc(9)
- modcompile(1)
- panelui(1)
- mqtt-publisher(1)
- axis-remote(1)
- sim_axis_hardware(9)
- svd-ps_vfd(1)
- gentrivkins(9)
- conv_s32_bit(9)
- maj3(9)
- hm2_spix(9)
- lcd(9)
- orient(9)
- debuglevel(1)
- stepconf(1)
- conv_float_u32(9)
- supply(9)
- deadzone(9)
- anglejog(9)
- halcmd(1)
- moveoff(9)
- pi500_vfd(1)
- homecomp(9)
- maxkins(9)
- div2(9)
- scaragui(1)
- hal_manualtoolchange(1)
- mux2(9)
- halrun(1)
- genserkins(9)
- gearchange(9)
- sim_spindle(9)
- genhexkins(9)
- linuxcnc_var(1)
- carousel(9)
- gscreen(1)
- mesa_pktgyro_test(9)
- hypot(9)
- maho600gui(1)
- xor2(9)
- rosekins(9)
- iocontrol(1)
- invert(9)
- sendkeys(1)
- lineardelta(1)
- not(9)
- hy_vfd(1)
- gray2bin(9)
apt-get install linuxcnc-uspace
Manual
| EOFFSET_PER_ANGLE(9) | HAL Component | EOFFSET_PER_ANGLE(9) |
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
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
| 2025-12-31 | LinuxCNC Documentation |