Monday, December 2, 2019

McWorter's Pentigree Octagon

Math 401
Jean-Marc Daviau-Williams

For this print, I used the first iteration of the McWorter's Pentigree rotated by order 8 and stair-stepped two additional shapes above them, with one smaller than all combined.  The code to generate the object was done in OpenSCAD and was printed on the Ultimaker 3D printer.

The McWorter's Pentigree iterated function system is generated by "Starting from the origin, draw a line segment of length r at an angle of 36°. Turn left by 72° and draw another line segment of length r. Next turn right by 144° and draw a third line segment of length r. The remaining three line segments, each of length r, are formed by making a right turn of 72° followed by two left turns of 72°. The end of the last line segment will be at the point (1,0)" [1].  Initially, I planned out the code on paper and then translated it into OpenSCAD, doing basic trig to get the appropriate coordinates for each step.  While very aesthetically pleasing, this was very computationally intensive to generate, so I only did one iteration of this.



After rotating it order 8 and adding the stair-stepping for aesthetic effect, the render time was two minutes.  Processing addition iterations through recursion resulted in OpenSCAD crashing, due to limitations of my hardware and my limitations in coding in OpenSCAD.  In the future, once I become more accustomed to OpenSCAD and have a better computer, I could render additional iterations to make the default 6-iteration model.

As for the actual printing, the model was sliced and printed using Ultimaker Cura.  This printer was chosen because fine details were needed to be handled and when comparing the Ultimaker to the others in the Math Maker Lab, it is far superior.  As for the slicing, the object needed to be scaled up almost 1000% since I did not scale it properly in the code.  For the fill, 50% diagonal filling was done.  Finally, the estimated print time was 6 hours.

This print was difficult to code, not just because OpenSCAD is a less than desirable language to code in, but because of how it is not optimized well.  Combined with the natural computational intensity of the iterated functions systems and difficulty to program these shapes efficiently, the render time is unreasonably long.  However, I will learn from this and handle recursive functions better in future assignments.

1) http://larryriddle.agnesscott.org/ifs/pentigre/pentigre2.htm

No comments:

Post a Comment