I decided to separate the infill and perimeter routines. The main reason for doing that was that I found that with image processing of objects you tended to get a more detailed, almost fractal description of perimeters than you do with a geometric slice and dice routine like Skeinforge uses. What that means is that the apparent speed of the extruder head doing perimeters is much slower than it would be with Skeinforge simply because the perimeters are described with many more, very short (~0.2-0.3 mm) line segments.
I quickly found that that requires closer control of the extrusion rate than would be the case with Skeinforge. I made some headway on that problem on Saturday, but by no means am I finished working on the problem. It was obvious that infills, composed of line segments maybe a magnitude bigger, did not require the close attention that perimeters do. This led me to separating the two kinds of extrusion roads, a task that took most of Saturday.
Once that was done, I turned my attention to infills and created a little bit harder test exercise.
I then started doing test prints of just the infill. It quickly became obvious that my quick and dirty end-to-end approach to reducing the distance between extruded roads on the infill was not going to be enough. That simple method simply took a infill line segment and looked to the next on to see if the line could be reversed to reduce the time between extrusion. While that helped a lot there was still a lot of stringiness happening because the sweep method I used for identifying infill line segments didn't necessarily put them in proximate order.
Today, I decided to rewrite the end-to-end routine to put the infill line segments into as close a proximate order as possible. It was a very frustrating exercise that finally came right a few minutes ago.
The left infill print uses the end-to-end approach. You can see that the sweep method of identifying line segments leads to a lot of jumping back and forth between the sides of the hole in the block. My new proximate approach, seen on the right, reduces the need for long distance jumps to virtually nothing.
It really is an advantage, having a printer to test your code against.