## The 4-cell fragment of a valley

Wednesday, February 4th, 2009 at 6:19 pm

What a way to spend one’s precious life! Because it is my intention that this will eventually be free software, doing it properly now could save people work a hundred years in the future.

Here at Freesteel Central where the fastest most parallizable CAM algorithms are being written, we’re attempting to code up valley machining which is going to rely on the not-yet-written non-axial tool projection function.

Valley machining, like many other kinds of rest machining, begins with the pencil milling algorithm, which produces an intermediate result like so:

Pencil milling paths are, in fact, double paths that are very close together. Since I’ve been lucky enough to use the same area modelling algorithm based on weave-cells for pencil milling as for Z-slicing, constant scallop, fillet surfaces, and shallow area detection, these pencil paths are like closed contours.

The first step is to chop these closed contours wherever they entered a cell with a junction and collect up the pairs of passes. But in that example I kept getting 14 pairs of paths instead of the 12 that you can see (count the number of paths that go from 3-way junction to 3-way junction or an end).

This was a mystery until I zoomed in onto one of the corners. [ignore the diagonal lines that go off the page; they represent the contact normals]

As you can see, two of the paired paths come in from the left into a regular 3-way junction cell in the middle, but they first pass through the same cell which, to the computer which is counting only the valency of the cell, looks like a 4-way junction. So it splits it off at the entry of that cell, skips the cell, and produces another pair of paths with only one point in each on the dividing line between the 4-cell and the 3-cell. This is done for the top left pair and the bottom left pair, and explains where the extra two pairs are coming from. The cell gap between the pairs is not coloured in, which is why the original white contours are visible.

Hundreds of lines of useless joining up code has been done to glue these pairs back together, and it now means I’ll have complete sequences that associate at their ends at 3-way cells properly, so we can now move on and get the rest of the algorithm done.

5-axis coding I’ve lost my way. It all works perfectly… until someone with experience looks at it and runs machines with it. Meantime, just knocking this valley machining into shape until a point where it can be used.