Thursday, October 24, 2013

Super Matter Tools - Adding a Graphical User Interface

I've been working on a program called Super Matter Tools at Taubman College at the University of Michigan. I've been collaborating  with Taubman Fab Lab Director, Wes McGee, and with Dave Pigram, Director, Master of Advanced Architecture Program at University of Technology Sydney. They were the original developers of Super Matter Tools (SMT).

SMT is one of the programs used for tool path programming of the lab's robots. It's important that the lab develops its own software tools because of the number of unique research tracks taken in the lab. These custom tools and operations are not supported by commercial CAM applications such as MasterCAM, RhinoCAM, etc.

Developing a Graphical User Interface for Rhino Python

SMT began as a command line script. The first step was to eliminate the command line and replace it with a graphical user interface.

The earliest prototypes were created using SharpDevelop. Here's an example of a very early mock up done using SharpDevelop:

We didn't want to rely on that tool. Instead we wanted to have it all coded in python without the need for an external IDE. I developed those fundamental UI tools back in late 2012. They are available for any Rhino Python programmer to use - see my post Easily Create Graphical User Interfaces in Rhino Python to download the code and learn to use it.

The code continued to develop (!) until functionally it did as much as the command line version. That is, generated code for a single robot and a single operation. Here's the UI at that point - it only worked for one robot and operation - but the aim was to support more eventually and the UI reflects this:

Multiple Robots

In 2013 the lab upgraded its robotics capabilities by adding four more robots. We then needed to update the SMT workflow to support multiple robots, with multiple operations for each robot. The python class structure was revised and the tree view was updated to support this. Here are a few screen grabs of various UI panels.

This panel is for the Workcell. The workcell determines which robot or robots are available. From here you can import the workcell geometry (a 3D model of the robot environment) as well as add programs.

This is the panel for editing programs. A program is associated with a single machine. Controls here allow you to import the machine geometry, generate code for the robot to execute, and add operations. 

This is the panel for editing operations. The process determines which tool is used. 

Under each operation are pages for selecting geometry, specifying tool orientation, and curve division. 

There are other panels, for instance this one, which allow you to set the start and end point for the robots movements.

Interactive Posing and Code Generation

Initially, you set everything up in SMT and only after pressing OK to exit the UI did it generate code or pose the robots. It became clear quickly that we could keep the UI up and do both those things.
So the UI was updated to support interactive posing and generation of single operations as well as full programs.

We also added the capability to generate videos of the simulation. Here's an example of this type of rendering. This shows the robot moving along a helix toolpath.

A Simulate button and Trackbar control were added to control the simulation of the robot over the toolpaths. You can simulate a single operation, a single program, or multiple synchronized robots.  

Dynamic Draw

We are in the process of adding temporary drawing (similar to Grasshopper) rather than posing the Rhino geometry.

For an update on that progress please see: Rhino 3dm File Load / Draw / Bake.

CNC Machines Available to Stamps and Taubman Students

This post is a look at some of the CNC technology available to students at the Stamps School of Art & Design and the Taubman College at the University of Michigan.

CNC Machines

Computer Numeric Control (CNC) machines can be broadly categorized as follows:
  1. Additive 
  2. Subtractive
  3. Shaping / Molding

Some of the machines fall into one category only - for example 3D printers are additive. Others, such as robots can handle many different processes and can accomplish work of all three types.

3D Printers

Between the UM 3D Lab and Taubman College there are several types of printers available.

  • The Dimension Elite FDM (Fused Deposition Modeling) machine works by selectively applying ABS plastic in thin cross sectional layers until the entire part is printed. The resulting parts are relatively strong. For more information on this process see Dimension Elite FDM Details.
  • The ZCorp machine uses a gypsum based powder with multi-colored binder/glue. It can print one vertical inch per hour, in full color, and cures with salt water. Models are usually heavier than the FDM’s models, and are more delicate. For more details see ZCorp 510 Details.
  • The Cube printers are also available. These machines are open access and very easy to use. You purchase your own print cartridge and can run these machines on your own. The details on getting set up to print with these machines is available here.

Laser Cutters

Students at Stamps and Taubman have access to two laser cutter machines, named L1 and L2. This is L1, L2 is right behind it.

These machines use a laser to cut at 10,000 degrees Fahrenheit. L1 can cut in an area up to 36"x21". L2 supports 35"x20". These machines have a more powerful laser and larger cutting area than the three Universal Laser Systems machines available only to Taubman students:

The machines can cut wood, paper and plastic. The maximum material thickness is 1/4". You cannot cut plated plastic, PVC, or corrugated cardboard.

Depending on how well tuned the machines are the kerf (width of the material removed during the cut) varies from 0.004" to 0.015".

There are some videos available on using the machines.

3-Axis Routers

There are two 3-Axis Routers available. Both have 4' x 8' vacuum tables to hold the work. This one is operated by the Taubman staff. 

Its neighbor is used by the Art & Design staff. It is also available for Taubman students to use at any time provided they have been trained in its use.

Each router has a 10 tool changer. The Tabuman router can use both conventional and shrink fit collets. The Stamps school router must only use the conventional collets. See below for more information on collets types. 

Here's an example of one of the 3-axis routers cutting the side of a sleigh bed. Full details on this project are available here - Wolfe Sleigh Bed Fabrication. In the video most of the roughing has been done. A 3/4" diameter tool is making the edge cuts. 

In the video below a 1" ball end bit is used for the final finish passes. It steps 0.07" with each pass until the entire surface has been smoothed. 

4-Axis Router

Stamps students have access to a Roland MDX-540A 4-Axis Router. The 4th axis allows the part to be rotated during the cut which can greatly simplify the making of certain types of parts. The table dimensions are 18" x 18". The work piece must be clamped down. Despite the small size this is a very high quality router.

Roland video on the MDX-540:

5-Axis Routers

Taubman has a 5-Axis Router available. The machine has a large enclosure surrounding it. This limits the spread of debris while cutting. That's an important consideration given this tool doesn't have a dust collection system like the 3-axis routers do. That's because the head of the tool can rotate so much it makes it impractical to surround it with a dust extraction hood.

The machine has a 5'x10' vacuum table. Parts as small as 12"x6" can be held securely with vacuum pressure. Smaller parts require mechanical clamping or more sophisticated fixturing.

The machine has a tool changer which holds 10 tools.

A touch screen control panel is available for loading programs and controlling the operation during the cuts.

This video shows part of the process of creating a table using the 5-axis router. Full details on the table production are available here: Torus Knot Table Fabrication

This video shows the router cutting foam - see Pedestal Fabrication for details:

Abrasive Water Jet Cutter

The 3 axis water jet is designed for cutting two dimensional profiles or shapes out of flat sheet materials, ranging from sheet metal to metal plate and plastics. In all but a few cases, water jet systems cut completely through a part, and do not have control over depth, like routers or milling machines.

The lab's Flow IFB4800 has a working range of 4'x 8' with 8" of vertical range. This machine is equipped with state of the art dynamic head technology, which eliminates the kerf taper common with waterjets, and can reliably produce parts with .005" tolerances.

Parts are clamped to the ribs over the water tank. Larger parts, which span multiple ribs can be completely cut out. Smaller parts (which would fall between the ribs if cut loose) require tabs to hold them in place. These tabs are then cut manually to release the part.

This video shows the water jet cutting 1/8" stainless steel to make some bed hardware. This is another part of the Wolfe Sleight Bed project. You can see the tiny tabs on the edges of the parts. 

Zund Cutter

The Zund is a knife cutting machine capable of cutting thin materials at very high speed. It has a 5' x 10' table. It can cut paper, cardboard, plastic and wood veneer up to 1/16" thick.

CAD files are exported to the Adobe Illustrator format (.AI) and are loaded into the machine.

The knives are mounted in rotating holders which automatically align tangent to the cut.

Here is a short video of the machine in operation cutting thin plastic: 

7-Axis Robots

There are two large 7-axis Kuka Robots, each with a 10' x 8' reach. They are placed on tracks, one 30' the other 20'. The machines are accurate to about 1mm. The robots can load a variety of tools including a milling head for cutting wood and foam, and a water jet cutting nozzle for full 3D cutting of any material.

The robots can work individually or in tandem.

Toolpath programming is done using MasterCAM or Super Matter Tools.

This video shows a robot cutting foam using a hot-wire. Full details on this project are available here: Robotic Fabrication of Parametric Chairs

The lab also has two smaller robots. These are Kuka model KR 6 R900 SIXX. These are used mainly for training.

Vertical Milling Machines

A Haas vertical milling machine is available to Taubman students wishing to work in metal. 

The machine is a Haas VF-2 SSYT

A smaller bed mill is also available- on this machine cooling is accomplished by spraying a mist: