Saturday, March 10, 2007
Defining a transfer file betwixt Slice and Dice and the Tommelise Control Panel
The downside of the approach that I've taken is that it is much, much more of a pig for CPU cycles and RAM than Adrian's app. Throughout my career I've always chosen simpler, less efficient approaches to analysis problems and depended on Moore's Law to make them perform acceptably over time. I've done that simply because I've done a lot of software maintenance for difficult, sassy analysis techniques that are too clever by half. I loathe doing software maintenance possibly because I've had to do it a lot for other people's clever programming. As a result I try to avoid doing clever things with my own computer code just in case I have to also maintain it.
Slice and Dice is now up to an alpha level of development with the majority of the features that I have planned for it working. One of the nice features that I'm putting into Slice and Dice is that the user can grab a part that is to be printed off of a 3D CAD file and convert it "as is" into an STL file. Rotating the grabbed part into an orientation suitable for printing and positioning it on the printing work table can be done completely within Slice and Dice.
I've taken the attitude that Slice and Dice, since my implimentation is much slower that RepRap's is something that shouldn't have to be used every time somebody wants to print a part. That attitude implies that Slice and Dice will produce an interim data transfer file that Tommelise's Control Panel will use. As a result of this approach Tommelise's control panel is a much smaller app that is more akin to a printer driver than a control panel like RepRap employs.
When I gave people a look at my interim data transfer file, Zach Smith noted that it looked like it was going to be a right bastard to parse. Zach works with web apps and is a bit of a data transfer file wizard. When I mentioned to him that I'd written it in an "XML-ish" mode he reasonably asked why I didn't just do it in XML outright then. It was one of those simple notions that isn't at all obvious till somebody like Zach has the wit to voice it. Since then Zach has been kind enough to see me through moving the data transfer file format I'd created over into proper XML.
The data transfer file for Tommelise is just about where it needs to be this morning. You can see a sample of the file structure here. I've taken the first layer of the gearmotor coupling that Adrian designed for the RepRap Mk 2 Thermoplast extruder.
The perimeter paths are still a little too bulky, but they work. What's nice about using the XML file format is that you can use XML parsers to display and edit the contents. That's very handy.
If you are interested in working with Slice and Dice you can download the latest alpha release (version 0.0.4).