work continues, very slowly

posted May 16, 2019, 4:15 PM by Anthony Douglas
Things are continuing.  My current focus is to try to create a plugin in fusion 360 which will allow the automation or semi automation of the CAM programming process to the extent that the use of very small layers is possible.

This is critical, because although at this stage a basic test part could be produced, it is extremely time consuming to program the layers.  The current version of the instructions I have for the process can be found below.  You can see how labor intensive it is.

Ideally, you want to use layers in the range of a millimeter or half a millimeter high, which means a lot of layers.  This allows you to employ rest milling with very small diameter tools to get those fine details and features, small radius corners etc. without resorting to five axis milling.  This is one of the main strengths of rugdmmac, so it is important to realize this.

I have been thinking a lot about how to do this, and I think if I can use python to do a sort of test;  the model must be divided into what I would dub major layers, the layers of maximal thickness that could concievably be milled with any end mill, which could be as long and thin as you would like.  These major layers will then be subdivided into smaller layers of equal height that are less than a millimeter or whatever thick.

Basically the model must be decomposed into machinable "compacts".  These are solids which can be machined.  That is, the tool can reach in there.  In reality it may require a tool that is too long and thin to actually machine perfectly, but for a moment we can ignore that.  That will come naturally as we make the layers thinner.

The problem is that we cannot simply use say 1 mm layer height and dumbly put the layer tops wherever we want without eventually getting defects in the part in various ways.  The thing is that at the so called draft transition areas, you get overhangs, and the material under the overhang cannot be machined.  However, any part can be decomposed into segments that have no overhangs.  This is a key realization!  Things like this reality are what make things possible.

Thus, we can ultimately make any part of any shape, it's just a matter of making the layers begin and end at the right z heights.

I believe I may be able to do this by first making a test which determines if a layer is makeable: Suppose for any candidate solid, that is, a slice of the model, you create an array of closely spaced lines, spaced say a hundred microns apart.  Rays, we can call them.  They radiate from the bottom up.  They will either never encounter the solid, or they will pass through the solid and out the other side (since there is no solid above the top of the slice).  However if they pass into the solid and then out and into it again, that layer is invalid.  It means the z height must be reduced until all the rays either do not enter the solid or enter and then exit only once.

I think this should work.  

Once we have a test like this there are various ways we can use it to analyse the model.  You could do a binary search of all possible z heights, starting from zero, to determine the highest z height that gives a solid which passes the test.  Or you could draw rays all the way to the top of the model, consider all invalid rays, and take the shortest invalid ray (invalid meaning it enters the solid, then, impermissibly, enters again (which implies it must have exited at some point)) to be your layer height.  

You could then further refine the layer height, but for now I think we can put up with any slight innacuracies this leads to.

Then, you would record that z height as the first layer top, and then cut away the model below that z height, and repeat the process, until you have a set of z heights for the layer tops.  

Then, take the model, surround it with the CAC material in the modelling software, create planes or surfaces at the relevant heights, slice both solids (the cac block and the model) at the relevant heights, then we can use those surfaces to do the cam.  That part also has to be semi automatic, and there are additional challenges that are faced there.

So essentially every layer except possibly the first and last, will contain both upward facing surfaces and downward facing surfaces.  First the blue is deposited, then machined.  Then red is deposited, then machined, then cleared away anywhere blue needs to be deposited.  Then blue is deposited, and machined, and this will gouge the red solid but not affect the finished surfaces. Then red is again deposited, and machined.  The process repeats.  The machining process is basically the same, just a pattern of operations and tools with rest machining enabled.  It can be the same pattern.  The surfaces will need to be selected accordingly.