Skip to content

Feature: Preventing straying outside the X-Y limits of stock when roughing (for between vice jaws...) #475

@Infraviolet200

Description

@Infraviolet200

Can an option be added to Rough operations which provides the following restriction:

**At any time when the end mill's tip is below the stock's uppermost Z surface, Never move the end mill such that any part of it (even at shank radius) will stray outside the X-Y limits of the rectangular stock volume **

This would be similar to current behaviour except that the very tightest columns within the corners of the stock would not get cleared, which is rarely actually a problem, and that when making non-cutting moves there would be no motion of the end mill outside the stock's X-Y limits unless it was retracted up to a Z height which was above the stock before doing so.

See the image for what I mean about the uncleared corners which become the small price to pay when this desired feature is enabled. They are the corners within a size defined by the end mill's radius are what the end mill will no longer be able to reach without venturing outside the stock's X-Y limits.

Image

The reason for this is when considering what happens if the volume defined by the stock is, in reality, representing a block held between the jaws of a vice. One does not want the end mill cutting in to that vice simply in an attempt to fully clear out a corner of the stock where total clearing out is not needed anyway. Nor does one want the end mill slamming in to the vice whilst making a (rapid or slow) non-cutting move between cutting operations.

For simplicity, assuming that the vice jaws are never higher than the maximum Z height of the stock cuboid is a perfectly sensible assumption, for many low profile modular vices the stock will indeed usually be higher than the vice jaws. And this assumption probably greatly simplifies the development of this feature.

Actually in the vice jaws case, you'd be defining the stock to be a little narrower than the inter-jaw distance anyway, so as to leave some room between where the milling happen and where the jaws are, which brings us neatly to the second use case.

Another situation where this applies is when the "stock" as one defines the cuboid is in reality a small section of what is a much larger x-y area in reality, but where the user only wishes to clear the volume of stock which is relatively close (within whatever size they define) around the part. The Z height of the stock being the same all over. If the stock is, in reality, quite large in X and Y, then without this rule it would be possible that the end mills might collide with the real stock (parts of the real stock outside those bounds, as defined in the KiriMoto interface, which represent the limited section of the stock which one desires to clear) at speeds/directions unsuited to cutting, particularly during non-cutting moves.

This rule would be best performed using the end mill's shank radius (assuming shank is always wider than flutes), it might leave a little more stock near the edges and corners but such stock is already probably disconnected from the actual part being cut out anyway. This use of shank radius becomes important when considering wide-shank-narrow-flute tools, where otherwise the shank could hit the "vice jaws" if the fluted section is shorter than the stock depth and only the fluted section was restricted to stay within the stock's XY.

For a wide-shank-narrow-flute tool this rule would ensure that stock clearing ended up with the following shape emerging (see next image), once the cliff-edge rule discussed in the first of my series of 4 GitHub issues was also accounted for (with the outer bound of the stock volume also serving as a body against which the cliff edge test would be run). There would then be no risk of shank-to-stock collision involved, and no extra rules needed when considering the stock's outer perimeter.

Image

This is the last of the 4 posts here detailing the 4 features I was asking about. Hopefully they should all be able to be placed on the non-urgent-to-do-at-some-point list now rather than risk being lost to time within the discord chat.
Thank you
Infraviolet

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions