Introduction: Space Weaver: a Seven Foot Tall 3D Weaving Machine
Space Weaver is a student-designed 3D weaving machine created by Prerna Auplish, Evan Bowman, and Ryan Chen at the California College of the Arts in San Francisco. The machine was created in the Digital Craft Lab (http://digitalcraft.cca.edu/) Creative Architecture Machines Advanced Studio with instructors Michael Shiloh and Jason Kelly Johnson of Future Cities Lab (http://www.future-cities-lab.net/).
Space Weaver is designed to create ultra-lightweight woven structures with fibrous materials. Using a 3-axis gantry system, woven forms are created in a similar process as most 3D printers, except they produce a significantly higher strength-to-weight ratio, result in zero waste, and require no support material. In short, Space Weaver is a seven foot tall 3D printer that uses carbon fiber and fiberglass to print five foot tall woven structures.
The project has been divided into three categories and their major components. These categories are:
Machine: frame and build plate, mechanical components, CNC gantry, electronics, and spools
Programming: TinyG and Grasshopper/Firefly scripts
Material Research: resin and fiber experiments
Step 1: Machine: the Frame and Build Plate
Frame dimensions: 84” x 32” x 28”
Build plate dimensions: 17 ½” x 19 ½”
The majority of the frame was welded out of 60’ of 1” x 1” square tube carbon steel, with 1” flat bar mounting tabs. A steel frame is not necessary, however rigidity is very important for ensuring CNC accuracy. This machine has a relatively large Z-height (5’), and an exposed build plate (print bed). The exposed design of the build plate is based on the desire to emphasize the importance of the printed objects, as well as to provide ease of serviceability.
The build plate has its own smaller steel frame, with two routed ½” birch plywood sheets to hold a sheet of glass.
Step 2: Machine: Mechanical Components
Two 2000mm x 20mm steel precision rods with four closed pillow block linear bearings allow the build plate to move accurately and efficiently on the vertical axis. To help reduce the load on our geared stepper motor, a large counterweight was used to effectively reduce the combined build plate and CNC weight down to only a few pounds. Concrete filled water bottles allowed us to tune and adjust the counterweight. A 1/16” stainless steel cable is routed from the counterweight, through the top of the machine, over two pulleys, and back down to the build plate frame, connecting the two. Another 1/16" stainless steel cable connects the build plate frame to a geared stepper motor. An 8mm precision rod with a custom milled aluminum coupler connects a garage door drum (used to wind the steel cable) to the stepper motor. Before machining the aluminum coupler, we tried using standard flexible couplers but two of them broke under torque. The lifting motor is a 666oz-in geared bipolar stepper motor.
Step 3: Machine: the CNC Gantry
The spool CNC is a standard Shapeoko 2 CNC with longer MakerSlides and a 3D printed bracket to support a spring loaded 3/16” threaded rod. The spring is incredibly important to avoid shattering the glass build plate. We chose to adapt the Shapeoko 2 instead of other 3D printer mechanisms due to its rigidity and ease of extending rail lengths if needed. One big limitation to the Shapeoko 2 system is the size of the linear carriages. All rails need to be an additional 4” longer on each side of the build plate to accommodate the large X and Y axis motor mounts.We used the exact same parts as the Inventables kit, other than the stepper motor driver, router mount, and wires.
Step 4: Machine: Electronics
Proper wiring and mounting is important, as troubleshooting becomes complicated with a machine this size.
A Synthetos V8 TinyG and 24V 6.35A power supply was used to drive all five stepper motors. A laser cut acrylic case was made to protect it (at $130 they’re not cheap), and a small 50mm computer fan was added to keep it cool. Make sure wires are twisted together, and long enough that they aren't being pulled or stressed by the machine, and also not so long that they might get in the way of moving parts. We chose to add a remote control and E-Stop switch to give us an emergency stop in case something started to go wrong.
Step 5: Machine: Spool Design
Spool design proved to be tricky for this machine, and throughout the course of the semester we went through numerous different designs. Through experimenting, we discovered that the real challenge was to create a spool that would unwind freely as the machine lowered, while not unwind under tension during the weaving process. The aluminum tube helps reduce some of this tension, and the spool orientation (a horizontal axel) allows a smooth and even unwinding action in the Z-direction. A rubber band is added to each spool to allow a method of tuning to the spool tension. The rubber band wraps around the spool to the top of the thread carrier. Each spool uses six Neodymium ½” x ¼” disk magnets. Three are located in the spool itself, and another three in the base (under the glass). Each spool was 3D printed in PLA on a Flash Forge printer, with a three-layer laser cut acrylic base.
Step 6: Programming: Using a TinyG With Grasshopper and Firefly
The Synthetos TinyG is a 4-motor control board and while not open-source, it automatically converts g-code directly into machine code, making it incredibly easy to convert Rhino/Grasshopper geometry into stepper movements.
Motor 1: X-Axis
Motor2: Y-Axis (2 stepper motors)
Motor3: Z-Axis (5’ machine Z-height)
Motor4: A-Axis (spool picker tool)
To control the four stepper motors, G-code is sent to the TinyG from Grasshopper/Firefly. Motors 1-3 rely on the following G-code format: g1 f450 x12 y12 z4 where g1 is the moving speed “f” in mm/s and ‘450’ is the variable. Cartesian coordinates are x12 y12 z4.
The fourth motor is on a rotational axis formula which is a little different than the linear axis motors. It responds to g0 a2, where g0 is the command to move with maximum speed and a2 is the coordinate. More information can be found on https://github.com/synthetos/TinyG/wiki/Gcode-Support
In order to weave columns, we had to create a new programming method which could translate spool movements into woven forms. Attached is a sample PDF (PA_Script_Spool Movement_121314.pdf) which explains the step by step process of “printing” one layer, which is then repeated until the tower is complete. Firefly maintains real time control and feedback of the print, which also allows users to make changes to speed or design even while the objects are being printed.
The tower design and scripting was inspired by existing structures including the Eiffel Tower and Cantons Tower. In both cases the structure was drawn in Rhino and translated into G-Code with the TinyG. Ideally there would be a library of scripted moves that users could link together to create unique designs and structures of various strengths/transparencies.
Step 7: Material Research: Picking Fibers and Resins
We experimented with several different types of fibrous materials and resins. We tested epoxies, including the UV-light-activated SMD Sun Flash, before ultimately choosing Zap CA Super Glue. Zap CA cures nearly instantly and it is fluid enough to fully cover and absorb into the fibers of the woven structure.
We tested several types of fibers, too, and for the final woven structures, we used .062" DIA fiberglass thread and 3K twisted carbon fiber tow purchased from eBay. The Zap CA was applied throughout the printing process, often after several layers of the tower had been printed.
Step 8: Conclusions
Due to a short time span, we were unable to fully explore other ideas and improvements for the machine and its woven structures. Further augmentations could include the use of conductive thread to weave circuits and a real time feedback system that communicates spool location with fiducial trackers to improve CNC accuracy.
Space Weaver was designed, fabricated, and built in less than 8 weeks, and significant progress was made in the final week. We strongly believe that printing woven structures in fibrous materials has huge potential: such a structure can be constructed diagonally without needing support materials, and it can be made by combining different types of materials together, massively increasing the construction options.