-- Add github hash or version number to SolidPython code appended to SCAD code. -- Add bezier support -- Add fillet_2d() section to README -- unit tests for box_align & other rotation methods in utils.py -- Parent transforms of hole() objects still get put in the positive section of SCAD code, even if there are no other positive children that need them: ex: $fn = 12; difference() { union() { union(); union() { translate(v = [0, 0, 2.5000000000]) { cube(center = true, size = [50, 50, 5]); } /* NOTE empty transform here */ translate(v = [18.0000000000, 18.0000000000]) { } } } /* All Holes Below*/ union(){ union(){ translate(v = [18.0000000000, 18.0000000000]){ union() { translate(v = [0, 0, -0.0050000000]) { cylinder(h = 5.0100000000, r = 2.5000000000, center = false); } } } } } } -- Applescript or other inter-app communication that will recompile in OpenSCAD whenever requested via your Python code -- Debugging info? This isn't really present for SCAD, so it's hard from Python. -- Programmatic way to designate parameters users might want to change -- Gui for setting parameters - sliders, dropdowns, etc. Well... that's a separate project. -- Some way to interrogate objects about their shape. bounding_box() for all openscad objects? With that in place, you could do things like "move piece A up so its northern edge lines up with object B's northern edge." -- Some way to split an object into two shapes as if it's been cut. The way I go about that is to intersect an object with two different shapes, and then move those results around. It would be nice if this were more automatic. -ETJ 07 Jul 2012 -- Current practice prevents any re-use of the SCAD code generated. A Python function called a hundred times will compile to 100 separate lists of SCAD code, rather than 100 calls to a function, which makes the SCAD code larger than necessary and harder to read. It would be nice if Python functions were compiled to SCAD functions somehow. Haven't figured out how to make this work yet. -ETJ 29 Aug 2012 -- Bounding Box class added to all objects, so they have some sense for how large they are and can be queried (This probably can't be done, so put it on hold) Completed: -- Include support for OpenSCAD animation. (Hacky, but I'm not sure there's another way to do it than I did) -- README needs a table of contents with #hash links -- More robust screw threads -- lead-in, lead-out, and cross-sectional support -- Add handling for the #*!% SCAD characters (debug, disable, root, background) -ETJ 15 Feb 2011 -- Improving syntax so it's as close as possible to OpenSCAD's -ETJ 15 Feb 2011 -- By default, let polygon assume that connectivity between specified points (the paths argument) is in the order specified in the points array. Without this, there's always boilerplate: polygon(points=arr, paths= range(len(arr))) -- Add 'segments' arguments to circle(), sphere() and cylinder()? This breaks with OpenSCAD, but is simpler than circle(10).add_param('$fn', 30) -- Unit testing. -- setup.py should include PyPi-required metadata. -- Add to PyPI so SolidPython can be installed with pip install solidpython -- Update README with PyEuclid information and PyPI-aware install info -- Comprehensive docs -- Once you've declared something a hole(), you *can't put anything in it*. This kind of defeats the purpose of most holes in mechanical design. This feature may need some rethinking. (Resolved via the part() class) -- bill_of_materials() entries should be left-justified in their columns. (BOM now created via prettytable module)