logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

limit_axis - Dynamic range based axis limits

Author

       Chad Woitas

Description

       limit_axis.c

       Limit axis to certain limits at varying inputs For example on a spindle with C rotation, to avoid hitting
       a gantry when the height is above Z-10
        - Use Z axis as feedback
        - Use 2 ranges (0,-10) (-10, -40)
        - When Z is above 10, C rotation is limited to range 0
        - When Z is below 10, C rotation is limited to range 1

        Usage:
        loadrt limit_axis count=3 personality=2,3,2
        or
        loadrt limit_axis names=limit_x,limit_y,limit_z personality=2,3,2

        The "personality" argument defines how many ranges are supported by each instance.
        (Note that no spaces can be used in the names= and personality= parameters)

        Caveats
        - Searches ranges from 0 to 9 and will take the first range that matches
        - Ranges are inclusive min_range <= feedback <= max_range
        - Max can not be less than minimum for any group
        - Sticky indicates, to not check other ranges if the feedback is still in the current range
        - Enable allows for a range to be turned on/off, for cases such as avoiding a tool changer, but allowing
       sometimes

Functions

limit-axis.N (requires a floating-point thread)

License

       GPL

LinuxCNC Documentation                             2025-08-07                                      LIMIT_AXIS(9)

Name

       limit_axis - Dynamic range based axis limits

Pins

limit-axis.N.error-no-range bit out
              error pin indicating that no range matches the fb

       limit-axis.N.min-output float out
              Minimum limit output

       limit-axis.N.max-output float out
              Maximum limit output

       limit-axis.N.fb float in
              Feedback pin, the value of this pin determines which range is active

       limit-axis.N.current-range u32 out
              Indicates which range is currently active

       limit-axis.N.min-limit-MM float in (MM=00..personality)
              The array of minimum limits to select from

       limit-axis.N.max-limit-MM float in (MM=00..personality)
              The array of macimum limits

       limit-axis.N.min-range-MM float in (MM=00..personality)
              Defines the range of values with which the fb is compared to set the range

       limit-axis.N.max-range-MM float in (MM=00..personality)
              Defines the range of values with which the fb is compared to set the range

       limit-axis.N.enable-MM bit in (MM=00..personality)
              Used to enable and disable a specific range

       limit-axis.N.sticky-MM bit in (MM=00..personality)
              Used to make specific range 'sticky' or not

       limit-axis.N.error-range-MM bit out (MM=00..personality) (default: 1)
              Error bit indicating that the fb pin falls outside all ranges

       limit-axis.N.error-limit-MM bit out (MM=00..personality) (default: 1)
              Error bit indicating that the max limit is not larger than the min limit

Synopsis

loadrtlimit_axis[count=N|names=name1[,name2...]][personality=P1,P2,...]

See Also