The past few weeks have very productive and frustrating. The new roughing now working well and the offset algorithm has been very robust. Handling all of the special cases has taken most of the development time- every time I think I have it there’s a new special case the demands a partial rewrite. I think that most of those cases have now been taken care of and I can move forward to try and get it into a releasable state.
As of right now the roughing is functionally similar to what it was before but the resulting toolpaths should be much higher accuracy and use less memory- no more ZMaps in that code. The “Toolpath Quality” setting is now gone as well. Here’s what’s left to do:
1) Enable multicore support so each layer can be run on a different CPU.
2) Hook up the progress bars so the UI doesn’t stop when calculating. This took a little while to figure out since you don’t know how many offsets it will take to finish a layer until you’ve already done the calculations. Luckily, I found a shortcut to get a rough estimate.
3) Add an option for a “conformal toolpath” to drape the path over the model and eliminate the stair-stepping.
4) Make sure the milling direction option is honored.
Although I generally dislike adding toolpath options, I may let the user define a different tolerance for the roughing pass. This would let the calculation finish more quickly if the user doesn’t mind a higher potential for error- this shouldn’t matter since the Stock to Leave value is usually much higher than the tolerance anyway.