From: Nicola C. <ni...@co...> - 2015-02-06 11:26:15
|
> Firstly, I think I found another issue with the interpolation. It was > only correct with 4 probe points in 1in distance, here is a patch to > correct it: Committed, thanks > The huge size is due to 'trivial G-Code' stemming from the outline > bitmap tracing. The 'optimise' command line option does not completely > remove the redundant steps. There is something similar in surface.cpp > around line 226, the 'simplifypath'-method. Switching that on and > setting the accuracy argument to 1/dpi dramatically reduces the file > size while keeping sufficient precision. Did you also activated the optimise switch? Does "simplifypath" includes all the optimizations done by "optimise"? I've never looked inside that part of code. I think that 2.0/dpi is a better choice, because the default g64 is 2.0/dpi and lower precisions are ignored by the CNC controller > There is one issue left: > simplifypath does not know about the autoleveller and can generate very > long moves crossing several cells of the probing grid. One should break > those long moves to interpolate at the cell boundaries. I've already created a function for that purpose: autoleveller.cpp, line 225 subsegments = splitSegment( point, numOfSubsegments( point ) ); This function splits a single segment in subsegments with a length of ~X(Y)ProbeDist, therefore any optimization shouldn't have any negative effect on autoleveller. Of course it increases the size, but we can't do much for that, if we want z-correction we need a bigger gcode. Nicola Corna |