To do the cutting the robot holds a rigid frame with a wire stretched between the ends. A voltage is applied to the wire which heats it up allowing it to move through the foam. A spring is used to allow the wire to stretch a bit as it cuts.
Here's a a video of the cutting process. The first section shows the cross sections of the chair being cut. Those cross sections are glued together and then additional operations are done. The video is sped up by a factor of 3 or 4 depending on the operation shown.
For me, the question was – how can a straight line be used to achieve pleasing, comfortable curvature in the design of the chair? To understand the answer requires a bit of study of ruled surface geometry.
Ruled Surface Geometry - Definitions
• Ruled Surface: A ruled surface is a surface swept out by a straight line as it moves through space. For example, a cylinder is formed by moving a straight line around a curve in a plane, keeping it perpendicular to the plane at all times.
A cone is formed by moving a line so that it stays fixed at one point.
A helicoid is formed by moving a straight line along another straight line, keeping it perpendicular but rotating it as it moves.
• Doubly Ruled Surface: A surface is doubly ruled if through every one of its points there are two distinct lines that lie on the surface. The hyperbolic paraboloid and the hyperboloid of one sheet are doubly ruled surfaces.
• Hyperboloid: A doubly-ruled surface generated by a set of straight wires, whose ends span two parallel circles rotated relative to one another.
Parametric Chair Development
I began by creating a basic chair form I liked by manually modeling the chair section curve in Rhino. This is the main generating factor for the chair. The section can be edited to alter the shape of the chair. Thus the section is another parameter.
Next I decided what properties of the chair were going to be parameters. The principal ones are:
Seat Height, Seat Angle, Seat Center Depression, Back Height, Back Angle,
Back Pattern Scale, Cutter Angle, Cutter Bulge, Cutter Height, Cutter Width, Cutter Z Start
A variety of chairs – these all have the same initial cross section. Only the parameters were altered to create these variations:
Two chairs with surface variations applied to the back – this creates a stark contrast from front to back and makes for some dramatic ruled surfaces:
Parametric Model - Grasshopper
I developed the parametric chair using Grasshopper. Grasshopper is a graphical algorithm editor integrated with Rhino’s 3D modeling tools. All the modifications are done using simple geometric transformations: translation, rotation, scaling.
A variety of user-interface controls are available. I used all sliders - here are a portion of them used to affect the chair:
Shaded model – typical of what’s seen while adjusting the model in Grasshopper:
Shown below are the original generator curve (green) and the final section curves:
Grasshopper also does an initial layout of the parts on the foam block. The block is correctly position in world space for cutting on the robot:
The parts are manually rotated to optimally position them on the foam for cutting:
Additional geometry is used to make the cuts possible by removing material that would hit the frame. Also additional cuts are used to free the parts from the foam.
The next step is to import the geometry into Mastercam/Robotmaster and to establish the sequence of cuts and position of the robot during cutting. It takes experience to know how to rearrange the position of the arm during cuts to make it work. The motion of the robot can be simulated to test if interference will happen. The robot has no knowledge about the shape of the tool it is holding. Therefore it is critical that I carefully verified the paths in the simulation prior to cutting. I needed to make sure the frame never hit the robot nor touched the foam block in areas which hadn't been removed yet.
First the four section pieces are cut.
These are then glued up using polyurethane glue.
After that cures the chairs are placed on a vacuum table and extra cuts are made to trim the sides and holes. It's necessary to raise the chair on blocks so the robot can reach all the way to the bottom of the chair.
Completing the second side cut:
Here the robot is preparing to make the hole cut:
Here are the chairs after all cuts have been made. These are just prototypes - to make a fully functional chair they'd need to be covered in a more durable material. They are strong enough to sit on and test however.