-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fixes for issues 68, 164, 167, 546, and 550 #581
base: 2.7
Are you sure you want to change the base?
Fixes for issues 68, 164, 167, 546, and 550 #581
Conversation
…culation. The 2.x target velocity calculation in position-sync mode causes jitter around the target position. This commit replaces the error calculation with a simpler version that better tracks spindle velocity. Other changes: * Rename and refactor to be clearer about scope and purpose * Create a separate header for missing math functions from C math (signum and integer min / max). * Rename the signed spindle position helper function to something more meaningful Signed-off-by: Robert W. Ellenberg <[email protected]>
The original "error velocity" formula was correct if the initial and final velocity was zero. However, during spindle position tracking, the target velocity is non-zero (or it wouldn't be tracking!). This lead to a slight over-correction, and steady-state jitter even with a perfect encoder signal. The new formula accounts for the ideal target velocity, and should therefore over-correct less. This fixes the jitter (in simulation with a perfect encoder, at least). Signed-off-by: Robert W. Ellenberg <[email protected]>
…ating encoders) Signed-off-by: Robert W. Ellenberg <[email protected]>
Signed-off-by: Robert W. Ellenberg <[email protected]>
Signed-off-by: Robert W. Ellenberg <[email protected]>
Signed-off-by: Robert W. Ellenberg <[email protected]>
Signed-off-by: Robert W. Ellenberg <[email protected]>
Since Canon knows the spindle speed for a given segment, it's trival to calculate the nominal feed for a synchronized motion segment (assuming ideal spindle behavior). This nominal velocity is passed to motion so that blend arcs can be sized correctly. Also, report a canon error if the planner can't meet the required feed for spindle synchronization. Signed-off-by: Robert W. Ellenberg <[email protected]>
Fixes issue LinuxCNC#68 by preventing any blending between position-synced motions (G33) and other motion modes (velocity-sync and normal), according to this table. Mode Transitions | blending allowed --------------------+----------------- normal -> position | no position -> normal | yes all others | yes These now cases match 2.6.x behavior, though the blending itself can be done with tangent / arc blends. Signed-off-by: Robert W. Ellenberg <[email protected]>
We know that feed override can't exceed 1.0 during position-sync moves, so it's a waste to plan blend arcs that allow for higher feed overrides. This makes blend arcs a bit smaller in position-synced moves. Signed-off-by: Robert W. Ellenberg <[email protected]>
Previously, the user could command an arbitrarily large spindle speed with G33 / G95 motion, even if the machine axes couldn't keep up. The user has no way of knowing that this is happening (except in extreme cases). This fix does two things: 1) Pop a warning message to the user telling them the maximum spindle speed possible for the current motion. 2) Attempt to limit the spindle speed by issuing a new speed command in the background before the synced motion starts. Note that (2) will have no effect if the machine does not have active spindle speed control. Signed-off-by: Robert W. Ellenberg <[email protected]>
Reduce spam in TP debug logs. Signed-off-by: Robert W. Ellenberg <[email protected]>
Parabolic blends require reduced max acceleration, so that the worst-case blend does not exceed the limits. If a parabolic blend can be "upgraded" to a tangent / arc blend, then we don't need this restriction. Previously, this check occured too early in the process of creating a new segment, which meant some segments ended up with reduced acceleration unnecessarily. Signed-off-by: Robert W. Ellenberg <[email protected]>
Mostly for troubleshooting, doesn't affect end-user performance Signed-off-by: Robert W. Ellenberg <[email protected]>
Instead of just low-pass filtering the measured speed, filter the spindle speed command sent to the simulated spindle. Now, both the position and velocity signals will simulate a spindle with inertia. Signed-off-by: Robert W. Ellenberg <[email protected]>
The spindle-speed-in pin will in many cases be a better estimate of velocity than the internal estimate we currently use in the TP. Encoder counters can have much finer time resolution than the servo thread, leading to smoother velocity estimates. One benefit is that the "sync_accel" phase actually works now. With a low-count encoder, the estimated velocity could sometimes be zero if there were no counts within one servo timestep (sam's test case shows this). Then, sync_accel ends early, and the position tracker is left with a large error to correct. Signed-off-by: Robert W. Ellenberg <[email protected]>
Like the PID component, motion can now estimate spindle velocity if the spindle-speed-in pin is left unconnected. motion computes a simple 2-point backward difference, which is usable at high speeds and with high PPR encoders. Thanks to Peter Wallace for this suggestion (and Jeff Epler for the original idea in pid.c). Signed-off-by: Robert W. Ellenberg <[email protected]>
Now, all spindle command settings are collected into one status struct. Similarly, spindle feedback statuses (position, velocity, etc.) are collected into a single struct. Note that this change is internal to motion. HAL pin names and externally-facing status fields should be unaffected. Signed-off-by: Robert W. Ellenberg <[email protected]>
Rigid tapping used to estimate spindle position both from the measured spindle revs, and the commanded direction. This approach is numerically dangerous, however, because the spindle position itself could be large. Therefore, flipping the sign on the position would cause an apparent jump. The previous approach to rigid tapping accounted for this. However, this new approach should be cleaner and simpler. Signed-off-by: Robert W. Ellenberg <[email protected]>
…ata. Signed-off-by: Robert W. Ellenberg <[email protected]>
Signed-off-by: Robert W. Ellenberg <[email protected]>
Signed-off-by: Robert W. Ellenberg <[email protected]>
Signed-off-by: Robert W. Ellenberg <[email protected]>
Signed-off-by: Robert W. Ellenberg <[email protected]>
…osition tracking should be. Currently, we correct position errors in spindle-sync as aggressively as possible, given machine acceleration limits. This new HAL pin lets the user control how aggressive it should be. The valid range is [0.0,1.0], where 0.0 means no position tracking (pure velocity). 1.0 is equivalent to 2.x position tracking. In some cases, reducing the gain will greatly shrink the acceleration jitter, without appreciably affecting position tracking performance. Signed-off-by: Robert W. Ellenberg <[email protected]>
Signed-off-by: Robert W. Ellenberg <[email protected]>
This commit adds a new spindle tracking algorithm based on the trapezoidal motion profile. Particularly for high resolution encoders, this algorithm should have significantly reduced acceleration jitter. This also adds a (probably temporary) pin to HAL: motion.pos-tracking-mode: 0 (default) = new spindle tracking algorithm based on trapezoidal velocity calcs 1 = 2.7.x stock algorithm 2 = 2.7.x algorithm with a correction (here for completeness, but doesn't offer much over the trapezoidal method) Signed-off-by: Robert W. Ellenberg <[email protected]>
Signed-off-by: Robert W. Ellenberg <[email protected]>
…hed motion. Feed / speed synch is always disabled after a synced segment (even if it's then re-enabled for the next one). Unfortunately, this means that limiting spindle RPM, and then restoring it, has the effect of inserting two spindle speed commands between each segment of synched motion. This completely disrupts blending, and affects the acceleration used during the motion (potentially affecting threading performance). A safer and easier approach is to pop up a nuisance message to the user informing them that the spindle speed will be limited, and then just leave it at the limited speed. Generally, the user will set a new spindle speed for the next operation anyway. Signed-off-by: Robert W. Ellenberg <[email protected]>
Signed-off-by: Robert W. Ellenberg <[email protected]>
When an arc is 360 degrees, the endpoint and the starting point are the same. Naively calculating the XYZ movement using only the difference between the endpoints overlooks XYZ motion. When such a move is combined with a rotary axis movement, the resulting feed rate will be incorrect. This patch fixes the problem by passing a parameter to the function calculating that distance that forces XYZ movement to be recognized. This may not address the entire issue, since later code in that function makes further use of the endpoint differences.
Update motion-logger/basic test after changing status buffer fields in 80c9258, "Add spindle-specific fields to emcmotCommand rather than reusing other fields (with confusing names)."
- tp: disallow blending when entering position-synch mode
Have not had time to play with this - but does this mean that things like a
fuse won't work any more? (like combining a bunch of G33 commands together
to create a variable pitch/diameter thread?
…On Wed, May 1, 2019 at 8:18 PM Robert W. Ellenberg ***@***.***> wrote:
This branch combines a bunch of old work, and some recent fixes from other
branches to address some outstanding TP issues in 2.7
Fix #68 <#68> (reduce large
blend arcs in G33 and prevent blends between synced and non-synced modes)
Fix #164 <#164> (smoother
error correction and better velocity estimation in position sync)
Fix #167 <#167> (warns users
if axis feeds are not fast enough for a G33 move at the current spindle
speed)
Fix #546 <#546> (Fix some edge
cases in TP including a regression in parabolic blend fallback)
Fix #550 <#550> (Fix mismatch
between canon and TP's idea of what a zero-length move is, since they each
have to arrive at that conclusion independently)
------------------------------
You can view, comment on, or merge this pull request online at:
#581
Commit Summary
- tp: disallow blending when entering position-synch mode
- tp: Improve position-mode spindle sync performance with new error
calculation.
- tp: new formula for spindle position tracking
- sim: Add a simple component for quantizing a signal (useful for
simulating encoders)
- sim: First cut of spindle encoder simulation with quantized output
- canon: Add a missing forward declaration
- canon: Minor whitespace cleanup
- canon: Replace unit conversion macro with a function
- canon: Enable smarter blending in spindle-synchronized motion.
- tp: Limit max feed scale in position-sync blends.
- canon: Automatically limit spindle speed in spindle-sync motion.
- tp: Re-order checks for parabolic blends
- tp: Fix debug level for some debug print statements
- tp: Use motion's spindle-speed-in input for spindle velocity
- sim: Improve simulation of inertia in spindle sim
- tp: Add debug information for spindle sync
- motion: Add spindle velocity estimator
- motion: Refactor spindle status for clarity and organization.
- tp: Remove discontinuous spindle positions in rigid tapping
internals.
- tp: Fix spindle position tracking to work with motion's new spindle
data.
- motion: Add a HAL pin to motion to let users control how aggressive
position tracking should be.
- test: Test case for steady state error
- Re-arrange a calculation to remove a division
- canon: actually return angular feed rate when asked
- test: Match sam's lathe config settings (axis vel / acc).
- tp: Allow switching between position-sync algorithms based on a HAL
pin.
- sim: model velocity quantization in encoder near 360RPM
- canon: Simplify spindle speed limits for synced motion
- canon: don't restore spindle speed after limiting it for
spindle-synched motion.
- Before run, warn if spindle-synched move violates axis limits
- Added tracking error pin to motion HAL for spindle sync testing
- Make sim spindle more sluggish to make direction reversal behavior
easier to analyze in simulation.
- Fix motion's position tracking error output pin.
- Fix sign reversal in spindle displacement calculation causing
hard-stop at end of rigid tap
- Add debug scripts to extract spindle data from a tp log file
- Fix false position tracking error at spindle reversal (needed to
reset sync position)
- Increase halscope's shared ram size to collect more samples
- Add some missing notes
- Add max spindle speed check to rigid tapping and factor out some
common code.
- Fix spindle reversal calculations to avoid jitter and accelerations
spikes.
- Add some extraction scripts for TP test logs
- During G96, plan blends for largest possible spindle speed
- Only limit spindle speed during position sync, not velocity sync
- Add spindle-specific fields to emcmotCommand rather than reusing
other fields (with confusing names).
- Fix linking issue with signum function
- tp: Add some comments to clarify obscure variable names
- tp: When forcing a pair of motion segments to be tangent, store the
"kink" velocity in the previous segment.
- tp: Fix handling of approximate tangents and required de-rating of
max velocity and acceleration.
- tp: Fix acceleration violation due to corner case in initialization
of optimizer
- test: Add test cases for issue 546 and issue 550
- tp: Refactor tangential vs overall maximum acceleration lookup
- tp: Set flags on next segment when setting terminal condition.
- Fix some compiler warnings
- tp: Refactor circle maximum velocity / acceleration ratio calculation
- tp: Refactor and simplify parallel / anti-parallel checks
- blendmath: implement unit tests for new parallel / anti-parallel
check functions
- tp: Move a pmCartesian function into blendmath for use outside of
tp.c
- tp: Reimplement sharp corner detection using new anti-parallel
detection
- tp: Factor out calculation for peak velocity over a distance.
- unit_test: Add "greatest" unit test framework (C, header-only
macro-based unit tests)
- tp: Compute effective radius of helix too.
- tp: Simplify kink acceleration calculation to handle negative
velocities
- tp: Overhaul debug output with JSON5-formatted log statements.
- Apply minimum displacement checks consistently between canon and TP.
- test: Introduce some optimized configs for manual sim tests.
- tp: Refactor tpCheckEndCondition to isolate computation from TP
global state
- tests: Add a stripped down test case for split-cycle debugging
- tp: Move split cycle function to blendmath file and simplify logic
- Handle pure-angular moves consistently between canon and TP
- tp: Simplify logic in split-cycle update
- tp: Simplify debug output and present more useful info
- tp: Fix effective radius curvature formula.
- canon: Fix a mistaken unit conversion of normal axis unit vector in
circular move command
- tp: Use already-calculated max normal acceleration from canon for
optimal circle max velocity in TP
- tests: Add XYZ velocity plot to log parser
- test: Add some TP test cases for optimal circle velocity /
acceleration
- test: clean up old octave scripts and fix up broken / missing
functions in test code.
- tests: Add an ignore file for generated files from TP debugging
- motion: Catch and propagate failures to set TP position / velocity
in HAL
- tp: Add position mismatch check when starting a motion segment
- tp: Factor out accel scale calculation
- tp: Extend JSON5 debug output to include some spindle-sync
information
- tp: convert more debug outputs to JSON5 format
- tp: don't try to compute blend velocity for segments that don't
parabolic blend
- tp: Convert debug output for spiral arc length fit to JSON5
- test: Provide common setup subroutines and clean up old TP test
programs
- tp: Clean up some more warnings
- Extend blendmath unit tests to include test cases for end condition
check
- Add an inline wrapper function to extract max accel from emcmotDebug
- tp: migrate more debug output to use new JSON5 printing
- Add default conditions to a TP test case
- tp: add some skeletal unit tests for joint_utils and spherical_arc
- tp: add a test for the ray intersection check
- tp: Clean up some pedantic warnings about default cases
- tp: Factor out code handling spindle-sync into a separate function
- posemath: Overhaul and extend unit tests
- canon: Fix a pedantic unused variable warning
- greatest: Tweak the console output to be more gcc-like
- posemath: Remove extraneous semicolons from definitions in posemath
- tp: Pedantic rename of a function to match its result
- tp: Remove an unnecessary special case in tangent angle check
- tp: Add more unit tests for blendmath
- unit_test: Document setup for unit test build in README
- Make greatest float printing more precise to help troubleshoot
numerical errors
- tp: Control new consistency checks with INI file settings to avoid
console spam in production
- tp: make TP axis limit error checks more robust
- tp: refactor TP functional tests to run headless
- tp: remove some obsolete debug output (to be replaced with unit
testing)
- test: Functional tests for TP from NGC snippets known to reproduce
past issues
- test: remove an unused config file from previous versions of test
configs
- unit_test: add some new cases for end condition check
- motion: Convert #defines to enums
- tp: hide some pedantic debug output that screws with unit tests
- unit_test: add an assert macro to compare PmCartesians
- tp: add more test cases for PmCircles with helix / spiral components
- unit_test: convert more PmCartesian asserts to use macro rather than
compare function
- posemath: Fix pointer type mismatches in posemath error messages
- unit_test: convert more asserts to produce GCC-style output
- unit_test: Hide pedantic debug ouput by default in unit tests
- Fix some formatting mismatches between other branches for easier
merging in the future
- Restore a debug message in case of future issues with zero-length
moves
- Merge branch 'bugfixes-546-550-167-68-164-2.7' into 2.7
- tp: fix missing symbol
- Fix runtests for TP consistency checks
- canon: fix feed rate problem in arc corner case
- Fix formatting inconsistencies in canon
- canon: fix a merge / rebase error that dropped a variable rename in
a previous commit
- Fixup 80c9258: update motion-logger/basic test
File Changes
- *M* .gitignore
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-0> (5)
- *M* README
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-1> (11)
- *M* lib/hallib/core_sim9.hal
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-2> (3)
- *M* lib/hallib/sim_spindle_encoder.hal
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-3> (29)
- *M* lib/python/rs274/glcanon.py
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-4> (40)
- *M* meson.build
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-5> (46)
- *M* src/Makefile
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-6> (2)
- *M* src/emc/ini/initraj.cc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-7> (8)
- *M* src/emc/motion-logger/motion-logger.c
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-8> (13)
- *M* src/emc/motion/command.c
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-9> (126)
- *M* src/emc/motion/control.c
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-10> (66)
- *M* src/emc/motion/mot_priv.h
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-11> (6)
- *M* src/emc/motion/motion.c
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-12> (29)
- *M* src/emc/motion/motion.h
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-13> (64)
- *M* src/emc/motion/usrmotintf.cc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-14> (1)
- *M* src/emc/nml_intf/emc.cc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-15> (3)
- *M* src/emc/nml_intf/emc.hh
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-16> (8)
- *M* src/emc/nml_intf/emc_nml.hh
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-17> (6)
- *M* src/emc/nml_intf/emcpose.c
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-18> (42)
- *M* src/emc/nml_intf/emcpose.h
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-19> (4)
- *M* src/emc/nml_intf/interpl.hh
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-20> (2)
- *M* src/emc/nml_intf/motion_types.h
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-21> (19)
- *M* src/emc/rs274ngc/gcodemodule.cc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-22> (34)
- *M* src/emc/rs274ngc/interp_base.hh
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-23> (4)
- *M* src/emc/rs274ngc/interp_internal.hh
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-24> (1)
- *M* src/emc/task/emccanon.cc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-25> (384)
- *M* src/emc/task/emctaskmain.cc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-26> (6)
- *M* src/emc/task/taskintf.cc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-27> (52)
- *M* src/emc/tp/blendmath.c
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-28> (245)
- *M* src/emc/tp/blendmath.h
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-29> (25)
- *A* src/emc/tp/joint_util.c
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-30> (125)
- *A* src/emc/tp/joint_util.h
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-31> (21)
- *A* src/emc/tp/math_util.c
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-32> (25)
- *A* src/emc/tp/math_util.h
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-33> (20)
- *A* src/emc/tp/rtapi_json5.h
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-34> (143)
- *M* src/emc/tp/spherical_arc.c
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-35> (41)
- *M* src/emc/tp/spherical_arc.h
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-36> (4)
- *M* src/emc/tp/tc.c
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-37> (137)
- *M* src/emc/tp/tc.h
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-38> (12)
- *M* src/emc/tp/tc_types.h
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-39> (21)
- *M* src/emc/tp/tp.c
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-40> (1212)
- *M* src/emc/tp/tp.h
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-41> (42)
- *M* src/emc/tp/tp_debug.h
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-42> (38)
- *M* src/emc/tp/tp_types.h
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-43> (20)
- *M* src/emc/usr_intf/axis/scripts/axis.py
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-44> (13)
- *M* src/emc/usr_intf/gremlin/gremlin.py
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-45> (13)
- *M* src/hal/classicladder/drawing_sequential.h
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-46> (3)
- *M* src/hal/classicladder/files_sequential.c
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-47> (1)
- *M* src/hal/classicladder/sequential.h
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-48> (4)
- *A* src/hal/components/d2dt2.comp
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-49> (37)
- *A* src/hal/components/quant.comp
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-50> (29)
- *M* src/hal/utils/scope_rt.c
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-51> (2)
- *M* src/hal/utils/scope_shm.h
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-52> (2)
- *M* src/libnml/posemath/_posemath.c
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-53> (17)
- *M* src/libnml/posemath/posemath.h
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-54> (39)
- *M* src/rtapi/uspace_common.h
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-55> (1)
- *M* tests/motion-logger/basic/expected.builtin-startup.in
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-56> (1)
- *M* tests/motion-logger/mountaindew/expected.motion-logger
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-57> (1)
- *A* tests/trajectory-planner/batch-test/.gitignore
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-58> (5)
- *A* tests/trajectory-planner/batch-test/batch-test.ini
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-59> (7)
- *A* tests/trajectory-planner/batch-test/checkresult
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-60> (3)
- *A* tests/trajectory-planner/batch-test/headless_batch_test.py
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-61> (51)
- *R*
tests/trajectory-planner/batch-test/nc_files/arc-feed/arc_maxvel_xy.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-62> (3)
- *R*
tests/trajectory-planner/batch-test/nc_files/arc-feed/arc_time.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-63> (2)
- *R*
tests/trajectory-planner/batch-test/nc_files/arc-feed/basic_xy.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-64> (5)
- *R* tests/trajectory-planner/batch-test/nc_files/arc-feed/full_xy.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-65> (4)
- *R* tests/trajectory-planner/batch-test/nc_files/arc-feed/full_xz.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-66> (2)
- *R* tests/trajectory-planner/batch-test/nc_files/arc-feed/full_yz.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-67> (2)
- *A*
tests/trajectory-planner/batch-test/nc_files/arc-feed/optimal_circle_acc_ratio.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-68> (19)
- *R*
tests/trajectory-planner/batch-test/nc_files/arc-feed/simple_arc2.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-69> (2)
- *R*
tests/trajectory-planner/batch-test/nc_files/arc-feed/simple_arc3.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-70> (2)
- *A*
tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-arc-concave-convex.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-71> (13)
- *A*
tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-arc-convex-concave.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-72> (13)
- *R*
tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-arc-convex-convex.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-73> (2)
- *R*
tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-arc-convex.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-74> (2)
- *R*
tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-arc-neartangent.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-75> (2)
- *R*
tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-arc-planeswitch.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-76> (2)
- *R*
tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-arc-sawtooth.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-77> (22)
- *R*
tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-arc-test.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-78> (0)
- *A*
tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-large-radii.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-79> (13)
- *R*
tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-terminal.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-80> (3)
- *R*
tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-with-spiral.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-81> (8)
- *A*
tests/trajectory-planner/batch-test/nc_files/arc-intersections/line-arc-burnin.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-82> (47)
- *R*
tests/trajectory-planner/batch-test/nc_files/arc-intersections/linearc-convex.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-83> (4)
- *R*
tests/trajectory-planner/batch-test/nc_files/arc-intersections/linearc-end-overrun.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-84> (5)
- *R*
tests/trajectory-planner/batch-test/nc_files/arc-intersections/linearc.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-85> (2)
- *R*
tests/trajectory-planner/batch-test/nc_files/arc-intersections/tort-sam-mach3.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-86> (5)
- *A*
tests/trajectory-planner/batch-test/nc_files/regressions/546_simplfied.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-87> (21)
- *R*
tests/trajectory-planner/batch-test/nc_files/regressions/arc_vel_violation2.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-88> (0)
- *A*
tests/trajectory-planner/batch-test/nc_files/regressions/blend_arc_simple_pos_test.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-89> (12)
- *R*
tests/trajectory-planner/batch-test/nc_files/regressions/bug424_long.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-90> (0)
- *A*
tests/trajectory-planner/batch-test/nc_files/regressions/bug550_short_moves.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-91> (13)
- *R*
tests/trajectory-planner/batch-test/nc_files/regressions/circular_tolerance_check.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-92> (0)
- *A*
tests/trajectory-planner/batch-test/nc_files/regressions/corner_decel.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-93> (12)
- *A*
tests/trajectory-planner/batch-test/nc_files/regressions/cradek_accel_issue.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-94> (9)
- *R*
tests/trajectory-planner/batch-test/nc_files/regressions/feedtest.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-95> (0)
- *R*
tests/trajectory-planner/batch-test/nc_files/regressions/full_reverse.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-96> (0)
- *R*
tests/trajectory-planner/batch-test/nc_files/regressions/machinekit_412.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-97> (0)
- *R*
tests/trajectory-planner/batch-test/nc_files/regressions/maxvel_violation_helical.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-98> (0)
- *R*
tests/trajectory-planner/batch-test/nc_files/regressions/maxvel_violation_helical2.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-99> (0)
- *R*
tests/trajectory-planner/batch-test/nc_files/regressions/maxvel_violation_line.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-100> (0)
- *R*
tests/trajectory-planner/batch-test/nc_files/regressions/maxvel_violation_line2.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-101> (0)
- *A*
tests/trajectory-planner/batch-test/nc_files/regressions/parabolic_bump.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-102> (10)
- *A*
tests/trajectory-planner/batch-test/nc_files/regressions/parabolic_test.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-103> (9)
- *A*
tests/trajectory-planner/batch-test/nc_files/regressions/parabolic_varying.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-104> (12)
- *R*
tests/trajectory-planner/batch-test/nc_files/regressions/quick_arc.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-105> (0)
- *R*
tests/trajectory-planner/batch-test/nc_files/regressions/rickg-arcs.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-106> (2)
- *R*
tests/trajectory-planner/batch-test/nc_files/regressions/sam-master-violation.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-107> (0)
- *R*
tests/trajectory-planner/batch-test/nc_files/regressions/sam_vel_violation.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-108> (0)
- *R*
tests/trajectory-planner/batch-test/nc_files/regressions/sam_violation1.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-109> (0)
- *R*
tests/trajectory-planner/batch-test/nc_files/regressions/sam_violation2.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-110> (0)
- *R*
tests/trajectory-planner/batch-test/nc_files/regressions/sam_violation2_verbatim.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-111> (0)
- *R*
tests/trajectory-planner/batch-test/nc_files/regressions/sam_violation3.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-112> (3)
- *R*
tests/trajectory-planner/batch-test/nc_files/regressions/sam_zero_length_move.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-113> (0)
- *A*
tests/trajectory-planner/batch-test/nc_files/regressions/split-cycle-check.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-114> (515)
- *R*
tests/trajectory-planner/batch-test/nc_files/regressions/stellabee-kink-test.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-115> (0)
- *R*
tests/trajectory-planner/batch-test/nc_files/regressions/stellabee-violation-spirals.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-116> (0)
- *R*
tests/trajectory-planner/batch-test/nc_files/regressions/stop-err.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-117> (0)
- *R*
tests/trajectory-planner/batch-test/nc_files/regressions/tangent_lines_smooth.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-118> (0)
- *R*
tests/trajectory-planner/batch-test/nc_files/regressions/tap-discrimant-error-orig.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-119> (2)
- *R*
tests/trajectory-planner/batch-test/nc_files/regressions/tkalcevic_realtime_error.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-120> (0)
- *A*
tests/trajectory-planner/batch-test/nc_files/regressions/warnings_g81.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-121> (20)
- *R*
tests/trajectory-planner/batch-test/nc_files/regressions/z_jump_tangent_improvement.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-122> (0)
- *A*
tests/trajectory-planner/batch-test/nc_files/spindle/g33_blend.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-123> (24)
- *A*
tests/trajectory-planner/batch-test/nc_files/spindle/g33_simple.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-124> (8)
- *A*
tests/trajectory-planner/batch-test/nc_files/spindle/g95_blend.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-125> (30)
- *A*
tests/trajectory-planner/batch-test/nc_files/spindle/rigidtap_test.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-126> (11)
- *R*
tests/trajectory-planner/batch-test/nc_files/spindle/spindle-wait.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-127> (2)
- *A* tests/trajectory-planner/batch-test/nc_files/spindle/tapping.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-128> (10)
- *A* tests/trajectory-planner/batch-test/position.blank
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-129> (9)
- *A* tests/trajectory-planner/batch-test/print_load_times.py
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-130> (20)
- *A* tests/trajectory-planner/batch-test/sim.tbl
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-131> (1)
- *A* tests/trajectory-planner/batch-test/test.sh
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-132> (4)
- *A* tests/trajectory-planner/circular-arcs/.gitignore
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-133> (5)
- *A* tests/trajectory-planner/circular-arcs/README.md
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-134> (21)
- *M* tests/trajectory-planner/circular-arcs/build-debug.sh
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-135> (2)
- *M* tests/trajectory-planner/circular-arcs/build-release.sh
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-136> (4)
- *A* tests/trajectory-planner/circular-arcs/configs/6axis_rotary.ini
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-137> (270)
- *M* tests/trajectory-planner/circular-arcs/configs/9axis.ini
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-138> (82)
- *M* tests/trajectory-planner/circular-arcs/configs/XY.ini
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-139> (12)
- *M* tests/trajectory-planner/circular-arcs/configs/XYZ_fast.ini
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-140> (3)
- *M* tests/trajectory-planner/circular-arcs/configs/XYZ_medium.ini
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-141> (3)
- *M* tests/trajectory-planner/circular-arcs/configs/XYZ_nospindle.ini
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-142> (4)
- *M* tests/trajectory-planner/circular-arcs/configs/XYZ_uneven.ini
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-143> (1)
- *M* tests/trajectory-planner/circular-arcs/configs/XY_slowZ.ini
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-144> (22)
- *D*
tests/trajectory-planner/circular-arcs/configs/add_hal_symlinks.sh
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-145> (3)
- *A*
tests/trajectory-planner/circular-arcs/configs/apply_limits_to_enable.tcl
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-146> (1)
- *R*
tests/trajectory-planner/circular-arcs/configs/autotest_mill_XYZA.ini
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-147> (170)
- *A*
tests/trajectory-planner/circular-arcs/configs/autotest_mill_XYZA_template.ini
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-148> (192)
- *M* tests/trajectory-planner/circular-arcs/configs/axis-A.tcl
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-149> (34)
- *A* tests/trajectory-planner/circular-arcs/configs/axis-B.tcl
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-150> (35)
- *A* tests/trajectory-planner/circular-arcs/configs/axis-C.tcl
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-151> (35)
- *A* tests/trajectory-planner/circular-arcs/configs/axis-U.tcl
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-152> (35)
- *A* tests/trajectory-planner/circular-arcs/configs/axis-V.tcl
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-153> (35)
- *A* tests/trajectory-planner/circular-arcs/configs/axis-W.tcl
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-154> (35)
- *M* tests/trajectory-planner/circular-arcs/configs/axis-X.tcl
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-155> (34)
- *M* tests/trajectory-planner/circular-arcs/configs/axis-Y.tcl
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-156> (34)
- *M* tests/trajectory-planner/circular-arcs/configs/axis-Z.tcl
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-157> (32)
- *M*
tests/trajectory-planner/circular-arcs/configs/axis_manualtoolchange.hal
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-158> (2)
- *D* tests/trajectory-planner/circular-arcs/configs/core_sim9.hal
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-159> (1)
- *M*
tests/trajectory-planner/circular-arcs/configs/core_sim_components.hal
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-160> (29)
- *R* tests/trajectory-planner/circular-arcs/configs/lathe_XZ.ini
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-161> (8)
- *A*
tests/trajectory-planner/circular-arcs/configs/load_constraint_components.tcl
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-162> (57)
- *R* tests/trajectory-planner/circular-arcs/configs/mill_XYZA.ini
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-163> (16)
- *A* tests/trajectory-planner/circular-arcs/configs/postgui-A.tcl
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-164> (5)
- *A* tests/trajectory-planner/circular-arcs/configs/postgui-B.tcl
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-165> (6)
- *A* tests/trajectory-planner/circular-arcs/configs/postgui-C.tcl
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-166> (5)
- *A* tests/trajectory-planner/circular-arcs/configs/postgui-U.tcl
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-167> (5)
- *A* tests/trajectory-planner/circular-arcs/configs/postgui-V.tcl
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-168> (5)
- *A* tests/trajectory-planner/circular-arcs/configs/postgui-W.tcl
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-169> (5)
- *A* tests/trajectory-planner/circular-arcs/configs/postgui-X.tcl
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-170> (5)
- *A* tests/trajectory-planner/circular-arcs/configs/postgui-XYZA.tcl
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-171> (5)
- *A* tests/trajectory-planner/circular-arcs/configs/postgui-XYZABC.tcl
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-172> (3)
- *A*
tests/trajectory-planner/circular-arcs/configs/postgui-XYZABCUVW.tcl
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-173> (4)
- *A* tests/trajectory-planner/circular-arcs/configs/postgui-XZ.tcl
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-174> (3)
- *A* tests/trajectory-planner/circular-arcs/configs/postgui-Y.tcl
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-175> (5)
- *A* tests/trajectory-planner/circular-arcs/configs/postgui-Z.tcl
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-176> (5)
- *A* tests/trajectory-planner/circular-arcs/configs/postgui-base.tcl
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-177> (14)
- *D* tests/trajectory-planner/circular-arcs/configs/postgui.hal
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-178> (35)
- *A*
tests/trajectory-planner/circular-arcs/configs/test_XYZA_all_programs.ini
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-179> (7)
- *A*
tests/trajectory-planner/circular-arcs/configs/test_run_all_programs.py
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-180> (61)
- *A* tests/trajectory-planner/circular-arcs/configs/vcp-XYZA.xml
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-181> (148)
- *A* tests/trajectory-planner/circular-arcs/configs/vcp-XYZABC.xml
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-182> (198)
- *A* tests/trajectory-planner/circular-arcs/configs/vcp-XYZABCUVW.xml
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-183> (273)
- *A* tests/trajectory-planner/circular-arcs/configs/vcp-XZ.xml
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-184> (98)
- *M* tests/trajectory-planner/circular-arcs/configs/vcp.xml
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-185> (249)
- *A* tests/trajectory-planner/circular-arcs/extract_all.sh
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-186> (7)
- *A* tests/trajectory-planner/circular-arcs/extract_displacement.awk
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-187> (2)
- *A* tests/trajectory-planner/circular-arcs/extract_spindle.awk
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-188> (1)
- *A* tests/trajectory-planner/circular-arcs/extract_tc_state.awk
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-189> (1)
- *M* tests/trajectory-planner/circular-arcs/linuxcnc_control.py
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-190> (252)
- *M*
tests/trajectory-planner/circular-arcs/nc_files/XYtests/51MeanderAve.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-191> (2)
- *M*
tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/arc-arc-concave-convex.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-192> (3)
- *M*
tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/arc-arc-convex-concave.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-193> (3)
- *M*
tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/arc-arc-convex-convex.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-194> (2)
- *M*
tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/arc-arc-convex.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-195> (2)
- *M*
tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/arc-arc-neartangent.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-196> (2)
- *M*
tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/arc-arc-planeswitch.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-197> (2)
- *M*
tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/arc-arc-sawtooth.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-198> (3)
- *A*
tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/arc-large-radii.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-199> (13)
- *M*
tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/arc-terminal.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-200> (3)
- *D*
tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/blur_torus.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-201> (1905)
- *M*
tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/line-arc-burnin.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-202> (3)
- *M*
tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/linearc-convex.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-203> (4)
- *M*
tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/linearc-end-overrun.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-204> (5)
- *M*
tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/linearc-stellabee.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-205> (5)
- *M*
tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/linearc.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-206> (2)
- *M*
tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/tort-sam-mach3.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-207> (5)
- *D* tests/trajectory-planner/circular-arcs/nc_files/auto-test/XYtests
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-208> (1)
- *D*
tests/trajectory-planner/circular-arcs/nc_files/auto-test/performance
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-209> (1)
- *M*
tests/trajectory-planner/circular-arcs/nc_files/diagnostic/abc_tangent.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-210> (2)
- *M*
tests/trajectory-planner/circular-arcs/nc_files/diagnostic/adjustment.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-211> (4)
- *M*
tests/trajectory-planner/circular-arcs/nc_files/diagnostic/arc-with-spiral.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-212> (2)
- *M*
tests/trajectory-planner/circular-arcs/nc_files/diagnostic/bad_spirals_1.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-213> (6)
- *M*
tests/trajectory-planner/circular-arcs/nc_files/diagnostic/bad_spirals_comp.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-214> (5)
- *M*
tests/trajectory-planner/circular-arcs/nc_files/diagnostic/bad_spirals_lathe.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-215> (4)
- *M*
tests/trajectory-planner/circular-arcs/nc_files/diagnostic/default_tolerance_check.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-216> (2)
- *M*
tests/trajectory-planner/circular-arcs/nc_files/diagnostic/feed-tracking-test.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-217> (3)
- *M*
tests/trajectory-planner/circular-arcs/nc_files/diagnostic/helix_slowdown.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-218> (2)
- *M*
tests/trajectory-planner/circular-arcs/nc_files/diagnostic/modal_state_test.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-219> (3)
- *M*
tests/trajectory-planner/circular-arcs/nc_files/diagnostic/parabolic_split1.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-220> (3)
- *M*
tests/trajectory-planner/circular-arcs/nc_files/diagnostic/ripple1.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-221> (4)
- *M*
tests/trajectory-planner/circular-arcs/nc_files/diagnostic/simple_blend.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-222> (2)
- *M*
tests/trajectory-planner/circular-arcs/nc_files/diagnostic/spiral_aggressive.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-223> (5)
- *M*
tests/trajectory-planner/circular-arcs/nc_files/diagnostic/tangent_check.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-224> (3)
- *M*
tests/trajectory-planner/circular-arcs/nc_files/diagnostic/test-active-states.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-225> (3)
- *A* tests/trajectory-planner/circular-arcs/nc_files/find_dupes.sh
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-226> (9)
- *R*
tests/trajectory-planner/circular-arcs/nc_files/performance/sam-tail-slowdown.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-227> (0)
- *D*
tests/trajectory-planner/circular-arcs/nc_files/quick-tests/arc-arc-concave-convex.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-228> (12)
- *M*
tests/trajectory-planner/circular-arcs/nc_files/quick-tests/dodecagon_0.1in.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-229> (7)
- *D*
tests/trajectory-planner/circular-arcs/nc_files/quick-tests/linearc-stellabee.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-230> (132)
- *A*
tests/trajectory-planner/circular-arcs/nc_files/spindle/g33_blend.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-231> (24)
- *M*
tests/trajectory-planner/circular-arcs/nc_files/spindle/g33_simple.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-232> (7)
- *A*
tests/trajectory-planner/circular-arcs/nc_files/spindle/g95_blend.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-233> (30)
- *M*
tests/trajectory-planner/circular-arcs/nc_files/spindle/rigidtap_test.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-234> (2)
- *M*
tests/trajectory-planner/circular-arcs/nc_files/spindle/spindle-wait.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-235> (2)
- *M*
tests/trajectory-planner/circular-arcs/nc_files/spindle/spiral_spindleon.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-236> (3)
- *M*
tests/trajectory-planner/circular-arcs/nc_files/spindle/straight_spindleon.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-237> (4)
- *M*
tests/trajectory-planner/circular-arcs/nc_files/spindle/tapping.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-238> (2)
- *A*
tests/trajectory-planner/circular-arcs/nc_files/test_subs/default_inch.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-239> (4)
- *A*
tests/trajectory-planner/circular-arcs/nc_files/test_subs/default_mm.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-240> (4)
- *A*
tests/trajectory-planner/circular-arcs/nc_files/test_subs/default_modal_state.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-241> (19)
- *D*
tests/trajectory-planner/circular-arcs/nc_files/violation_checks/spreadsheeterrors.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-242> (66)
- *M*
tests/trajectory-planner/circular-arcs/nc_files/wz-tests/130207L.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-243> (8)
- *M*
tests/trajectory-planner/circular-arcs/nc_files/wz-tests/130207LZW.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-244> (7)
- *M* tests/trajectory-planner/circular-arcs/nc_files/wz-tests/xw.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-245> (12)
- *M* tests/trajectory-planner/circular-arcs/nc_files/wz-tests/xz.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-246> (12)
- *D* tests/trajectory-planner/circular-arcs/octave/create_3d_line.m
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-247> (62)
- *M*
tests/trajectory-planner/circular-arcs/octave/create_3d_random_walk.m
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-248> (105)
- *M* tests/trajectory-planner/circular-arcs/octave/estimate_depth.m
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-249> (6)
- *A* tests/trajectory-planner/circular-arcs/octave/ezrand.m
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-250> (4)
- *D* tests/trajectory-planner/circular-arcs/octave/make_peak_img.m
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-251> (29)
- *A*
tests/trajectory-planner/circular-arcs/octave/optimal_circular_arc_accel.m
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-252> (34)
- *A* tests/trajectory-planner/circular-arcs/octave/parallel_test.m
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-253> (10)
- *A* tests/trajectory-planner/circular-arcs/octave/plot_displacement.m
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-254> (10)
- *D* tests/trajectory-planner/circular-arcs/octave/plot_movement.m
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-255> (10)
- *A* tests/trajectory-planner/circular-arcs/octave/plot_spindledata.m
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-256> (15)
- *A* tests/trajectory-planner/circular-arcs/octave/plot_tcdata.m
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-257> (7)
- *D* tests/trajectory-planner/circular-arcs/octave/process_log.m
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-258> (7)
- *A* tests/trajectory-planner/circular-arcs/octave/test_kink_accel.m
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-259> (29)
- *A* tests/trajectory-planner/circular-arcs/octave/test_split_cycle.m
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-260> (63)
- *A* tests/trajectory-planner/circular-arcs/parse_tp_logs.py
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-261> (72)
- *D* tests/trajectory-planner/circular-arcs/run_all_tests.py
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-262> (115)
- *A* tests/trajectory-planner/circular-arcs/tp_testing_venv.cfg
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-263> (4)
- *A* tests/trajectory-planner/common-config/apply_limits_to_enable.tcl
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-264> (1)
- *A* tests/trajectory-planner/common-config/axis-A.tcl
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-265> (35)
- *A* tests/trajectory-planner/common-config/axis-X.tcl
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-266> (35)
- *A* tests/trajectory-planner/common-config/axis-Y.tcl
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-267> (35)
- *A* tests/trajectory-planner/common-config/axis-Z.tcl
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-268> (34)
- *A* tests/trajectory-planner/common-config/core_sim_components.hal
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-269> (19)
- *A* tests/trajectory-planner/common-config/linuxcnc_control.py
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-270> (291)
- *A*
tests/trajectory-planner/common-config/load_constraint_components.tcl
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-271> (57)
- *A* tests/trajectory-planner/common-config/mill_XYZA_base.ini
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-272> (177)
- *A* tests/trajectory-planner/common-config/sim.tbl
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-273> (6)
- *A* tests/trajectory-planner/common-subs/default_inch.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-274> (4)
- *A* tests/trajectory-planner/common-subs/default_mm.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-275> (4)
- *A* tests/trajectory-planner/common-subs/default_modal_state.ngc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-276> (19)
- *M* unit_tests/greatest.h
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-277> (73)
- *A* unit_tests/mock/mock_rtapi.inc
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-278> (22)
- *A* unit_tests/tp/gen_posemath_boilerplate.m
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-279> (23)
- *M* unit_tests/tp/test_blendmath.c
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-280> (408)
- *A* unit_tests/tp/test_joint_util.c
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-281> (83)
- *A* unit_tests/tp/test_posemath.c
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-282> (507)
- *A* unit_tests/tp/test_spherical_arc.c
<https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-283> (72)
Patch Links:
- https://github.com/LinuxCNC/linuxcnc/pull/581.patch
- https://github.com/LinuxCNC/linuxcnc/pull/581.diff
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#581>, or mute the thread
<https://github.com/notifications/unsubscribe-auth/AEHRGQW6VXJKJRQK2IBXT2LPTI6PTANCNFSM4HJ2Z47A>
.
|
… On Wed, May 1, 2019 at 10:04 PM Sam Sokolik ***@***.***> wrote:
- tp: disallow blending when entering position-synch mode
Have not had time to play with this - but does this mean that things like
a fuse won't work any more? (like combining a bunch of G33 commands
together to create a variable pitch/diameter thread?
On Wed, May 1, 2019 at 8:18 PM Robert W. Ellenberg <
***@***.***> wrote:
> This branch combines a bunch of old work, and some recent fixes from
> other branches to address some outstanding TP issues in 2.7
>
> Fix #68 <#68> (reduce large
> blend arcs in G33 and prevent blends between synced and non-synced modes)
> Fix #164 <#164> (smoother
> error correction and better velocity estimation in position sync)
> Fix #167 <#167> (warns users
> if axis feeds are not fast enough for a G33 move at the current spindle
> speed)
> Fix #546 <#546> (Fix some
> edge cases in TP including a regression in parabolic blend fallback)
> Fix #550 <#550> (Fix mismatch
> between canon and TP's idea of what a zero-length move is, since they each
> have to arrive at that conclusion independently)
> ------------------------------
> You can view, comment on, or merge this pull request online at:
>
> #581
> Commit Summary
>
> - tp: disallow blending when entering position-synch mode
> - tp: Improve position-mode spindle sync performance with new error
> calculation.
> - tp: new formula for spindle position tracking
> - sim: Add a simple component for quantizing a signal (useful for
> simulating encoders)
> - sim: First cut of spindle encoder simulation with quantized output
> - canon: Add a missing forward declaration
> - canon: Minor whitespace cleanup
> - canon: Replace unit conversion macro with a function
> - canon: Enable smarter blending in spindle-synchronized motion.
> - tp: Limit max feed scale in position-sync blends.
> - canon: Automatically limit spindle speed in spindle-sync motion.
> - tp: Re-order checks for parabolic blends
> - tp: Fix debug level for some debug print statements
> - tp: Use motion's spindle-speed-in input for spindle velocity
> - sim: Improve simulation of inertia in spindle sim
> - tp: Add debug information for spindle sync
> - motion: Add spindle velocity estimator
> - motion: Refactor spindle status for clarity and organization.
> - tp: Remove discontinuous spindle positions in rigid tapping
> internals.
> - tp: Fix spindle position tracking to work with motion's new spindle
> data.
> - motion: Add a HAL pin to motion to let users control how aggressive
> position tracking should be.
> - test: Test case for steady state error
> - Re-arrange a calculation to remove a division
> - canon: actually return angular feed rate when asked
> - test: Match sam's lathe config settings (axis vel / acc).
> - tp: Allow switching between position-sync algorithms based on a HAL
> pin.
> - sim: model velocity quantization in encoder near 360RPM
> - canon: Simplify spindle speed limits for synced motion
> - canon: don't restore spindle speed after limiting it for
> spindle-synched motion.
> - Before run, warn if spindle-synched move violates axis limits
> - Added tracking error pin to motion HAL for spindle sync testing
> - Make sim spindle more sluggish to make direction reversal behavior
> easier to analyze in simulation.
> - Fix motion's position tracking error output pin.
> - Fix sign reversal in spindle displacement calculation causing
> hard-stop at end of rigid tap
> - Add debug scripts to extract spindle data from a tp log file
> - Fix false position tracking error at spindle reversal (needed to
> reset sync position)
> - Increase halscope's shared ram size to collect more samples
> - Add some missing notes
> - Add max spindle speed check to rigid tapping and factor out some
> common code.
> - Fix spindle reversal calculations to avoid jitter and accelerations
> spikes.
> - Add some extraction scripts for TP test logs
> - During G96, plan blends for largest possible spindle speed
> - Only limit spindle speed during position sync, not velocity sync
> - Add spindle-specific fields to emcmotCommand rather than reusing
> other fields (with confusing names).
> - Fix linking issue with signum function
> - tp: Add some comments to clarify obscure variable names
> - tp: When forcing a pair of motion segments to be tangent, store the
> "kink" velocity in the previous segment.
> - tp: Fix handling of approximate tangents and required de-rating of
> max velocity and acceleration.
> - tp: Fix acceleration violation due to corner case in initialization
> of optimizer
> - test: Add test cases for issue 546 and issue 550
> - tp: Refactor tangential vs overall maximum acceleration lookup
> - tp: Set flags on next segment when setting terminal condition.
> - Fix some compiler warnings
> - tp: Refactor circle maximum velocity / acceleration ratio
> calculation
> - tp: Refactor and simplify parallel / anti-parallel checks
> - blendmath: implement unit tests for new parallel / anti-parallel
> check functions
> - tp: Move a pmCartesian function into blendmath for use outside of
> tp.c
> - tp: Reimplement sharp corner detection using new anti-parallel
> detection
> - tp: Factor out calculation for peak velocity over a distance.
> - unit_test: Add "greatest" unit test framework (C, header-only
> macro-based unit tests)
> - tp: Compute effective radius of helix too.
> - tp: Simplify kink acceleration calculation to handle negative
> velocities
> - tp: Overhaul debug output with JSON5-formatted log statements.
> - Apply minimum displacement checks consistently between canon and TP.
> - test: Introduce some optimized configs for manual sim tests.
> - tp: Refactor tpCheckEndCondition to isolate computation from TP
> global state
> - tests: Add a stripped down test case for split-cycle debugging
> - tp: Move split cycle function to blendmath file and simplify logic
> - Handle pure-angular moves consistently between canon and TP
> - tp: Simplify logic in split-cycle update
> - tp: Simplify debug output and present more useful info
> - tp: Fix effective radius curvature formula.
> - canon: Fix a mistaken unit conversion of normal axis unit vector in
> circular move command
> - tp: Use already-calculated max normal acceleration from canon for
> optimal circle max velocity in TP
> - tests: Add XYZ velocity plot to log parser
> - test: Add some TP test cases for optimal circle velocity /
> acceleration
> - test: clean up old octave scripts and fix up broken / missing
> functions in test code.
> - tests: Add an ignore file for generated files from TP debugging
> - motion: Catch and propagate failures to set TP position / velocity
> in HAL
> - tp: Add position mismatch check when starting a motion segment
> - tp: Factor out accel scale calculation
> - tp: Extend JSON5 debug output to include some spindle-sync
> information
> - tp: convert more debug outputs to JSON5 format
> - tp: don't try to compute blend velocity for segments that don't
> parabolic blend
> - tp: Convert debug output for spiral arc length fit to JSON5
> - test: Provide common setup subroutines and clean up old TP test
> programs
> - tp: Clean up some more warnings
> - Extend blendmath unit tests to include test cases for end condition
> check
> - Add an inline wrapper function to extract max accel from emcmotDebug
> - tp: migrate more debug output to use new JSON5 printing
> - Add default conditions to a TP test case
> - tp: add some skeletal unit tests for joint_utils and spherical_arc
> - tp: add a test for the ray intersection check
> - tp: Clean up some pedantic warnings about default cases
> - tp: Factor out code handling spindle-sync into a separate function
> - posemath: Overhaul and extend unit tests
> - canon: Fix a pedantic unused variable warning
> - greatest: Tweak the console output to be more gcc-like
> - posemath: Remove extraneous semicolons from definitions in posemath
> - tp: Pedantic rename of a function to match its result
> - tp: Remove an unnecessary special case in tangent angle check
> - tp: Add more unit tests for blendmath
> - unit_test: Document setup for unit test build in README
> - Make greatest float printing more precise to help troubleshoot
> numerical errors
> - tp: Control new consistency checks with INI file settings to avoid
> console spam in production
> - tp: make TP axis limit error checks more robust
> - tp: refactor TP functional tests to run headless
> - tp: remove some obsolete debug output (to be replaced with unit
> testing)
> - test: Functional tests for TP from NGC snippets known to reproduce
> past issues
> - test: remove an unused config file from previous versions of test
> configs
> - unit_test: add some new cases for end condition check
> - motion: Convert #defines to enums
> - tp: hide some pedantic debug output that screws with unit tests
> - unit_test: add an assert macro to compare PmCartesians
> - tp: add more test cases for PmCircles with helix / spiral components
> - unit_test: convert more PmCartesian asserts to use macro rather
> than compare function
> - posemath: Fix pointer type mismatches in posemath error messages
> - unit_test: convert more asserts to produce GCC-style output
> - unit_test: Hide pedantic debug ouput by default in unit tests
> - Fix some formatting mismatches between other branches for easier
> merging in the future
> - Restore a debug message in case of future issues with zero-length
> moves
> - Merge branch 'bugfixes-546-550-167-68-164-2.7' into 2.7
> - tp: fix missing symbol
> - Fix runtests for TP consistency checks
> - canon: fix feed rate problem in arc corner case
> - Fix formatting inconsistencies in canon
> - canon: fix a merge / rebase error that dropped a variable rename in
> a previous commit
> - Fixup 80c9258: update motion-logger/basic test
>
> File Changes
>
> - *M* .gitignore
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-0> (5)
> - *M* README
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-1> (11)
> - *M* lib/hallib/core_sim9.hal
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-2> (3)
> - *M* lib/hallib/sim_spindle_encoder.hal
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-3> (29)
> - *M* lib/python/rs274/glcanon.py
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-4> (40)
> - *M* meson.build
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-5> (46)
> - *M* src/Makefile
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-6> (2)
> - *M* src/emc/ini/initraj.cc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-7> (8)
> - *M* src/emc/motion-logger/motion-logger.c
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-8> (13)
> - *M* src/emc/motion/command.c
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-9> (126)
> - *M* src/emc/motion/control.c
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-10> (66)
> - *M* src/emc/motion/mot_priv.h
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-11> (6)
> - *M* src/emc/motion/motion.c
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-12> (29)
> - *M* src/emc/motion/motion.h
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-13> (64)
> - *M* src/emc/motion/usrmotintf.cc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-14> (1)
> - *M* src/emc/nml_intf/emc.cc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-15> (3)
> - *M* src/emc/nml_intf/emc.hh
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-16> (8)
> - *M* src/emc/nml_intf/emc_nml.hh
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-17> (6)
> - *M* src/emc/nml_intf/emcpose.c
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-18> (42)
> - *M* src/emc/nml_intf/emcpose.h
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-19> (4)
> - *M* src/emc/nml_intf/interpl.hh
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-20> (2)
> - *M* src/emc/nml_intf/motion_types.h
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-21> (19)
> - *M* src/emc/rs274ngc/gcodemodule.cc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-22> (34)
> - *M* src/emc/rs274ngc/interp_base.hh
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-23> (4)
> - *M* src/emc/rs274ngc/interp_internal.hh
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-24> (1)
> - *M* src/emc/task/emccanon.cc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-25> (384)
> - *M* src/emc/task/emctaskmain.cc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-26> (6)
> - *M* src/emc/task/taskintf.cc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-27> (52)
> - *M* src/emc/tp/blendmath.c
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-28> (245)
> - *M* src/emc/tp/blendmath.h
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-29> (25)
> - *A* src/emc/tp/joint_util.c
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-30> (125)
> - *A* src/emc/tp/joint_util.h
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-31> (21)
> - *A* src/emc/tp/math_util.c
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-32> (25)
> - *A* src/emc/tp/math_util.h
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-33> (20)
> - *A* src/emc/tp/rtapi_json5.h
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-34> (143)
> - *M* src/emc/tp/spherical_arc.c
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-35> (41)
> - *M* src/emc/tp/spherical_arc.h
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-36> (4)
> - *M* src/emc/tp/tc.c
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-37> (137)
> - *M* src/emc/tp/tc.h
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-38> (12)
> - *M* src/emc/tp/tc_types.h
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-39> (21)
> - *M* src/emc/tp/tp.c
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-40> (1212)
> - *M* src/emc/tp/tp.h
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-41> (42)
> - *M* src/emc/tp/tp_debug.h
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-42> (38)
> - *M* src/emc/tp/tp_types.h
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-43> (20)
> - *M* src/emc/usr_intf/axis/scripts/axis.py
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-44> (13)
> - *M* src/emc/usr_intf/gremlin/gremlin.py
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-45> (13)
> - *M* src/hal/classicladder/drawing_sequential.h
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-46> (3)
> - *M* src/hal/classicladder/files_sequential.c
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-47> (1)
> - *M* src/hal/classicladder/sequential.h
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-48> (4)
> - *A* src/hal/components/d2dt2.comp
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-49> (37)
> - *A* src/hal/components/quant.comp
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-50> (29)
> - *M* src/hal/utils/scope_rt.c
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-51> (2)
> - *M* src/hal/utils/scope_shm.h
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-52> (2)
> - *M* src/libnml/posemath/_posemath.c
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-53> (17)
> - *M* src/libnml/posemath/posemath.h
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-54> (39)
> - *M* src/rtapi/uspace_common.h
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-55> (1)
> - *M* tests/motion-logger/basic/expected.builtin-startup.in
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-56> (1)
> - *M* tests/motion-logger/mountaindew/expected.motion-logger
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-57> (1)
> - *A* tests/trajectory-planner/batch-test/.gitignore
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-58> (5)
> - *A* tests/trajectory-planner/batch-test/batch-test.ini
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-59> (7)
> - *A* tests/trajectory-planner/batch-test/checkresult
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-60> (3)
> - *A* tests/trajectory-planner/batch-test/headless_batch_test.py
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-61> (51)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/arc-feed/arc_maxvel_xy.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-62> (3)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/arc-feed/arc_time.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-63> (2)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/arc-feed/basic_xy.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-64> (5)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/arc-feed/full_xy.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-65> (4)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/arc-feed/full_xz.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-66> (2)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/arc-feed/full_yz.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-67> (2)
> - *A*
> tests/trajectory-planner/batch-test/nc_files/arc-feed/optimal_circle_acc_ratio.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-68> (19)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/arc-feed/simple_arc2.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-69> (2)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/arc-feed/simple_arc3.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-70> (2)
> - *A*
> tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-arc-concave-convex.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-71> (13)
> - *A*
> tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-arc-convex-concave.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-72> (13)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-arc-convex-convex.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-73> (2)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-arc-convex.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-74> (2)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-arc-neartangent.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-75> (2)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-arc-planeswitch.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-76> (2)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-arc-sawtooth.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-77> (22)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-arc-test.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-78> (0)
> - *A*
> tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-large-radii.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-79> (13)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-terminal.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-80> (3)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-with-spiral.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-81> (8)
> - *A*
> tests/trajectory-planner/batch-test/nc_files/arc-intersections/line-arc-burnin.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-82> (47)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/arc-intersections/linearc-convex.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-83> (4)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/arc-intersections/linearc-end-overrun.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-84> (5)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/arc-intersections/linearc.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-85> (2)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/arc-intersections/tort-sam-mach3.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-86> (5)
> - *A*
> tests/trajectory-planner/batch-test/nc_files/regressions/546_simplfied.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-87> (21)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/regressions/arc_vel_violation2.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-88> (0)
> - *A*
> tests/trajectory-planner/batch-test/nc_files/regressions/blend_arc_simple_pos_test.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-89> (12)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/regressions/bug424_long.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-90> (0)
> - *A*
> tests/trajectory-planner/batch-test/nc_files/regressions/bug550_short_moves.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-91> (13)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/regressions/circular_tolerance_check.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-92> (0)
> - *A*
> tests/trajectory-planner/batch-test/nc_files/regressions/corner_decel.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-93> (12)
> - *A*
> tests/trajectory-planner/batch-test/nc_files/regressions/cradek_accel_issue.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-94> (9)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/regressions/feedtest.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-95> (0)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/regressions/full_reverse.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-96> (0)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/regressions/machinekit_412.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-97> (0)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/regressions/maxvel_violation_helical.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-98> (0)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/regressions/maxvel_violation_helical2.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-99> (0)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/regressions/maxvel_violation_line.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-100> (0)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/regressions/maxvel_violation_line2.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-101> (0)
> - *A*
> tests/trajectory-planner/batch-test/nc_files/regressions/parabolic_bump.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-102> (10)
> - *A*
> tests/trajectory-planner/batch-test/nc_files/regressions/parabolic_test.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-103> (9)
> - *A*
> tests/trajectory-planner/batch-test/nc_files/regressions/parabolic_varying.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-104> (12)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/regressions/quick_arc.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-105> (0)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/regressions/rickg-arcs.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-106> (2)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/regressions/sam-master-violation.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-107> (0)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/regressions/sam_vel_violation.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-108> (0)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/regressions/sam_violation1.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-109> (0)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/regressions/sam_violation2.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-110> (0)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/regressions/sam_violation2_verbatim.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-111> (0)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/regressions/sam_violation3.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-112> (3)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/regressions/sam_zero_length_move.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-113> (0)
> - *A*
> tests/trajectory-planner/batch-test/nc_files/regressions/split-cycle-check.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-114> (515)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/regressions/stellabee-kink-test.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-115> (0)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/regressions/stellabee-violation-spirals.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-116> (0)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/regressions/stop-err.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-117> (0)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/regressions/tangent_lines_smooth.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-118> (0)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/regressions/tap-discrimant-error-orig.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-119> (2)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/regressions/tkalcevic_realtime_error.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-120> (0)
> - *A*
> tests/trajectory-planner/batch-test/nc_files/regressions/warnings_g81.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-121> (20)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/regressions/z_jump_tangent_improvement.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-122> (0)
> - *A*
> tests/trajectory-planner/batch-test/nc_files/spindle/g33_blend.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-123> (24)
> - *A*
> tests/trajectory-planner/batch-test/nc_files/spindle/g33_simple.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-124> (8)
> - *A*
> tests/trajectory-planner/batch-test/nc_files/spindle/g95_blend.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-125> (30)
> - *A*
> tests/trajectory-planner/batch-test/nc_files/spindle/rigidtap_test.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-126> (11)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/spindle/spindle-wait.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-127> (2)
> - *A* tests/trajectory-planner/batch-test/nc_files/spindle/tapping.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-128> (10)
> - *A* tests/trajectory-planner/batch-test/position.blank
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-129> (9)
> - *A* tests/trajectory-planner/batch-test/print_load_times.py
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-130> (20)
> - *A* tests/trajectory-planner/batch-test/sim.tbl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-131> (1)
> - *A* tests/trajectory-planner/batch-test/test.sh
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-132> (4)
> - *A* tests/trajectory-planner/circular-arcs/.gitignore
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-133> (5)
> - *A* tests/trajectory-planner/circular-arcs/README.md
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-134> (21)
> - *M* tests/trajectory-planner/circular-arcs/build-debug.sh
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-135> (2)
> - *M* tests/trajectory-planner/circular-arcs/build-release.sh
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-136> (4)
> - *A* tests/trajectory-planner/circular-arcs/configs/6axis_rotary.ini
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-137> (270)
> - *M* tests/trajectory-planner/circular-arcs/configs/9axis.ini
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-138> (82)
> - *M* tests/trajectory-planner/circular-arcs/configs/XY.ini
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-139> (12)
> - *M* tests/trajectory-planner/circular-arcs/configs/XYZ_fast.ini
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-140> (3)
> - *M* tests/trajectory-planner/circular-arcs/configs/XYZ_medium.ini
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-141> (3)
> - *M* tests/trajectory-planner/circular-arcs/configs/XYZ_nospindle.ini
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-142> (4)
> - *M* tests/trajectory-planner/circular-arcs/configs/XYZ_uneven.ini
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-143> (1)
> - *M* tests/trajectory-planner/circular-arcs/configs/XY_slowZ.ini
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-144> (22)
> - *D*
> tests/trajectory-planner/circular-arcs/configs/add_hal_symlinks.sh
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-145> (3)
> - *A*
> tests/trajectory-planner/circular-arcs/configs/apply_limits_to_enable.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-146> (1)
> - *R*
> tests/trajectory-planner/circular-arcs/configs/autotest_mill_XYZA.ini
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-147> (170)
> - *A*
> tests/trajectory-planner/circular-arcs/configs/autotest_mill_XYZA_template.ini
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-148> (192)
> - *M* tests/trajectory-planner/circular-arcs/configs/axis-A.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-149> (34)
> - *A* tests/trajectory-planner/circular-arcs/configs/axis-B.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-150> (35)
> - *A* tests/trajectory-planner/circular-arcs/configs/axis-C.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-151> (35)
> - *A* tests/trajectory-planner/circular-arcs/configs/axis-U.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-152> (35)
> - *A* tests/trajectory-planner/circular-arcs/configs/axis-V.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-153> (35)
> - *A* tests/trajectory-planner/circular-arcs/configs/axis-W.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-154> (35)
> - *M* tests/trajectory-planner/circular-arcs/configs/axis-X.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-155> (34)
> - *M* tests/trajectory-planner/circular-arcs/configs/axis-Y.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-156> (34)
> - *M* tests/trajectory-planner/circular-arcs/configs/axis-Z.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-157> (32)
> - *M*
> tests/trajectory-planner/circular-arcs/configs/axis_manualtoolchange.hal
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-158> (2)
> - *D* tests/trajectory-planner/circular-arcs/configs/core_sim9.hal
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-159> (1)
> - *M*
> tests/trajectory-planner/circular-arcs/configs/core_sim_components.hal
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-160> (29)
> - *R* tests/trajectory-planner/circular-arcs/configs/lathe_XZ.ini
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-161> (8)
> - *A*
> tests/trajectory-planner/circular-arcs/configs/load_constraint_components.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-162> (57)
> - *R* tests/trajectory-planner/circular-arcs/configs/mill_XYZA.ini
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-163> (16)
> - *A* tests/trajectory-planner/circular-arcs/configs/postgui-A.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-164> (5)
> - *A* tests/trajectory-planner/circular-arcs/configs/postgui-B.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-165> (6)
> - *A* tests/trajectory-planner/circular-arcs/configs/postgui-C.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-166> (5)
> - *A* tests/trajectory-planner/circular-arcs/configs/postgui-U.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-167> (5)
> - *A* tests/trajectory-planner/circular-arcs/configs/postgui-V.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-168> (5)
> - *A* tests/trajectory-planner/circular-arcs/configs/postgui-W.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-169> (5)
> - *A* tests/trajectory-planner/circular-arcs/configs/postgui-X.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-170> (5)
> - *A* tests/trajectory-planner/circular-arcs/configs/postgui-XYZA.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-171> (5)
> - *A*
> tests/trajectory-planner/circular-arcs/configs/postgui-XYZABC.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-172> (3)
> - *A*
> tests/trajectory-planner/circular-arcs/configs/postgui-XYZABCUVW.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-173> (4)
> - *A* tests/trajectory-planner/circular-arcs/configs/postgui-XZ.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-174> (3)
> - *A* tests/trajectory-planner/circular-arcs/configs/postgui-Y.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-175> (5)
> - *A* tests/trajectory-planner/circular-arcs/configs/postgui-Z.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-176> (5)
> - *A* tests/trajectory-planner/circular-arcs/configs/postgui-base.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-177> (14)
> - *D* tests/trajectory-planner/circular-arcs/configs/postgui.hal
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-178> (35)
> - *A*
> tests/trajectory-planner/circular-arcs/configs/test_XYZA_all_programs.ini
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-179> (7)
> - *A*
> tests/trajectory-planner/circular-arcs/configs/test_run_all_programs.py
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-180> (61)
> - *A* tests/trajectory-planner/circular-arcs/configs/vcp-XYZA.xml
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-181> (148)
> - *A* tests/trajectory-planner/circular-arcs/configs/vcp-XYZABC.xml
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-182> (198)
> - *A* tests/trajectory-planner/circular-arcs/configs/vcp-XYZABCUVW.xml
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-183> (273)
> - *A* tests/trajectory-planner/circular-arcs/configs/vcp-XZ.xml
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-184> (98)
> - *M* tests/trajectory-planner/circular-arcs/configs/vcp.xml
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-185> (249)
> - *A* tests/trajectory-planner/circular-arcs/extract_all.sh
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-186> (7)
> - *A* tests/trajectory-planner/circular-arcs/extract_displacement.awk
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-187> (2)
> - *A* tests/trajectory-planner/circular-arcs/extract_spindle.awk
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-188> (1)
> - *A* tests/trajectory-planner/circular-arcs/extract_tc_state.awk
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-189> (1)
> - *M* tests/trajectory-planner/circular-arcs/linuxcnc_control.py
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-190> (252)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/XYtests/51MeanderAve.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-191> (2)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/arc-arc-concave-convex.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-192> (3)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/arc-arc-convex-concave.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-193> (3)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/arc-arc-convex-convex.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-194> (2)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/arc-arc-convex.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-195> (2)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/arc-arc-neartangent.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-196> (2)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/arc-arc-planeswitch.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-197> (2)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/arc-arc-sawtooth.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-198> (3)
> - *A*
> tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/arc-large-radii.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-199> (13)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/arc-terminal.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-200> (3)
> - *D*
> tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/blur_torus.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-201> (1905)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/line-arc-burnin.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-202> (3)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/linearc-convex.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-203> (4)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/linearc-end-overrun.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-204> (5)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/linearc-stellabee.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-205> (5)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/linearc.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-206> (2)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/tort-sam-mach3.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-207> (5)
> - *D*
> tests/trajectory-planner/circular-arcs/nc_files/auto-test/XYtests
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-208> (1)
> - *D*
> tests/trajectory-planner/circular-arcs/nc_files/auto-test/performance
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-209> (1)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/diagnostic/abc_tangent.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-210> (2)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/diagnostic/adjustment.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-211> (4)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/diagnostic/arc-with-spiral.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-212> (2)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/diagnostic/bad_spirals_1.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-213> (6)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/diagnostic/bad_spirals_comp.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-214> (5)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/diagnostic/bad_spirals_lathe.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-215> (4)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/diagnostic/default_tolerance_check.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-216> (2)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/diagnostic/feed-tracking-test.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-217> (3)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/diagnostic/helix_slowdown.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-218> (2)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/diagnostic/modal_state_test.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-219> (3)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/diagnostic/parabolic_split1.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-220> (3)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/diagnostic/ripple1.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-221> (4)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/diagnostic/simple_blend.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-222> (2)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/diagnostic/spiral_aggressive.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-223> (5)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/diagnostic/tangent_check.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-224> (3)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/diagnostic/test-active-states.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-225> (3)
> - *A* tests/trajectory-planner/circular-arcs/nc_files/find_dupes.sh
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-226> (9)
> - *R*
> tests/trajectory-planner/circular-arcs/nc_files/performance/sam-tail-slowdown.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-227> (0)
> - *D*
> tests/trajectory-planner/circular-arcs/nc_files/quick-tests/arc-arc-concave-convex.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-228> (12)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/quick-tests/dodecagon_0.1in.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-229> (7)
> - *D*
> tests/trajectory-planner/circular-arcs/nc_files/quick-tests/linearc-stellabee.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-230> (132)
> - *A*
> tests/trajectory-planner/circular-arcs/nc_files/spindle/g33_blend.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-231> (24)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/spindle/g33_simple.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-232> (7)
> - *A*
> tests/trajectory-planner/circular-arcs/nc_files/spindle/g95_blend.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-233> (30)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/spindle/rigidtap_test.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-234> (2)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/spindle/spindle-wait.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-235> (2)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/spindle/spiral_spindleon.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-236> (3)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/spindle/straight_spindleon.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-237> (4)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/spindle/tapping.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-238> (2)
> - *A*
> tests/trajectory-planner/circular-arcs/nc_files/test_subs/default_inch.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-239> (4)
> - *A*
> tests/trajectory-planner/circular-arcs/nc_files/test_subs/default_mm.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-240> (4)
> - *A*
> tests/trajectory-planner/circular-arcs/nc_files/test_subs/default_modal_state.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-241> (19)
> - *D*
> tests/trajectory-planner/circular-arcs/nc_files/violation_checks/spreadsheeterrors.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-242> (66)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/wz-tests/130207L.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-243> (8)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/wz-tests/130207LZW.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-244> (7)
> - *M* tests/trajectory-planner/circular-arcs/nc_files/wz-tests/xw.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-245> (12)
> - *M* tests/trajectory-planner/circular-arcs/nc_files/wz-tests/xz.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-246> (12)
> - *D* tests/trajectory-planner/circular-arcs/octave/create_3d_line.m
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-247> (62)
> - *M*
> tests/trajectory-planner/circular-arcs/octave/create_3d_random_walk.m
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-248> (105)
> - *M* tests/trajectory-planner/circular-arcs/octave/estimate_depth.m
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-249> (6)
> - *A* tests/trajectory-planner/circular-arcs/octave/ezrand.m
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-250> (4)
> - *D* tests/trajectory-planner/circular-arcs/octave/make_peak_img.m
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-251> (29)
> - *A*
> tests/trajectory-planner/circular-arcs/octave/optimal_circular_arc_accel.m
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-252> (34)
> - *A* tests/trajectory-planner/circular-arcs/octave/parallel_test.m
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-253> (10)
> - *A*
> tests/trajectory-planner/circular-arcs/octave/plot_displacement.m
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-254> (10)
> - *D* tests/trajectory-planner/circular-arcs/octave/plot_movement.m
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-255> (10)
> - *A* tests/trajectory-planner/circular-arcs/octave/plot_spindledata.m
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-256> (15)
> - *A* tests/trajectory-planner/circular-arcs/octave/plot_tcdata.m
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-257> (7)
> - *D* tests/trajectory-planner/circular-arcs/octave/process_log.m
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-258> (7)
> - *A* tests/trajectory-planner/circular-arcs/octave/test_kink_accel.m
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-259> (29)
> - *A* tests/trajectory-planner/circular-arcs/octave/test_split_cycle.m
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-260> (63)
> - *A* tests/trajectory-planner/circular-arcs/parse_tp_logs.py
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-261> (72)
> - *D* tests/trajectory-planner/circular-arcs/run_all_tests.py
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-262> (115)
> - *A* tests/trajectory-planner/circular-arcs/tp_testing_venv.cfg
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-263> (4)
> - *A*
> tests/trajectory-planner/common-config/apply_limits_to_enable.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-264> (1)
> - *A* tests/trajectory-planner/common-config/axis-A.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-265> (35)
> - *A* tests/trajectory-planner/common-config/axis-X.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-266> (35)
> - *A* tests/trajectory-planner/common-config/axis-Y.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-267> (35)
> - *A* tests/trajectory-planner/common-config/axis-Z.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-268> (34)
> - *A* tests/trajectory-planner/common-config/core_sim_components.hal
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-269> (19)
> - *A* tests/trajectory-planner/common-config/linuxcnc_control.py
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-270> (291)
> - *A*
> tests/trajectory-planner/common-config/load_constraint_components.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-271> (57)
> - *A* tests/trajectory-planner/common-config/mill_XYZA_base.ini
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-272> (177)
> - *A* tests/trajectory-planner/common-config/sim.tbl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-273> (6)
> - *A* tests/trajectory-planner/common-subs/default_inch.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-274> (4)
> - *A* tests/trajectory-planner/common-subs/default_mm.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-275> (4)
> - *A* tests/trajectory-planner/common-subs/default_modal_state.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-276> (19)
> - *M* unit_tests/greatest.h
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-277> (73)
> - *A* unit_tests/mock/mock_rtapi.inc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-278> (22)
> - *A* unit_tests/tp/gen_posemath_boilerplate.m
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-279> (23)
> - *M* unit_tests/tp/test_blendmath.c
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-280> (408)
> - *A* unit_tests/tp/test_joint_util.c
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-281> (83)
> - *A* unit_tests/tp/test_posemath.c
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-282> (507)
> - *A* unit_tests/tp/test_spherical_arc.c
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-283> (72)
>
> Patch Links:
>
> - https://github.com/LinuxCNC/linuxcnc/pull/581.patch
> - https://github.com/LinuxCNC/linuxcnc/pull/581.diff
>
> —
> You are receiving this because you are subscribed to this thread.
> Reply to this email directly, view it on GitHub
> <#581>, or mute the thread
> <https://github.com/notifications/unsubscribe-auth/AEHRGQW6VXJKJRQK2IBXT2LPTI6PTANCNFSM4HJ2Z47A>
> .
>
|
ok - maybe I should have read down more?
- canon: Enable smarter blending in spindle-synchronized motion.
sorry
…On Wed, May 1, 2019 at 10:06 PM Sam Sokolik ***@***.***> wrote:
example
https://youtu.be/ACvRilmIKDQ?t=75
On Wed, May 1, 2019 at 10:04 PM Sam Sokolik ***@***.***> wrote:
>
> - tp: disallow blending when entering position-synch mode
>
> Have not had time to play with this - but does this mean that things like
> a fuse won't work any more? (like combining a bunch of G33 commands
> together to create a variable pitch/diameter thread?
>
> On Wed, May 1, 2019 at 8:18 PM Robert W. Ellenberg <
> ***@***.***> wrote:
>
>> This branch combines a bunch of old work, and some recent fixes from
>> other branches to address some outstanding TP issues in 2.7
>>
>> Fix #68 <#68> (reduce large
>> blend arcs in G33 and prevent blends between synced and non-synced modes)
>> Fix #164 <#164> (smoother
>> error correction and better velocity estimation in position sync)
>> Fix #167 <#167> (warns users
>> if axis feeds are not fast enough for a G33 move at the current spindle
>> speed)
>> Fix #546 <#546> (Fix some
>> edge cases in TP including a regression in parabolic blend fallback)
>> Fix #550 <#550> (Fix
>> mismatch between canon and TP's idea of what a zero-length move is, since
>> they each have to arrive at that conclusion independently)
>> ------------------------------
>> You can view, comment on, or merge this pull request online at:
>>
>> #581
>> Commit Summary
>>
>> - tp: disallow blending when entering position-synch mode
>> - tp: Improve position-mode spindle sync performance with new error
>> calculation.
>> - tp: new formula for spindle position tracking
>> - sim: Add a simple component for quantizing a signal (useful for
>> simulating encoders)
>> - sim: First cut of spindle encoder simulation with quantized output
>> - canon: Add a missing forward declaration
>> - canon: Minor whitespace cleanup
>> - canon: Replace unit conversion macro with a function
>> - canon: Enable smarter blending in spindle-synchronized motion.
>> - tp: Limit max feed scale in position-sync blends.
>> - canon: Automatically limit spindle speed in spindle-sync motion.
>> - tp: Re-order checks for parabolic blends
>> - tp: Fix debug level for some debug print statements
>> - tp: Use motion's spindle-speed-in input for spindle velocity
>> - sim: Improve simulation of inertia in spindle sim
>> - tp: Add debug information for spindle sync
>> - motion: Add spindle velocity estimator
>> - motion: Refactor spindle status for clarity and organization.
>> - tp: Remove discontinuous spindle positions in rigid tapping
>> internals.
>> - tp: Fix spindle position tracking to work with motion's new
>> spindle data.
>> - motion: Add a HAL pin to motion to let users control how
>> aggressive position tracking should be.
>> - test: Test case for steady state error
>> - Re-arrange a calculation to remove a division
>> - canon: actually return angular feed rate when asked
>> - test: Match sam's lathe config settings (axis vel / acc).
>> - tp: Allow switching between position-sync algorithms based on a
>> HAL pin.
>> - sim: model velocity quantization in encoder near 360RPM
>> - canon: Simplify spindle speed limits for synced motion
>> - canon: don't restore spindle speed after limiting it for
>> spindle-synched motion.
>> - Before run, warn if spindle-synched move violates axis limits
>> - Added tracking error pin to motion HAL for spindle sync testing
>> - Make sim spindle more sluggish to make direction reversal behavior
>> easier to analyze in simulation.
>> - Fix motion's position tracking error output pin.
>> - Fix sign reversal in spindle displacement calculation causing
>> hard-stop at end of rigid tap
>> - Add debug scripts to extract spindle data from a tp log file
>> - Fix false position tracking error at spindle reversal (needed to
>> reset sync position)
>> - Increase halscope's shared ram size to collect more samples
>> - Add some missing notes
>> - Add max spindle speed check to rigid tapping and factor out some
>> common code.
>> - Fix spindle reversal calculations to avoid jitter and
>> accelerations spikes.
>> - Add some extraction scripts for TP test logs
>> - During G96, plan blends for largest possible spindle speed
>> - Only limit spindle speed during position sync, not velocity sync
>> - Add spindle-specific fields to emcmotCommand rather than reusing
>> other fields (with confusing names).
>> - Fix linking issue with signum function
>> - tp: Add some comments to clarify obscure variable names
>> - tp: When forcing a pair of motion segments to be tangent, store
>> the "kink" velocity in the previous segment.
>> - tp: Fix handling of approximate tangents and required de-rating of
>> max velocity and acceleration.
>> - tp: Fix acceleration violation due to corner case in
>> initialization of optimizer
>> - test: Add test cases for issue 546 and issue 550
>> - tp: Refactor tangential vs overall maximum acceleration lookup
>> - tp: Set flags on next segment when setting terminal condition.
>> - Fix some compiler warnings
>> - tp: Refactor circle maximum velocity / acceleration ratio
>> calculation
>> - tp: Refactor and simplify parallel / anti-parallel checks
>> - blendmath: implement unit tests for new parallel / anti-parallel
>> check functions
>> - tp: Move a pmCartesian function into blendmath for use outside of
>> tp.c
>> - tp: Reimplement sharp corner detection using new anti-parallel
>> detection
>> - tp: Factor out calculation for peak velocity over a distance.
>> - unit_test: Add "greatest" unit test framework (C, header-only
>> macro-based unit tests)
>> - tp: Compute effective radius of helix too.
>> - tp: Simplify kink acceleration calculation to handle negative
>> velocities
>> - tp: Overhaul debug output with JSON5-formatted log statements.
>> - Apply minimum displacement checks consistently between canon and
>> TP.
>> - test: Introduce some optimized configs for manual sim tests.
>> - tp: Refactor tpCheckEndCondition to isolate computation from TP
>> global state
>> - tests: Add a stripped down test case for split-cycle debugging
>> - tp: Move split cycle function to blendmath file and simplify logic
>> - Handle pure-angular moves consistently between canon and TP
>> - tp: Simplify logic in split-cycle update
>> - tp: Simplify debug output and present more useful info
>> - tp: Fix effective radius curvature formula.
>> - canon: Fix a mistaken unit conversion of normal axis unit vector
>> in circular move command
>> - tp: Use already-calculated max normal acceleration from canon for
>> optimal circle max velocity in TP
>> - tests: Add XYZ velocity plot to log parser
>> - test: Add some TP test cases for optimal circle velocity /
>> acceleration
>> - test: clean up old octave scripts and fix up broken / missing
>> functions in test code.
>> - tests: Add an ignore file for generated files from TP debugging
>> - motion: Catch and propagate failures to set TP position / velocity
>> in HAL
>> - tp: Add position mismatch check when starting a motion segment
>> - tp: Factor out accel scale calculation
>> - tp: Extend JSON5 debug output to include some spindle-sync
>> information
>> - tp: convert more debug outputs to JSON5 format
>> - tp: don't try to compute blend velocity for segments that don't
>> parabolic blend
>> - tp: Convert debug output for spiral arc length fit to JSON5
>> - test: Provide common setup subroutines and clean up old TP test
>> programs
>> - tp: Clean up some more warnings
>> - Extend blendmath unit tests to include test cases for end
>> condition check
>> - Add an inline wrapper function to extract max accel from
>> emcmotDebug
>> - tp: migrate more debug output to use new JSON5 printing
>> - Add default conditions to a TP test case
>> - tp: add some skeletal unit tests for joint_utils and spherical_arc
>> - tp: add a test for the ray intersection check
>> - tp: Clean up some pedantic warnings about default cases
>> - tp: Factor out code handling spindle-sync into a separate function
>> - posemath: Overhaul and extend unit tests
>> - canon: Fix a pedantic unused variable warning
>> - greatest: Tweak the console output to be more gcc-like
>> - posemath: Remove extraneous semicolons from definitions in posemath
>> - tp: Pedantic rename of a function to match its result
>> - tp: Remove an unnecessary special case in tangent angle check
>> - tp: Add more unit tests for blendmath
>> - unit_test: Document setup for unit test build in README
>> - Make greatest float printing more precise to help troubleshoot
>> numerical errors
>> - tp: Control new consistency checks with INI file settings to avoid
>> console spam in production
>> - tp: make TP axis limit error checks more robust
>> - tp: refactor TP functional tests to run headless
>> - tp: remove some obsolete debug output (to be replaced with unit
>> testing)
>> - test: Functional tests for TP from NGC snippets known to reproduce
>> past issues
>> - test: remove an unused config file from previous versions of test
>> configs
>> - unit_test: add some new cases for end condition check
>> - motion: Convert #defines to enums
>> - tp: hide some pedantic debug output that screws with unit tests
>> - unit_test: add an assert macro to compare PmCartesians
>> - tp: add more test cases for PmCircles with helix / spiral
>> components
>> - unit_test: convert more PmCartesian asserts to use macro rather
>> than compare function
>> - posemath: Fix pointer type mismatches in posemath error messages
>> - unit_test: convert more asserts to produce GCC-style output
>> - unit_test: Hide pedantic debug ouput by default in unit tests
>> - Fix some formatting mismatches between other branches for easier
>> merging in the future
>> - Restore a debug message in case of future issues with zero-length
>> moves
>> - Merge branch 'bugfixes-546-550-167-68-164-2.7' into 2.7
>> - tp: fix missing symbol
>> - Fix runtests for TP consistency checks
>> - canon: fix feed rate problem in arc corner case
>> - Fix formatting inconsistencies in canon
>> - canon: fix a merge / rebase error that dropped a variable rename
>> in a previous commit
>> - Fixup 80c9258: update motion-logger/basic test
>>
>> File Changes
>>
>> - *M* .gitignore
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-0> (5)
>> - *M* README
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-1> (11)
>> - *M* lib/hallib/core_sim9.hal
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-2> (3)
>> - *M* lib/hallib/sim_spindle_encoder.hal
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-3> (29)
>> - *M* lib/python/rs274/glcanon.py
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-4> (40)
>> - *M* meson.build
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-5> (46)
>> - *M* src/Makefile
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-6> (2)
>> - *M* src/emc/ini/initraj.cc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-7> (8)
>> - *M* src/emc/motion-logger/motion-logger.c
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-8> (13)
>> - *M* src/emc/motion/command.c
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-9> (126)
>> - *M* src/emc/motion/control.c
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-10> (66)
>> - *M* src/emc/motion/mot_priv.h
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-11> (6)
>> - *M* src/emc/motion/motion.c
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-12> (29)
>> - *M* src/emc/motion/motion.h
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-13> (64)
>> - *M* src/emc/motion/usrmotintf.cc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-14> (1)
>> - *M* src/emc/nml_intf/emc.cc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-15> (3)
>> - *M* src/emc/nml_intf/emc.hh
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-16> (8)
>> - *M* src/emc/nml_intf/emc_nml.hh
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-17> (6)
>> - *M* src/emc/nml_intf/emcpose.c
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-18> (42)
>> - *M* src/emc/nml_intf/emcpose.h
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-19> (4)
>> - *M* src/emc/nml_intf/interpl.hh
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-20> (2)
>> - *M* src/emc/nml_intf/motion_types.h
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-21> (19)
>> - *M* src/emc/rs274ngc/gcodemodule.cc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-22> (34)
>> - *M* src/emc/rs274ngc/interp_base.hh
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-23> (4)
>> - *M* src/emc/rs274ngc/interp_internal.hh
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-24> (1)
>> - *M* src/emc/task/emccanon.cc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-25> (384)
>> - *M* src/emc/task/emctaskmain.cc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-26> (6)
>> - *M* src/emc/task/taskintf.cc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-27> (52)
>> - *M* src/emc/tp/blendmath.c
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-28> (245)
>> - *M* src/emc/tp/blendmath.h
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-29> (25)
>> - *A* src/emc/tp/joint_util.c
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-30> (125)
>> - *A* src/emc/tp/joint_util.h
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-31> (21)
>> - *A* src/emc/tp/math_util.c
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-32> (25)
>> - *A* src/emc/tp/math_util.h
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-33> (20)
>> - *A* src/emc/tp/rtapi_json5.h
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-34> (143)
>> - *M* src/emc/tp/spherical_arc.c
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-35> (41)
>> - *M* src/emc/tp/spherical_arc.h
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-36> (4)
>> - *M* src/emc/tp/tc.c
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-37> (137)
>> - *M* src/emc/tp/tc.h
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-38> (12)
>> - *M* src/emc/tp/tc_types.h
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-39> (21)
>> - *M* src/emc/tp/tp.c
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-40> (1212)
>> - *M* src/emc/tp/tp.h
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-41> (42)
>> - *M* src/emc/tp/tp_debug.h
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-42> (38)
>> - *M* src/emc/tp/tp_types.h
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-43> (20)
>> - *M* src/emc/usr_intf/axis/scripts/axis.py
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-44> (13)
>> - *M* src/emc/usr_intf/gremlin/gremlin.py
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-45> (13)
>> - *M* src/hal/classicladder/drawing_sequential.h
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-46> (3)
>> - *M* src/hal/classicladder/files_sequential.c
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-47> (1)
>> - *M* src/hal/classicladder/sequential.h
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-48> (4)
>> - *A* src/hal/components/d2dt2.comp
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-49> (37)
>> - *A* src/hal/components/quant.comp
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-50> (29)
>> - *M* src/hal/utils/scope_rt.c
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-51> (2)
>> - *M* src/hal/utils/scope_shm.h
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-52> (2)
>> - *M* src/libnml/posemath/_posemath.c
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-53> (17)
>> - *M* src/libnml/posemath/posemath.h
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-54> (39)
>> - *M* src/rtapi/uspace_common.h
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-55> (1)
>> - *M* tests/motion-logger/basic/expected.builtin-startup.in
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-56> (1)
>> - *M* tests/motion-logger/mountaindew/expected.motion-logger
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-57> (1)
>> - *A* tests/trajectory-planner/batch-test/.gitignore
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-58> (5)
>> - *A* tests/trajectory-planner/batch-test/batch-test.ini
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-59> (7)
>> - *A* tests/trajectory-planner/batch-test/checkresult
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-60> (3)
>> - *A* tests/trajectory-planner/batch-test/headless_batch_test.py
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-61> (51)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/arc-feed/arc_maxvel_xy.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-62> (3)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/arc-feed/arc_time.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-63> (2)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/arc-feed/basic_xy.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-64> (5)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/arc-feed/full_xy.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-65> (4)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/arc-feed/full_xz.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-66> (2)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/arc-feed/full_yz.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-67> (2)
>> - *A*
>> tests/trajectory-planner/batch-test/nc_files/arc-feed/optimal_circle_acc_ratio.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-68> (19)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/arc-feed/simple_arc2.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-69> (2)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/arc-feed/simple_arc3.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-70> (2)
>> - *A*
>> tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-arc-concave-convex.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-71> (13)
>> - *A*
>> tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-arc-convex-concave.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-72> (13)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-arc-convex-convex.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-73> (2)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-arc-convex.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-74> (2)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-arc-neartangent.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-75> (2)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-arc-planeswitch.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-76> (2)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-arc-sawtooth.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-77> (22)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-arc-test.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-78> (0)
>> - *A*
>> tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-large-radii.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-79> (13)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-terminal.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-80> (3)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-with-spiral.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-81> (8)
>> - *A*
>> tests/trajectory-planner/batch-test/nc_files/arc-intersections/line-arc-burnin.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-82> (47)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/arc-intersections/linearc-convex.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-83> (4)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/arc-intersections/linearc-end-overrun.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-84> (5)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/arc-intersections/linearc.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-85> (2)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/arc-intersections/tort-sam-mach3.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-86> (5)
>> - *A*
>> tests/trajectory-planner/batch-test/nc_files/regressions/546_simplfied.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-87> (21)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/regressions/arc_vel_violation2.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-88> (0)
>> - *A*
>> tests/trajectory-planner/batch-test/nc_files/regressions/blend_arc_simple_pos_test.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-89> (12)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/regressions/bug424_long.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-90> (0)
>> - *A*
>> tests/trajectory-planner/batch-test/nc_files/regressions/bug550_short_moves.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-91> (13)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/regressions/circular_tolerance_check.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-92> (0)
>> - *A*
>> tests/trajectory-planner/batch-test/nc_files/regressions/corner_decel.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-93> (12)
>> - *A*
>> tests/trajectory-planner/batch-test/nc_files/regressions/cradek_accel_issue.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-94> (9)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/regressions/feedtest.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-95> (0)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/regressions/full_reverse.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-96> (0)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/regressions/machinekit_412.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-97> (0)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/regressions/maxvel_violation_helical.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-98> (0)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/regressions/maxvel_violation_helical2.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-99> (0)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/regressions/maxvel_violation_line.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-100> (0)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/regressions/maxvel_violation_line2.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-101> (0)
>> - *A*
>> tests/trajectory-planner/batch-test/nc_files/regressions/parabolic_bump.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-102> (10)
>> - *A*
>> tests/trajectory-planner/batch-test/nc_files/regressions/parabolic_test.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-103> (9)
>> - *A*
>> tests/trajectory-planner/batch-test/nc_files/regressions/parabolic_varying.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-104> (12)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/regressions/quick_arc.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-105> (0)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/regressions/rickg-arcs.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-106> (2)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/regressions/sam-master-violation.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-107> (0)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/regressions/sam_vel_violation.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-108> (0)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/regressions/sam_violation1.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-109> (0)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/regressions/sam_violation2.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-110> (0)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/regressions/sam_violation2_verbatim.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-111> (0)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/regressions/sam_violation3.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-112> (3)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/regressions/sam_zero_length_move.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-113> (0)
>> - *A*
>> tests/trajectory-planner/batch-test/nc_files/regressions/split-cycle-check.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-114> (515)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/regressions/stellabee-kink-test.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-115> (0)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/regressions/stellabee-violation-spirals.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-116> (0)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/regressions/stop-err.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-117> (0)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/regressions/tangent_lines_smooth.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-118> (0)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/regressions/tap-discrimant-error-orig.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-119> (2)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/regressions/tkalcevic_realtime_error.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-120> (0)
>> - *A*
>> tests/trajectory-planner/batch-test/nc_files/regressions/warnings_g81.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-121> (20)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/regressions/z_jump_tangent_improvement.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-122> (0)
>> - *A*
>> tests/trajectory-planner/batch-test/nc_files/spindle/g33_blend.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-123> (24)
>> - *A*
>> tests/trajectory-planner/batch-test/nc_files/spindle/g33_simple.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-124> (8)
>> - *A*
>> tests/trajectory-planner/batch-test/nc_files/spindle/g95_blend.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-125> (30)
>> - *A*
>> tests/trajectory-planner/batch-test/nc_files/spindle/rigidtap_test.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-126> (11)
>> - *R*
>> tests/trajectory-planner/batch-test/nc_files/spindle/spindle-wait.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-127> (2)
>> - *A*
>> tests/trajectory-planner/batch-test/nc_files/spindle/tapping.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-128> (10)
>> - *A* tests/trajectory-planner/batch-test/position.blank
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-129> (9)
>> - *A* tests/trajectory-planner/batch-test/print_load_times.py
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-130> (20)
>> - *A* tests/trajectory-planner/batch-test/sim.tbl
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-131> (1)
>> - *A* tests/trajectory-planner/batch-test/test.sh
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-132> (4)
>> - *A* tests/trajectory-planner/circular-arcs/.gitignore
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-133> (5)
>> - *A* tests/trajectory-planner/circular-arcs/README.md
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-134> (21)
>> - *M* tests/trajectory-planner/circular-arcs/build-debug.sh
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-135> (2)
>> - *M* tests/trajectory-planner/circular-arcs/build-release.sh
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-136> (4)
>> - *A* tests/trajectory-planner/circular-arcs/configs/6axis_rotary.ini
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-137> (270)
>> - *M* tests/trajectory-planner/circular-arcs/configs/9axis.ini
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-138> (82)
>> - *M* tests/trajectory-planner/circular-arcs/configs/XY.ini
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-139> (12)
>> - *M* tests/trajectory-planner/circular-arcs/configs/XYZ_fast.ini
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-140> (3)
>> - *M* tests/trajectory-planner/circular-arcs/configs/XYZ_medium.ini
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-141> (3)
>> - *M*
>> tests/trajectory-planner/circular-arcs/configs/XYZ_nospindle.ini
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-142> (4)
>> - *M* tests/trajectory-planner/circular-arcs/configs/XYZ_uneven.ini
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-143> (1)
>> - *M* tests/trajectory-planner/circular-arcs/configs/XY_slowZ.ini
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-144> (22)
>> - *D*
>> tests/trajectory-planner/circular-arcs/configs/add_hal_symlinks.sh
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-145> (3)
>> - *A*
>> tests/trajectory-planner/circular-arcs/configs/apply_limits_to_enable.tcl
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-146> (1)
>> - *R*
>> tests/trajectory-planner/circular-arcs/configs/autotest_mill_XYZA.ini
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-147> (170)
>> - *A*
>> tests/trajectory-planner/circular-arcs/configs/autotest_mill_XYZA_template.ini
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-148> (192)
>> - *M* tests/trajectory-planner/circular-arcs/configs/axis-A.tcl
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-149> (34)
>> - *A* tests/trajectory-planner/circular-arcs/configs/axis-B.tcl
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-150> (35)
>> - *A* tests/trajectory-planner/circular-arcs/configs/axis-C.tcl
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-151> (35)
>> - *A* tests/trajectory-planner/circular-arcs/configs/axis-U.tcl
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-152> (35)
>> - *A* tests/trajectory-planner/circular-arcs/configs/axis-V.tcl
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-153> (35)
>> - *A* tests/trajectory-planner/circular-arcs/configs/axis-W.tcl
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-154> (35)
>> - *M* tests/trajectory-planner/circular-arcs/configs/axis-X.tcl
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-155> (34)
>> - *M* tests/trajectory-planner/circular-arcs/configs/axis-Y.tcl
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-156> (34)
>> - *M* tests/trajectory-planner/circular-arcs/configs/axis-Z.tcl
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-157> (32)
>> - *M*
>> tests/trajectory-planner/circular-arcs/configs/axis_manualtoolchange.hal
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-158> (2)
>> - *D* tests/trajectory-planner/circular-arcs/configs/core_sim9.hal
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-159> (1)
>> - *M*
>> tests/trajectory-planner/circular-arcs/configs/core_sim_components.hal
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-160> (29)
>> - *R* tests/trajectory-planner/circular-arcs/configs/lathe_XZ.ini
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-161> (8)
>> - *A*
>> tests/trajectory-planner/circular-arcs/configs/load_constraint_components.tcl
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-162> (57)
>> - *R* tests/trajectory-planner/circular-arcs/configs/mill_XYZA.ini
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-163> (16)
>> - *A* tests/trajectory-planner/circular-arcs/configs/postgui-A.tcl
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-164> (5)
>> - *A* tests/trajectory-planner/circular-arcs/configs/postgui-B.tcl
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-165> (6)
>> - *A* tests/trajectory-planner/circular-arcs/configs/postgui-C.tcl
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-166> (5)
>> - *A* tests/trajectory-planner/circular-arcs/configs/postgui-U.tcl
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-167> (5)
>> - *A* tests/trajectory-planner/circular-arcs/configs/postgui-V.tcl
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-168> (5)
>> - *A* tests/trajectory-planner/circular-arcs/configs/postgui-W.tcl
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-169> (5)
>> - *A* tests/trajectory-planner/circular-arcs/configs/postgui-X.tcl
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-170> (5)
>> - *A* tests/trajectory-planner/circular-arcs/configs/postgui-XYZA.tcl
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-171> (5)
>> - *A*
>> tests/trajectory-planner/circular-arcs/configs/postgui-XYZABC.tcl
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-172> (3)
>> - *A*
>> tests/trajectory-planner/circular-arcs/configs/postgui-XYZABCUVW.tcl
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-173> (4)
>> - *A* tests/trajectory-planner/circular-arcs/configs/postgui-XZ.tcl
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-174> (3)
>> - *A* tests/trajectory-planner/circular-arcs/configs/postgui-Y.tcl
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-175> (5)
>> - *A* tests/trajectory-planner/circular-arcs/configs/postgui-Z.tcl
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-176> (5)
>> - *A* tests/trajectory-planner/circular-arcs/configs/postgui-base.tcl
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-177> (14)
>> - *D* tests/trajectory-planner/circular-arcs/configs/postgui.hal
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-178> (35)
>> - *A*
>> tests/trajectory-planner/circular-arcs/configs/test_XYZA_all_programs.ini
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-179> (7)
>> - *A*
>> tests/trajectory-planner/circular-arcs/configs/test_run_all_programs.py
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-180> (61)
>> - *A* tests/trajectory-planner/circular-arcs/configs/vcp-XYZA.xml
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-181> (148)
>> - *A* tests/trajectory-planner/circular-arcs/configs/vcp-XYZABC.xml
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-182> (198)
>> - *A*
>> tests/trajectory-planner/circular-arcs/configs/vcp-XYZABCUVW.xml
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-183> (273)
>> - *A* tests/trajectory-planner/circular-arcs/configs/vcp-XZ.xml
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-184> (98)
>> - *M* tests/trajectory-planner/circular-arcs/configs/vcp.xml
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-185> (249)
>> - *A* tests/trajectory-planner/circular-arcs/extract_all.sh
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-186> (7)
>> - *A* tests/trajectory-planner/circular-arcs/extract_displacement.awk
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-187> (2)
>> - *A* tests/trajectory-planner/circular-arcs/extract_spindle.awk
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-188> (1)
>> - *A* tests/trajectory-planner/circular-arcs/extract_tc_state.awk
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-189> (1)
>> - *M* tests/trajectory-planner/circular-arcs/linuxcnc_control.py
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-190> (252)
>> - *M*
>> tests/trajectory-planner/circular-arcs/nc_files/XYtests/51MeanderAve.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-191> (2)
>> - *M*
>> tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/arc-arc-concave-convex.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-192> (3)
>> - *M*
>> tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/arc-arc-convex-concave.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-193> (3)
>> - *M*
>> tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/arc-arc-convex-convex.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-194> (2)
>> - *M*
>> tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/arc-arc-convex.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-195> (2)
>> - *M*
>> tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/arc-arc-neartangent.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-196> (2)
>> - *M*
>> tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/arc-arc-planeswitch.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-197> (2)
>> - *M*
>> tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/arc-arc-sawtooth.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-198> (3)
>> - *A*
>> tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/arc-large-radii.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-199> (13)
>> - *M*
>> tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/arc-terminal.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-200> (3)
>> - *D*
>> tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/blur_torus.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-201>
>> (1905)
>> - *M*
>> tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/line-arc-burnin.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-202> (3)
>> - *M*
>> tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/linearc-convex.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-203> (4)
>> - *M*
>> tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/linearc-end-overrun.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-204> (5)
>> - *M*
>> tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/linearc-stellabee.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-205> (5)
>> - *M*
>> tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/linearc.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-206> (2)
>> - *M*
>> tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/tort-sam-mach3.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-207> (5)
>> - *D*
>> tests/trajectory-planner/circular-arcs/nc_files/auto-test/XYtests
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-208> (1)
>> - *D*
>> tests/trajectory-planner/circular-arcs/nc_files/auto-test/performance
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-209> (1)
>> - *M*
>> tests/trajectory-planner/circular-arcs/nc_files/diagnostic/abc_tangent.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-210> (2)
>> - *M*
>> tests/trajectory-planner/circular-arcs/nc_files/diagnostic/adjustment.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-211> (4)
>> - *M*
>> tests/trajectory-planner/circular-arcs/nc_files/diagnostic/arc-with-spiral.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-212> (2)
>> - *M*
>> tests/trajectory-planner/circular-arcs/nc_files/diagnostic/bad_spirals_1.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-213> (6)
>> - *M*
>> tests/trajectory-planner/circular-arcs/nc_files/diagnostic/bad_spirals_comp.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-214> (5)
>> - *M*
>> tests/trajectory-planner/circular-arcs/nc_files/diagnostic/bad_spirals_lathe.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-215> (4)
>> - *M*
>> tests/trajectory-planner/circular-arcs/nc_files/diagnostic/default_tolerance_check.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-216> (2)
>> - *M*
>> tests/trajectory-planner/circular-arcs/nc_files/diagnostic/feed-tracking-test.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-217> (3)
>> - *M*
>> tests/trajectory-planner/circular-arcs/nc_files/diagnostic/helix_slowdown.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-218> (2)
>> - *M*
>> tests/trajectory-planner/circular-arcs/nc_files/diagnostic/modal_state_test.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-219> (3)
>> - *M*
>> tests/trajectory-planner/circular-arcs/nc_files/diagnostic/parabolic_split1.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-220> (3)
>> - *M*
>> tests/trajectory-planner/circular-arcs/nc_files/diagnostic/ripple1.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-221> (4)
>> - *M*
>> tests/trajectory-planner/circular-arcs/nc_files/diagnostic/simple_blend.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-222> (2)
>> - *M*
>> tests/trajectory-planner/circular-arcs/nc_files/diagnostic/spiral_aggressive.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-223> (5)
>> - *M*
>> tests/trajectory-planner/circular-arcs/nc_files/diagnostic/tangent_check.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-224> (3)
>> - *M*
>> tests/trajectory-planner/circular-arcs/nc_files/diagnostic/test-active-states.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-225> (3)
>> - *A* tests/trajectory-planner/circular-arcs/nc_files/find_dupes.sh
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-226> (9)
>> - *R*
>> tests/trajectory-planner/circular-arcs/nc_files/performance/sam-tail-slowdown.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-227> (0)
>> - *D*
>> tests/trajectory-planner/circular-arcs/nc_files/quick-tests/arc-arc-concave-convex.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-228> (12)
>> - *M*
>> tests/trajectory-planner/circular-arcs/nc_files/quick-tests/dodecagon_0.1in.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-229> (7)
>> - *D*
>> tests/trajectory-planner/circular-arcs/nc_files/quick-tests/linearc-stellabee.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-230> (132)
>> - *A*
>> tests/trajectory-planner/circular-arcs/nc_files/spindle/g33_blend.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-231> (24)
>> - *M*
>> tests/trajectory-planner/circular-arcs/nc_files/spindle/g33_simple.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-232> (7)
>> - *A*
>> tests/trajectory-planner/circular-arcs/nc_files/spindle/g95_blend.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-233> (30)
>> - *M*
>> tests/trajectory-planner/circular-arcs/nc_files/spindle/rigidtap_test.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-234> (2)
>> - *M*
>> tests/trajectory-planner/circular-arcs/nc_files/spindle/spindle-wait.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-235> (2)
>> - *M*
>> tests/trajectory-planner/circular-arcs/nc_files/spindle/spiral_spindleon.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-236> (3)
>> - *M*
>> tests/trajectory-planner/circular-arcs/nc_files/spindle/straight_spindleon.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-237> (4)
>> - *M*
>> tests/trajectory-planner/circular-arcs/nc_files/spindle/tapping.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-238> (2)
>> - *A*
>> tests/trajectory-planner/circular-arcs/nc_files/test_subs/default_inch.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-239> (4)
>> - *A*
>> tests/trajectory-planner/circular-arcs/nc_files/test_subs/default_mm.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-240> (4)
>> - *A*
>> tests/trajectory-planner/circular-arcs/nc_files/test_subs/default_modal_state.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-241> (19)
>> - *D*
>> tests/trajectory-planner/circular-arcs/nc_files/violation_checks/spreadsheeterrors.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-242> (66)
>> - *M*
>> tests/trajectory-planner/circular-arcs/nc_files/wz-tests/130207L.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-243> (8)
>> - *M*
>> tests/trajectory-planner/circular-arcs/nc_files/wz-tests/130207LZW.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-244> (7)
>> - *M* tests/trajectory-planner/circular-arcs/nc_files/wz-tests/xw.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-245> (12)
>> - *M* tests/trajectory-planner/circular-arcs/nc_files/wz-tests/xz.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-246> (12)
>> - *D* tests/trajectory-planner/circular-arcs/octave/create_3d_line.m
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-247> (62)
>> - *M*
>> tests/trajectory-planner/circular-arcs/octave/create_3d_random_walk.m
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-248> (105)
>> - *M* tests/trajectory-planner/circular-arcs/octave/estimate_depth.m
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-249> (6)
>> - *A* tests/trajectory-planner/circular-arcs/octave/ezrand.m
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-250> (4)
>> - *D* tests/trajectory-planner/circular-arcs/octave/make_peak_img.m
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-251> (29)
>> - *A*
>> tests/trajectory-planner/circular-arcs/octave/optimal_circular_arc_accel.m
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-252> (34)
>> - *A* tests/trajectory-planner/circular-arcs/octave/parallel_test.m
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-253> (10)
>> - *A*
>> tests/trajectory-planner/circular-arcs/octave/plot_displacement.m
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-254> (10)
>> - *D* tests/trajectory-planner/circular-arcs/octave/plot_movement.m
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-255> (10)
>> - *A*
>> tests/trajectory-planner/circular-arcs/octave/plot_spindledata.m
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-256> (15)
>> - *A* tests/trajectory-planner/circular-arcs/octave/plot_tcdata.m
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-257> (7)
>> - *D* tests/trajectory-planner/circular-arcs/octave/process_log.m
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-258> (7)
>> - *A* tests/trajectory-planner/circular-arcs/octave/test_kink_accel.m
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-259> (29)
>> - *A*
>> tests/trajectory-planner/circular-arcs/octave/test_split_cycle.m
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-260> (63)
>> - *A* tests/trajectory-planner/circular-arcs/parse_tp_logs.py
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-261> (72)
>> - *D* tests/trajectory-planner/circular-arcs/run_all_tests.py
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-262> (115)
>> - *A* tests/trajectory-planner/circular-arcs/tp_testing_venv.cfg
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-263> (4)
>> - *A*
>> tests/trajectory-planner/common-config/apply_limits_to_enable.tcl
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-264> (1)
>> - *A* tests/trajectory-planner/common-config/axis-A.tcl
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-265> (35)
>> - *A* tests/trajectory-planner/common-config/axis-X.tcl
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-266> (35)
>> - *A* tests/trajectory-planner/common-config/axis-Y.tcl
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-267> (35)
>> - *A* tests/trajectory-planner/common-config/axis-Z.tcl
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-268> (34)
>> - *A* tests/trajectory-planner/common-config/core_sim_components.hal
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-269> (19)
>> - *A* tests/trajectory-planner/common-config/linuxcnc_control.py
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-270> (291)
>> - *A*
>> tests/trajectory-planner/common-config/load_constraint_components.tcl
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-271> (57)
>> - *A* tests/trajectory-planner/common-config/mill_XYZA_base.ini
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-272> (177)
>> - *A* tests/trajectory-planner/common-config/sim.tbl
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-273> (6)
>> - *A* tests/trajectory-planner/common-subs/default_inch.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-274> (4)
>> - *A* tests/trajectory-planner/common-subs/default_mm.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-275> (4)
>> - *A* tests/trajectory-planner/common-subs/default_modal_state.ngc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-276> (19)
>> - *M* unit_tests/greatest.h
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-277> (73)
>> - *A* unit_tests/mock/mock_rtapi.inc
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-278> (22)
>> - *A* unit_tests/tp/gen_posemath_boilerplate.m
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-279> (23)
>> - *M* unit_tests/tp/test_blendmath.c
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-280> (408)
>> - *A* unit_tests/tp/test_joint_util.c
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-281> (83)
>> - *A* unit_tests/tp/test_posemath.c
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-282> (507)
>> - *A* unit_tests/tp/test_spherical_arc.c
>> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-283> (72)
>>
>> Patch Links:
>>
>> - https://github.com/LinuxCNC/linuxcnc/pull/581.patch
>> - https://github.com/LinuxCNC/linuxcnc/pull/581.diff
>>
>> —
>> You are receiving this because you are subscribed to this thread.
>> Reply to this email directly, view it on GitHub
>> <#581>, or mute the thread
>> <https://github.com/notifications/unsubscribe-auth/AEHRGQW6VXJKJRQK2IBXT2LPTI6PTANCNFSM4HJ2Z47A>
>> .
>>
>
|
You should still be able to blend between position-sync moves, but the
transition in and out (i.e. G1 to G33) won't blend (since you need to wait
for index anyway).
Rob
…On Wed, May 1, 2019, 11:04 PM samcoinc ***@***.***> wrote:
- tp: disallow blending when entering position-synch mode
Have not had time to play with this - but does this mean that things like a
fuse won't work any more? (like combining a bunch of G33 commands together
to create a variable pitch/diameter thread?
On Wed, May 1, 2019 at 8:18 PM Robert W. Ellenberg <
***@***.***>
wrote:
> This branch combines a bunch of old work, and some recent fixes from
other
> branches to address some outstanding TP issues in 2.7
>
> Fix #68 <#68> (reduce large
> blend arcs in G33 and prevent blends between synced and non-synced modes)
> Fix #164 <#164> (smoother
> error correction and better velocity estimation in position sync)
> Fix #167 <#167> (warns users
> if axis feeds are not fast enough for a G33 move at the current spindle
> speed)
> Fix #546 <#546> (Fix some
edge
> cases in TP including a regression in parabolic blend fallback)
> Fix #550 <#550> (Fix mismatch
> between canon and TP's idea of what a zero-length move is, since they
each
> have to arrive at that conclusion independently)
> ------------------------------
> You can view, comment on, or merge this pull request online at:
>
> #581
> Commit Summary
>
> - tp: disallow blending when entering position-synch mode
> - tp: Improve position-mode spindle sync performance with new error
> calculation.
> - tp: new formula for spindle position tracking
> - sim: Add a simple component for quantizing a signal (useful for
> simulating encoders)
> - sim: First cut of spindle encoder simulation with quantized output
> - canon: Add a missing forward declaration
> - canon: Minor whitespace cleanup
> - canon: Replace unit conversion macro with a function
> - canon: Enable smarter blending in spindle-synchronized motion.
> - tp: Limit max feed scale in position-sync blends.
> - canon: Automatically limit spindle speed in spindle-sync motion.
> - tp: Re-order checks for parabolic blends
> - tp: Fix debug level for some debug print statements
> - tp: Use motion's spindle-speed-in input for spindle velocity
> - sim: Improve simulation of inertia in spindle sim
> - tp: Add debug information for spindle sync
> - motion: Add spindle velocity estimator
> - motion: Refactor spindle status for clarity and organization.
> - tp: Remove discontinuous spindle positions in rigid tapping
> internals.
> - tp: Fix spindle position tracking to work with motion's new spindle
> data.
> - motion: Add a HAL pin to motion to let users control how aggressive
> position tracking should be.
> - test: Test case for steady state error
> - Re-arrange a calculation to remove a division
> - canon: actually return angular feed rate when asked
> - test: Match sam's lathe config settings (axis vel / acc).
> - tp: Allow switching between position-sync algorithms based on a HAL
> pin.
> - sim: model velocity quantization in encoder near 360RPM
> - canon: Simplify spindle speed limits for synced motion
> - canon: don't restore spindle speed after limiting it for
> spindle-synched motion.
> - Before run, warn if spindle-synched move violates axis limits
> - Added tracking error pin to motion HAL for spindle sync testing
> - Make sim spindle more sluggish to make direction reversal behavior
> easier to analyze in simulation.
> - Fix motion's position tracking error output pin.
> - Fix sign reversal in spindle displacement calculation causing
> hard-stop at end of rigid tap
> - Add debug scripts to extract spindle data from a tp log file
> - Fix false position tracking error at spindle reversal (needed to
> reset sync position)
> - Increase halscope's shared ram size to collect more samples
> - Add some missing notes
> - Add max spindle speed check to rigid tapping and factor out some
> common code.
> - Fix spindle reversal calculations to avoid jitter and accelerations
> spikes.
> - Add some extraction scripts for TP test logs
> - During G96, plan blends for largest possible spindle speed
> - Only limit spindle speed during position sync, not velocity sync
> - Add spindle-specific fields to emcmotCommand rather than reusing
> other fields (with confusing names).
> - Fix linking issue with signum function
> - tp: Add some comments to clarify obscure variable names
> - tp: When forcing a pair of motion segments to be tangent, store the
> "kink" velocity in the previous segment.
> - tp: Fix handling of approximate tangents and required de-rating of
> max velocity and acceleration.
> - tp: Fix acceleration violation due to corner case in initialization
> of optimizer
> - test: Add test cases for issue 546 and issue 550
> - tp: Refactor tangential vs overall maximum acceleration lookup
> - tp: Set flags on next segment when setting terminal condition.
> - Fix some compiler warnings
> - tp: Refactor circle maximum velocity / acceleration ratio calculation
> - tp: Refactor and simplify parallel / anti-parallel checks
> - blendmath: implement unit tests for new parallel / anti-parallel
> check functions
> - tp: Move a pmCartesian function into blendmath for use outside of
> tp.c
> - tp: Reimplement sharp corner detection using new anti-parallel
> detection
> - tp: Factor out calculation for peak velocity over a distance.
> - unit_test: Add "greatest" unit test framework (C, header-only
> macro-based unit tests)
> - tp: Compute effective radius of helix too.
> - tp: Simplify kink acceleration calculation to handle negative
> velocities
> - tp: Overhaul debug output with JSON5-formatted log statements.
> - Apply minimum displacement checks consistently between canon and TP.
> - test: Introduce some optimized configs for manual sim tests.
> - tp: Refactor tpCheckEndCondition to isolate computation from TP
> global state
> - tests: Add a stripped down test case for split-cycle debugging
> - tp: Move split cycle function to blendmath file and simplify logic
> - Handle pure-angular moves consistently between canon and TP
> - tp: Simplify logic in split-cycle update
> - tp: Simplify debug output and present more useful info
> - tp: Fix effective radius curvature formula.
> - canon: Fix a mistaken unit conversion of normal axis unit vector in
> circular move command
> - tp: Use already-calculated max normal acceleration from canon for
> optimal circle max velocity in TP
> - tests: Add XYZ velocity plot to log parser
> - test: Add some TP test cases for optimal circle velocity /
> acceleration
> - test: clean up old octave scripts and fix up broken / missing
> functions in test code.
> - tests: Add an ignore file for generated files from TP debugging
> - motion: Catch and propagate failures to set TP position / velocity
> in HAL
> - tp: Add position mismatch check when starting a motion segment
> - tp: Factor out accel scale calculation
> - tp: Extend JSON5 debug output to include some spindle-sync
> information
> - tp: convert more debug outputs to JSON5 format
> - tp: don't try to compute blend velocity for segments that don't
> parabolic blend
> - tp: Convert debug output for spiral arc length fit to JSON5
> - test: Provide common setup subroutines and clean up old TP test
> programs
> - tp: Clean up some more warnings
> - Extend blendmath unit tests to include test cases for end condition
> check
> - Add an inline wrapper function to extract max accel from emcmotDebug
> - tp: migrate more debug output to use new JSON5 printing
> - Add default conditions to a TP test case
> - tp: add some skeletal unit tests for joint_utils and spherical_arc
> - tp: add a test for the ray intersection check
> - tp: Clean up some pedantic warnings about default cases
> - tp: Factor out code handling spindle-sync into a separate function
> - posemath: Overhaul and extend unit tests
> - canon: Fix a pedantic unused variable warning
> - greatest: Tweak the console output to be more gcc-like
> - posemath: Remove extraneous semicolons from definitions in posemath
> - tp: Pedantic rename of a function to match its result
> - tp: Remove an unnecessary special case in tangent angle check
> - tp: Add more unit tests for blendmath
> - unit_test: Document setup for unit test build in README
> - Make greatest float printing more precise to help troubleshoot
> numerical errors
> - tp: Control new consistency checks with INI file settings to avoid
> console spam in production
> - tp: make TP axis limit error checks more robust
> - tp: refactor TP functional tests to run headless
> - tp: remove some obsolete debug output (to be replaced with unit
> testing)
> - test: Functional tests for TP from NGC snippets known to reproduce
> past issues
> - test: remove an unused config file from previous versions of test
> configs
> - unit_test: add some new cases for end condition check
> - motion: Convert #defines to enums
> - tp: hide some pedantic debug output that screws with unit tests
> - unit_test: add an assert macro to compare PmCartesians
> - tp: add more test cases for PmCircles with helix / spiral components
> - unit_test: convert more PmCartesian asserts to use macro rather than
> compare function
> - posemath: Fix pointer type mismatches in posemath error messages
> - unit_test: convert more asserts to produce GCC-style output
> - unit_test: Hide pedantic debug ouput by default in unit tests
> - Fix some formatting mismatches between other branches for easier
> merging in the future
> - Restore a debug message in case of future issues with zero-length
> moves
> - Merge branch 'bugfixes-546-550-167-68-164-2.7' into 2.7
> - tp: fix missing symbol
> - Fix runtests for TP consistency checks
> - canon: fix feed rate problem in arc corner case
> - Fix formatting inconsistencies in canon
> - canon: fix a merge / rebase error that dropped a variable rename in
> a previous commit
> - Fixup 80c9258: update motion-logger/basic test
>
> File Changes
>
> - *M* .gitignore
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-0> (5)
> - *M* README
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-1> (11)
> - *M* lib/hallib/core_sim9.hal
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-2> (3)
> - *M* lib/hallib/sim_spindle_encoder.hal
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-3> (29)
> - *M* lib/python/rs274/glcanon.py
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-4> (40)
> - *M* meson.build
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-5> (46)
> - *M* src/Makefile
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-6> (2)
> - *M* src/emc/ini/initraj.cc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-7> (8)
> - *M* src/emc/motion-logger/motion-logger.c
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-8> (13)
> - *M* src/emc/motion/command.c
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-9> (126)
> - *M* src/emc/motion/control.c
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-10> (66)
> - *M* src/emc/motion/mot_priv.h
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-11> (6)
> - *M* src/emc/motion/motion.c
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-12> (29)
> - *M* src/emc/motion/motion.h
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-13> (64)
> - *M* src/emc/motion/usrmotintf.cc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-14> (1)
> - *M* src/emc/nml_intf/emc.cc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-15> (3)
> - *M* src/emc/nml_intf/emc.hh
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-16> (8)
> - *M* src/emc/nml_intf/emc_nml.hh
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-17> (6)
> - *M* src/emc/nml_intf/emcpose.c
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-18> (42)
> - *M* src/emc/nml_intf/emcpose.h
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-19> (4)
> - *M* src/emc/nml_intf/interpl.hh
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-20> (2)
> - *M* src/emc/nml_intf/motion_types.h
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-21> (19)
> - *M* src/emc/rs274ngc/gcodemodule.cc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-22> (34)
> - *M* src/emc/rs274ngc/interp_base.hh
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-23> (4)
> - *M* src/emc/rs274ngc/interp_internal.hh
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-24> (1)
> - *M* src/emc/task/emccanon.cc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-25> (384)
> - *M* src/emc/task/emctaskmain.cc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-26> (6)
> - *M* src/emc/task/taskintf.cc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-27> (52)
> - *M* src/emc/tp/blendmath.c
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-28> (245)
> - *M* src/emc/tp/blendmath.h
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-29> (25)
> - *A* src/emc/tp/joint_util.c
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-30> (125)
> - *A* src/emc/tp/joint_util.h
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-31> (21)
> - *A* src/emc/tp/math_util.c
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-32> (25)
> - *A* src/emc/tp/math_util.h
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-33> (20)
> - *A* src/emc/tp/rtapi_json5.h
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-34> (143)
> - *M* src/emc/tp/spherical_arc.c
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-35> (41)
> - *M* src/emc/tp/spherical_arc.h
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-36> (4)
> - *M* src/emc/tp/tc.c
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-37> (137)
> - *M* src/emc/tp/tc.h
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-38> (12)
> - *M* src/emc/tp/tc_types.h
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-39> (21)
> - *M* src/emc/tp/tp.c
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-40> (1212)
> - *M* src/emc/tp/tp.h
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-41> (42)
> - *M* src/emc/tp/tp_debug.h
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-42> (38)
> - *M* src/emc/tp/tp_types.h
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-43> (20)
> - *M* src/emc/usr_intf/axis/scripts/axis.py
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-44> (13)
> - *M* src/emc/usr_intf/gremlin/gremlin.py
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-45> (13)
> - *M* src/hal/classicladder/drawing_sequential.h
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-46> (3)
> - *M* src/hal/classicladder/files_sequential.c
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-47> (1)
> - *M* src/hal/classicladder/sequential.h
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-48> (4)
> - *A* src/hal/components/d2dt2.comp
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-49> (37)
> - *A* src/hal/components/quant.comp
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-50> (29)
> - *M* src/hal/utils/scope_rt.c
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-51> (2)
> - *M* src/hal/utils/scope_shm.h
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-52> (2)
> - *M* src/libnml/posemath/_posemath.c
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-53> (17)
> - *M* src/libnml/posemath/posemath.h
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-54> (39)
> - *M* src/rtapi/uspace_common.h
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-55> (1)
> - *M* tests/motion-logger/basic/expected.builtin-startup.in
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-56> (1)
> - *M* tests/motion-logger/mountaindew/expected.motion-logger
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-57> (1)
> - *A* tests/trajectory-planner/batch-test/.gitignore
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-58> (5)
> - *A* tests/trajectory-planner/batch-test/batch-test.ini
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-59> (7)
> - *A* tests/trajectory-planner/batch-test/checkresult
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-60> (3)
> - *A* tests/trajectory-planner/batch-test/headless_batch_test.py
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-61> (51)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/arc-feed/arc_maxvel_xy.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-62> (3)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/arc-feed/arc_time.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-63> (2)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/arc-feed/basic_xy.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-64> (5)
> - *R* tests/trajectory-planner/batch-test/nc_files/arc-feed/full_xy.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-65> (4)
> - *R* tests/trajectory-planner/batch-test/nc_files/arc-feed/full_xz.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-66> (2)
> - *R* tests/trajectory-planner/batch-test/nc_files/arc-feed/full_yz.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-67> (2)
> - *A*
>
tests/trajectory-planner/batch-test/nc_files/arc-feed/optimal_circle_acc_ratio.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-68> (19)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/arc-feed/simple_arc2.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-69> (2)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/arc-feed/simple_arc3.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-70> (2)
> - *A*
>
tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-arc-concave-convex.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-71> (13)
> - *A*
>
tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-arc-convex-concave.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-72> (13)
> - *R*
>
tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-arc-convex-convex.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-73> (2)
> - *R*
>
tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-arc-convex.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-74> (2)
> - *R*
>
tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-arc-neartangent.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-75> (2)
> - *R*
>
tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-arc-planeswitch.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-76> (2)
> - *R*
>
tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-arc-sawtooth.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-77> (22)
> - *R*
>
tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-arc-test.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-78> (0)
> - *A*
>
tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-large-radii.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-79> (13)
> - *R*
>
tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-terminal.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-80> (3)
> - *R*
>
tests/trajectory-planner/batch-test/nc_files/arc-intersections/arc-with-spiral.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-81> (8)
> - *A*
>
tests/trajectory-planner/batch-test/nc_files/arc-intersections/line-arc-burnin.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-82> (47)
> - *R*
>
tests/trajectory-planner/batch-test/nc_files/arc-intersections/linearc-convex.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-83> (4)
> - *R*
>
tests/trajectory-planner/batch-test/nc_files/arc-intersections/linearc-end-overrun.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-84> (5)
> - *R*
>
tests/trajectory-planner/batch-test/nc_files/arc-intersections/linearc.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-85> (2)
> - *R*
>
tests/trajectory-planner/batch-test/nc_files/arc-intersections/tort-sam-mach3.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-86> (5)
> - *A*
>
tests/trajectory-planner/batch-test/nc_files/regressions/546_simplfied.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-87> (21)
> - *R*
>
tests/trajectory-planner/batch-test/nc_files/regressions/arc_vel_violation2.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-88> (0)
> - *A*
>
tests/trajectory-planner/batch-test/nc_files/regressions/blend_arc_simple_pos_test.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-89> (12)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/regressions/bug424_long.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-90> (0)
> - *A*
>
tests/trajectory-planner/batch-test/nc_files/regressions/bug550_short_moves.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-91> (13)
> - *R*
>
tests/trajectory-planner/batch-test/nc_files/regressions/circular_tolerance_check.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-92> (0)
> - *A*
> tests/trajectory-planner/batch-test/nc_files/regressions/corner_decel.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-93> (12)
> - *A*
>
tests/trajectory-planner/batch-test/nc_files/regressions/cradek_accel_issue.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-94> (9)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/regressions/feedtest.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-95> (0)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/regressions/full_reverse.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-96> (0)
> - *R*
>
tests/trajectory-planner/batch-test/nc_files/regressions/machinekit_412.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-97> (0)
> - *R*
>
tests/trajectory-planner/batch-test/nc_files/regressions/maxvel_violation_helical.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-98> (0)
> - *R*
>
tests/trajectory-planner/batch-test/nc_files/regressions/maxvel_violation_helical2.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-99> (0)
> - *R*
>
tests/trajectory-planner/batch-test/nc_files/regressions/maxvel_violation_line.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-100> (0)
> - *R*
>
tests/trajectory-planner/batch-test/nc_files/regressions/maxvel_violation_line2.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-101> (0)
> - *A*
>
tests/trajectory-planner/batch-test/nc_files/regressions/parabolic_bump.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-102> (10)
> - *A*
>
tests/trajectory-planner/batch-test/nc_files/regressions/parabolic_test.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-103> (9)
> - *A*
>
tests/trajectory-planner/batch-test/nc_files/regressions/parabolic_varying.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-104> (12)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/regressions/quick_arc.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-105> (0)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/regressions/rickg-arcs.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-106> (2)
> - *R*
>
tests/trajectory-planner/batch-test/nc_files/regressions/sam-master-violation.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-107> (0)
> - *R*
>
tests/trajectory-planner/batch-test/nc_files/regressions/sam_vel_violation.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-108> (0)
> - *R*
>
tests/trajectory-planner/batch-test/nc_files/regressions/sam_violation1.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-109> (0)
> - *R*
>
tests/trajectory-planner/batch-test/nc_files/regressions/sam_violation2.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-110> (0)
> - *R*
>
tests/trajectory-planner/batch-test/nc_files/regressions/sam_violation2_verbatim.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-111> (0)
> - *R*
>
tests/trajectory-planner/batch-test/nc_files/regressions/sam_violation3.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-112> (3)
> - *R*
>
tests/trajectory-planner/batch-test/nc_files/regressions/sam_zero_length_move.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-113> (0)
> - *A*
>
tests/trajectory-planner/batch-test/nc_files/regressions/split-cycle-check.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-114> (515)
> - *R*
>
tests/trajectory-planner/batch-test/nc_files/regressions/stellabee-kink-test.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-115> (0)
> - *R*
>
tests/trajectory-planner/batch-test/nc_files/regressions/stellabee-violation-spirals.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-116> (0)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/regressions/stop-err.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-117> (0)
> - *R*
>
tests/trajectory-planner/batch-test/nc_files/regressions/tangent_lines_smooth.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-118> (0)
> - *R*
>
tests/trajectory-planner/batch-test/nc_files/regressions/tap-discrimant-error-orig.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-119> (2)
> - *R*
>
tests/trajectory-planner/batch-test/nc_files/regressions/tkalcevic_realtime_error.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-120> (0)
> - *A*
> tests/trajectory-planner/batch-test/nc_files/regressions/warnings_g81.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-121> (20)
> - *R*
>
tests/trajectory-planner/batch-test/nc_files/regressions/z_jump_tangent_improvement.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-122> (0)
> - *A*
> tests/trajectory-planner/batch-test/nc_files/spindle/g33_blend.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-123> (24)
> - *A*
> tests/trajectory-planner/batch-test/nc_files/spindle/g33_simple.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-124> (8)
> - *A*
> tests/trajectory-planner/batch-test/nc_files/spindle/g95_blend.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-125> (30)
> - *A*
> tests/trajectory-planner/batch-test/nc_files/spindle/rigidtap_test.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-126> (11)
> - *R*
> tests/trajectory-planner/batch-test/nc_files/spindle/spindle-wait.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-127> (2)
> - *A* tests/trajectory-planner/batch-test/nc_files/spindle/tapping.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-128> (10)
> - *A* tests/trajectory-planner/batch-test/position.blank
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-129> (9)
> - *A* tests/trajectory-planner/batch-test/print_load_times.py
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-130> (20)
> - *A* tests/trajectory-planner/batch-test/sim.tbl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-131> (1)
> - *A* tests/trajectory-planner/batch-test/test.sh
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-132> (4)
> - *A* tests/trajectory-planner/circular-arcs/.gitignore
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-133> (5)
> - *A* tests/trajectory-planner/circular-arcs/README.md
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-134> (21)
> - *M* tests/trajectory-planner/circular-arcs/build-debug.sh
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-135> (2)
> - *M* tests/trajectory-planner/circular-arcs/build-release.sh
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-136> (4)
> - *A* tests/trajectory-planner/circular-arcs/configs/6axis_rotary.ini
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-137> (270)
> - *M* tests/trajectory-planner/circular-arcs/configs/9axis.ini
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-138> (82)
> - *M* tests/trajectory-planner/circular-arcs/configs/XY.ini
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-139> (12)
> - *M* tests/trajectory-planner/circular-arcs/configs/XYZ_fast.ini
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-140> (3)
> - *M* tests/trajectory-planner/circular-arcs/configs/XYZ_medium.ini
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-141> (3)
> - *M* tests/trajectory-planner/circular-arcs/configs/XYZ_nospindle.ini
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-142> (4)
> - *M* tests/trajectory-planner/circular-arcs/configs/XYZ_uneven.ini
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-143> (1)
> - *M* tests/trajectory-planner/circular-arcs/configs/XY_slowZ.ini
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-144> (22)
> - *D*
> tests/trajectory-planner/circular-arcs/configs/add_hal_symlinks.sh
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-145> (3)
> - *A*
> tests/trajectory-planner/circular-arcs/configs/apply_limits_to_enable.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-146> (1)
> - *R*
> tests/trajectory-planner/circular-arcs/configs/autotest_mill_XYZA.ini
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-147> (170)
> - *A*
>
tests/trajectory-planner/circular-arcs/configs/autotest_mill_XYZA_template.ini
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-148> (192)
> - *M* tests/trajectory-planner/circular-arcs/configs/axis-A.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-149> (34)
> - *A* tests/trajectory-planner/circular-arcs/configs/axis-B.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-150> (35)
> - *A* tests/trajectory-planner/circular-arcs/configs/axis-C.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-151> (35)
> - *A* tests/trajectory-planner/circular-arcs/configs/axis-U.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-152> (35)
> - *A* tests/trajectory-planner/circular-arcs/configs/axis-V.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-153> (35)
> - *A* tests/trajectory-planner/circular-arcs/configs/axis-W.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-154> (35)
> - *M* tests/trajectory-planner/circular-arcs/configs/axis-X.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-155> (34)
> - *M* tests/trajectory-planner/circular-arcs/configs/axis-Y.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-156> (34)
> - *M* tests/trajectory-planner/circular-arcs/configs/axis-Z.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-157> (32)
> - *M*
> tests/trajectory-planner/circular-arcs/configs/axis_manualtoolchange.hal
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-158> (2)
> - *D* tests/trajectory-planner/circular-arcs/configs/core_sim9.hal
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-159> (1)
> - *M*
> tests/trajectory-planner/circular-arcs/configs/core_sim_components.hal
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-160> (29)
> - *R* tests/trajectory-planner/circular-arcs/configs/lathe_XZ.ini
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-161> (8)
> - *A*
>
tests/trajectory-planner/circular-arcs/configs/load_constraint_components.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-162> (57)
> - *R* tests/trajectory-planner/circular-arcs/configs/mill_XYZA.ini
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-163> (16)
> - *A* tests/trajectory-planner/circular-arcs/configs/postgui-A.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-164> (5)
> - *A* tests/trajectory-planner/circular-arcs/configs/postgui-B.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-165> (6)
> - *A* tests/trajectory-planner/circular-arcs/configs/postgui-C.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-166> (5)
> - *A* tests/trajectory-planner/circular-arcs/configs/postgui-U.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-167> (5)
> - *A* tests/trajectory-planner/circular-arcs/configs/postgui-V.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-168> (5)
> - *A* tests/trajectory-planner/circular-arcs/configs/postgui-W.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-169> (5)
> - *A* tests/trajectory-planner/circular-arcs/configs/postgui-X.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-170> (5)
> - *A* tests/trajectory-planner/circular-arcs/configs/postgui-XYZA.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-171> (5)
> - *A* tests/trajectory-planner/circular-arcs/configs/postgui-XYZABC.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-172> (3)
> - *A*
> tests/trajectory-planner/circular-arcs/configs/postgui-XYZABCUVW.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-173> (4)
> - *A* tests/trajectory-planner/circular-arcs/configs/postgui-XZ.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-174> (3)
> - *A* tests/trajectory-planner/circular-arcs/configs/postgui-Y.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-175> (5)
> - *A* tests/trajectory-planner/circular-arcs/configs/postgui-Z.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-176> (5)
> - *A* tests/trajectory-planner/circular-arcs/configs/postgui-base.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-177> (14)
> - *D* tests/trajectory-planner/circular-arcs/configs/postgui.hal
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-178> (35)
> - *A*
> tests/trajectory-planner/circular-arcs/configs/test_XYZA_all_programs.ini
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-179> (7)
> - *A*
> tests/trajectory-planner/circular-arcs/configs/test_run_all_programs.py
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-180> (61)
> - *A* tests/trajectory-planner/circular-arcs/configs/vcp-XYZA.xml
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-181> (148)
> - *A* tests/trajectory-planner/circular-arcs/configs/vcp-XYZABC.xml
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-182> (198)
> - *A* tests/trajectory-planner/circular-arcs/configs/vcp-XYZABCUVW.xml
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-183> (273)
> - *A* tests/trajectory-planner/circular-arcs/configs/vcp-XZ.xml
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-184> (98)
> - *M* tests/trajectory-planner/circular-arcs/configs/vcp.xml
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-185> (249)
> - *A* tests/trajectory-planner/circular-arcs/extract_all.sh
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-186> (7)
> - *A* tests/trajectory-planner/circular-arcs/extract_displacement.awk
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-187> (2)
> - *A* tests/trajectory-planner/circular-arcs/extract_spindle.awk
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-188> (1)
> - *A* tests/trajectory-planner/circular-arcs/extract_tc_state.awk
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-189> (1)
> - *M* tests/trajectory-planner/circular-arcs/linuxcnc_control.py
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-190> (252)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/XYtests/51MeanderAve.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-191> (2)
> - *M*
>
tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/arc-arc-concave-convex.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-192> (3)
> - *M*
>
tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/arc-arc-convex-concave.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-193> (3)
> - *M*
>
tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/arc-arc-convex-convex.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-194> (2)
> - *M*
>
tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/arc-arc-convex.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-195> (2)
> - *M*
>
tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/arc-arc-neartangent.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-196> (2)
> - *M*
>
tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/arc-arc-planeswitch.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-197> (2)
> - *M*
>
tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/arc-arc-sawtooth.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-198> (3)
> - *A*
>
tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/arc-large-radii.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-199> (13)
> - *M*
>
tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/arc-terminal.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-200> (3)
> - *D*
>
tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/blur_torus.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-201> (1905)
> - *M*
>
tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/line-arc-burnin.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-202> (3)
> - *M*
>
tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/linearc-convex.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-203> (4)
> - *M*
>
tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/linearc-end-overrun.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-204> (5)
> - *M*
>
tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/linearc-stellabee.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-205> (5)
> - *M*
>
tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/linearc.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-206> (2)
> - *M*
>
tests/trajectory-planner/circular-arcs/nc_files/arc-intersections/tort-sam-mach3.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-207> (5)
> - *D* tests/trajectory-planner/circular-arcs/nc_files/auto-test/XYtests
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-208> (1)
> - *D*
> tests/trajectory-planner/circular-arcs/nc_files/auto-test/performance
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-209> (1)
> - *M*
>
tests/trajectory-planner/circular-arcs/nc_files/diagnostic/abc_tangent.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-210> (2)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/diagnostic/adjustment.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-211> (4)
> - *M*
>
tests/trajectory-planner/circular-arcs/nc_files/diagnostic/arc-with-spiral.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-212> (2)
> - *M*
>
tests/trajectory-planner/circular-arcs/nc_files/diagnostic/bad_spirals_1.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-213> (6)
> - *M*
>
tests/trajectory-planner/circular-arcs/nc_files/diagnostic/bad_spirals_comp.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-214> (5)
> - *M*
>
tests/trajectory-planner/circular-arcs/nc_files/diagnostic/bad_spirals_lathe.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-215> (4)
> - *M*
>
tests/trajectory-planner/circular-arcs/nc_files/diagnostic/default_tolerance_check.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-216> (2)
> - *M*
>
tests/trajectory-planner/circular-arcs/nc_files/diagnostic/feed-tracking-test.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-217> (3)
> - *M*
>
tests/trajectory-planner/circular-arcs/nc_files/diagnostic/helix_slowdown.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-218> (2)
> - *M*
>
tests/trajectory-planner/circular-arcs/nc_files/diagnostic/modal_state_test.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-219> (3)
> - *M*
>
tests/trajectory-planner/circular-arcs/nc_files/diagnostic/parabolic_split1.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-220> (3)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/diagnostic/ripple1.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-221> (4)
> - *M*
>
tests/trajectory-planner/circular-arcs/nc_files/diagnostic/simple_blend.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-222> (2)
> - *M*
>
tests/trajectory-planner/circular-arcs/nc_files/diagnostic/spiral_aggressive.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-223> (5)
> - *M*
>
tests/trajectory-planner/circular-arcs/nc_files/diagnostic/tangent_check.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-224> (3)
> - *M*
>
tests/trajectory-planner/circular-arcs/nc_files/diagnostic/test-active-states.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-225> (3)
> - *A* tests/trajectory-planner/circular-arcs/nc_files/find_dupes.sh
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-226> (9)
> - *R*
>
tests/trajectory-planner/circular-arcs/nc_files/performance/sam-tail-slowdown.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-227> (0)
> - *D*
>
tests/trajectory-planner/circular-arcs/nc_files/quick-tests/arc-arc-concave-convex.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-228> (12)
> - *M*
>
tests/trajectory-planner/circular-arcs/nc_files/quick-tests/dodecagon_0.1in.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-229> (7)
> - *D*
>
tests/trajectory-planner/circular-arcs/nc_files/quick-tests/linearc-stellabee.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-230> (132)
> - *A*
> tests/trajectory-planner/circular-arcs/nc_files/spindle/g33_blend.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-231> (24)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/spindle/g33_simple.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-232> (7)
> - *A*
> tests/trajectory-planner/circular-arcs/nc_files/spindle/g95_blend.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-233> (30)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/spindle/rigidtap_test.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-234> (2)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/spindle/spindle-wait.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-235> (2)
> - *M*
>
tests/trajectory-planner/circular-arcs/nc_files/spindle/spiral_spindleon.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-236> (3)
> - *M*
>
tests/trajectory-planner/circular-arcs/nc_files/spindle/straight_spindleon.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-237> (4)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/spindle/tapping.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-238> (2)
> - *A*
>
tests/trajectory-planner/circular-arcs/nc_files/test_subs/default_inch.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-239> (4)
> - *A*
> tests/trajectory-planner/circular-arcs/nc_files/test_subs/default_mm.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-240> (4)
> - *A*
>
tests/trajectory-planner/circular-arcs/nc_files/test_subs/default_modal_state.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-241> (19)
> - *D*
>
tests/trajectory-planner/circular-arcs/nc_files/violation_checks/spreadsheeterrors.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-242> (66)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/wz-tests/130207L.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-243> (8)
> - *M*
> tests/trajectory-planner/circular-arcs/nc_files/wz-tests/130207LZW.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-244> (7)
> - *M* tests/trajectory-planner/circular-arcs/nc_files/wz-tests/xw.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-245> (12)
> - *M* tests/trajectory-planner/circular-arcs/nc_files/wz-tests/xz.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-246> (12)
> - *D* tests/trajectory-planner/circular-arcs/octave/create_3d_line.m
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-247> (62)
> - *M*
> tests/trajectory-planner/circular-arcs/octave/create_3d_random_walk.m
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-248> (105)
> - *M* tests/trajectory-planner/circular-arcs/octave/estimate_depth.m
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-249> (6)
> - *A* tests/trajectory-planner/circular-arcs/octave/ezrand.m
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-250> (4)
> - *D* tests/trajectory-planner/circular-arcs/octave/make_peak_img.m
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-251> (29)
> - *A*
>
tests/trajectory-planner/circular-arcs/octave/optimal_circular_arc_accel.m
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-252> (34)
> - *A* tests/trajectory-planner/circular-arcs/octave/parallel_test.m
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-253> (10)
> - *A* tests/trajectory-planner/circular-arcs/octave/plot_displacement.m
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-254> (10)
> - *D* tests/trajectory-planner/circular-arcs/octave/plot_movement.m
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-255> (10)
> - *A* tests/trajectory-planner/circular-arcs/octave/plot_spindledata.m
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-256> (15)
> - *A* tests/trajectory-planner/circular-arcs/octave/plot_tcdata.m
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-257> (7)
> - *D* tests/trajectory-planner/circular-arcs/octave/process_log.m
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-258> (7)
> - *A* tests/trajectory-planner/circular-arcs/octave/test_kink_accel.m
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-259> (29)
> - *A* tests/trajectory-planner/circular-arcs/octave/test_split_cycle.m
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-260> (63)
> - *A* tests/trajectory-planner/circular-arcs/parse_tp_logs.py
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-261> (72)
> - *D* tests/trajectory-planner/circular-arcs/run_all_tests.py
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-262> (115)
> - *A* tests/trajectory-planner/circular-arcs/tp_testing_venv.cfg
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-263> (4)
> - *A* tests/trajectory-planner/common-config/apply_limits_to_enable.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-264> (1)
> - *A* tests/trajectory-planner/common-config/axis-A.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-265> (35)
> - *A* tests/trajectory-planner/common-config/axis-X.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-266> (35)
> - *A* tests/trajectory-planner/common-config/axis-Y.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-267> (35)
> - *A* tests/trajectory-planner/common-config/axis-Z.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-268> (34)
> - *A* tests/trajectory-planner/common-config/core_sim_components.hal
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-269> (19)
> - *A* tests/trajectory-planner/common-config/linuxcnc_control.py
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-270> (291)
> - *A*
> tests/trajectory-planner/common-config/load_constraint_components.tcl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-271> (57)
> - *A* tests/trajectory-planner/common-config/mill_XYZA_base.ini
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-272> (177)
> - *A* tests/trajectory-planner/common-config/sim.tbl
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-273> (6)
> - *A* tests/trajectory-planner/common-subs/default_inch.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-274> (4)
> - *A* tests/trajectory-planner/common-subs/default_mm.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-275> (4)
> - *A* tests/trajectory-planner/common-subs/default_modal_state.ngc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-276> (19)
> - *M* unit_tests/greatest.h
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-277> (73)
> - *A* unit_tests/mock/mock_rtapi.inc
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-278> (22)
> - *A* unit_tests/tp/gen_posemath_boilerplate.m
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-279> (23)
> - *M* unit_tests/tp/test_blendmath.c
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-280> (408)
> - *A* unit_tests/tp/test_joint_util.c
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-281> (83)
> - *A* unit_tests/tp/test_posemath.c
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-282> (507)
> - *A* unit_tests/tp/test_spherical_arc.c
> <https://github.com/LinuxCNC/linuxcnc/pull/581/files#diff-283> (72)
>
> Patch Links:
>
> - https://github.com/LinuxCNC/linuxcnc/pull/581.patch
> - https://github.com/LinuxCNC/linuxcnc/pull/581.diff
>
> —
> You are receiving this because you are subscribed to this thread.
> Reply to this email directly, view it on GitHub
> <#581>, or mute the thread
> <
https://github.com/notifications/unsubscribe-auth/AEHRGQW6VXJKJRQK2IBXT2LPTI6PTANCNFSM4HJ2Z47A
>
> .
>
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#581 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAJHUPHFRUIQO6YGUMOJJ7LPTJK4XANCNFSM4HJ2Z47A>
.
|
@robEllenberg what is the status of these fixes? Have they been merged somewhere? I have a problem on 2.7 with a pause in motion on an ellipse and I'm wondering if a fix for this is somewhere in these fixes. |
Is there any chance that this huge collection of independent changes can be split up into individual change sets that are easier to review, to increase the chance of these fixes making it into the master branch? |
Rene has volunteered to try to figure out this patch. |
@rene-dev, did you have any luck figuring out this patch? |
Any news here? |
This branch combines a bunch of old work, and some recent fixes from other branches to address some outstanding TP issues in 2.7
Fix #68 (reduce large blend arcs in G33 and prevent blends between synced and non-synced modes)
Fix #164 (smoother error correction and better velocity estimation in position sync)
Fix #167 (warns users if axis feeds are not fast enough for a G33 move at the current spindle speed)
Fix #546 (Fix some edge cases in TP including a regression in parabolic blend fallback)
Fix #550 (Fix mismatch between canon and TP's idea of what a zero-length move is, since they each have to arrive at that conclusion independently)
Note: all runtests and TP unit tests pass in a Ubuntu 18.04 x64 uspace build