ElectiveMMM2017

From DigitalCraft_Wiki
Jump to navigation Jump to search

Course Intro

From Mimicking Machines to Modifying Machines

Many of today’s Digital-Fabrication tools share a common underlying framework. Pen plotters, CNC routers and mills, and 3D printers all use similar techniques for controlling precise movement in an automated way. Understanding the basics of the components, electronics, and software that control these machines can give the possibility to modify and design machines toward new processes and outputs. Mimicking Machines will explore the interplay between the output a machine can produce, and the process of making the machine itself.

During the initial working sessions, we will as a group build two CNC Drawing machines, and go through the process of translating a vector drawing into a “tool-path” that the machine can follow.

After building the machines, we will work in small groups to create add-ons, modifications, and new machine-made results. The machines we will be building are low cost and easily repaired, they can quickly become a platform for experimentation: What can we do with a machine that can be placed on any surface, and draw with any tool?

Jumping into the technical production of a simple CNC machine will give the skills and knowledge to reposition what is typically considered a “digital-fabrication machine” into a flexible tool to be experimented with, modified, and repurposed. Ultimately, this interplay between understanding the machine’s capabilities and creating it’s ‘tooling’ will lead to unique and varied machine-made artifacts.

Methods and Meetings

The course will be divided into two phases:

  • Phase 1: Building the machine.
  • Phase 2: Using the machine.

During the first phase, we will work together to produce two copies of the 4xi-draw pen plotter (an open source variant of the commercial AxiDraw). This phase will give a basic technical understanding of CNC manufacturing, and the opportunity to work together in a hands-on workshop format with digital fabrication tools and electronics.

In the second phase, the machines will be used, modified, and experimented with to create new processes and results. Supported by your knowledge from phase one, you will work in small teams to define and realize a modification and result produced from the machine. This could range from designing a typeface for a specific pen or marker, to developing a new tool for digital-drawing (See Examples and References below).

Schedule

Week Date Time Location Subject
1 11 May 2017 10:30 - 12:10 (+ optional mentoring till 13:00) Prototyping space Intro and 3D printing
2 18 May 2017 10:30 - 12:10 (+ optional mentoring till 13:00) Prototyping space Machine Building: Movement and Mechanics / Modification Concepts
3 24 May 2017 No Class - School Holiday
4 1 June 2017 10:30 - 12:10 (+ optional mentoring till 13:00) Prototyping space Machine Building: Electronics and Software
5 8 June 2017 10:30 - 12:10 (+ optional mentoring till 13:00) Prototyping space Production
6 15 June 2017 10:30 - 12:10 (+ optional mentoring till 13:00) Prototyping space Production
7 20 June 2017 18:00 - 20:00 Prototyping space Demo Evening


Deliverables

  • ‘Blank-Slate’ Plotting Machines

During the first Phase of the course, the group will produce two working pen-plotters based on the open-source “4xi Draw” project. The production will be distributed amongst the group, so it is essential that each component is created with precision and care, and that steps taken are clearly documented. The resulting documentation, produced for the course wiki should be a vast improvement over the current documentation for the ‘4xi-Draw’.

  • Modification Concept and Realization

The second Phase will require producing an add-on or modification to the machine that introduces a new drawing-process. You will work in small groups to create proposals for how these add-ons can be created, and what results they can generate. The physical add-on will be well-crafted, and suited to the process and results it is intended to produce.

  • Machine-Created Outcomes

Based on the add-on created in your group, you will each produce samples, tests, etc. which demonstrate the potential of the tool you have developed. Process and outcome should be clearly documented.

  • Documentation

Technical realization, conceptual development, and production process well documented on your personal Wiki - clear documentation of the build-process steps of the plotter - concepts and ideas for machine modification and add-ons, and production of the (group) add-on - testing and designing for the add-on - final samples

Assessment Criteria

  1. Concept Development and Realization : The student has demonstrated the ability to develop a clear concept proposal and is able to translate the concept into a well executed physical outcome.
  1. Experimentation: The student has demonstrated a thorough experimentation process including documentation of failures and successful developments.
  1. Attendance / Participation: The student has constituently attended group meetings and contributed to group assignments.
  1. Documentation: The student has created high quality documentation of all project phases, from development to final outcome.


Resources

4xiDraw documentation: http://www.instructables.com/id/4xiDraw/ Grbl,open source CNC/Motion Control Software for Arduino https://github.com/gnea/grbl/wiki Inkscape, open source vector graphics: https://inkscape.org/en/ GCode: Universal GCode Sender: https://winder.github.io/ugs_website/

Examples and References:

Thibault Brevet, Grand Central: https://vimeo.com/45618302 Eugenia Morpugo, Digital Wax Print: http://www.eumo.it/Digital-Wax-Print-2013 Carlo Ratti Associati, open source architecture manifesto: http://adhocracy.athens.sgt.gr/osarc/ Autopen: http://www.smithsonianmag.com/arts-culture/president-obamas-autopen-when-is-an-autograph-not-an-autograph-574822/

Additional Info (from MMModule 2016)

3D printing

3d-printing-fails-2.jpg

3D printing is a widely used additive manufacturing technique. In this block you learn about the different 3D printing techniques, the advantages and disadvantages. We will also look at the language used to control many 3D printing (and many other computer controlled machines). You will see this is actually a very simple technique, however making a good 3D print is not necessarily easy. As for all techniques, experimenting is key in learning how get the most out of 3D printing

Techniques

Fused Deposition Modeling (FDM)

FDM is, due to the consumer 3D printers of this type, the most widely known 3D printing technique. With FDM a layers of material are stacked on top of each other. In this way the object is build up layer by layer. This technique can be used with almost any material that can be extruded. This holds for most plastics when heated to just below the melting point. But also other materials like clay, chocolate, bee wax etc. can be used.

Stereo Litography (SLA)

SLA uses a UV laser to harden a special resin at specific points. The 3D object, in a way, grows out of the resin.

Selective Laser Sintering (SLS)

Laser sintering uses a laser to melt/sinter particles together. This technique can be used to print in metals.

Powder bed and inkjet 3D printing (binder-jetting)

Inkjet 3D printing is a technique very similar to SLS where a laser melts small particles of material together. With inkjet 3D printing a binder is used instead of a laser. The material can be metal particles but also some type of plaster. The printer uses standard inkjet printing cardridges for printing in full colour. After printing the part is very brittle and usually needs to be impregnated with a solidifying material like epoxy or cyanoacrylate.

3D Modeling

To use a 3D printer you'll need a 3D model to print. For this you can use almost any 3D program. Choose the one you are most familiar with and see if it can export STL, OBJ, DAE or AMF files. If you just get started with 3D modeling starting with Sketchup or Tinkercad is a good starting point. Other, more advanced programs like Solidworks, Inventor, Maya, Blender, Rhino etc. can of course be used as well.

If you don't want to go into 3D modeling yourself there are also places where you can download 3D models. The two most widely known are:

Slicing

After you have your 3D model you will need to prepare it for printing. This means you need to slice the model into very thin slice. You can imagine this as slicing a cucumber in very thin slices of e.g. 0.1mm thick, and stack each slice back on top of each other somewhere else. The 3D printers we have at the WdKA are Ultimakers. The program to slice and print your 3D model with these Ultimakers is Cura. You can download this program for OSX, Windows and Linux here: https://ultimaker.com/en/products/cura-software

The Cura program also has the option to save the output of the slicer to a file. This file is called a GCode file or sometimes and nc file. This file contains a list of all the steps the 3D printer is going to do in order to print the model. You can open this gcode file in any text editor and have a look and even change it. This may sometimes be necessary if, for example, you have a very complex print. It may be needed that at some point the print speed needs to go down or the temperature up. This can not be done directly from within the Cura program (without using a plugin) but by adding the appropriate gcode at the right place you can make this work.

GCode

From Wikipedia on G-Code:

G-code (also RS-274), which has many variants, is the common name for the most widely used numerical control (NC) programming language. It is used mainly in computer-aided manufacturing to control automated machine tools. G-code is sometimes called G programming language, not to be confused with LabVIEW's G programming language.

G-code is a language in which people tell computerized machine tools how to make something. The "how" is defined by instructions on where to move, how fast to move, and what path to move. The most common situation is that, within a machine tool, a cutting tool is moved according to these instructions through a toolpath and cuts away material to leave only the finished workpiece. The same concept also extends to noncutting tools such as forming or burnishing tools, photoplotting, additive methods such as 3D printing, and measuring instruments.

Simply put, G-Code is the language that tells the machine what to do, which movements to make, when to deposit material, when to stop etc. etc.. For example, a simple G-Code line that tells the machine to move to position X:10mm, Y:10mm could be:

G1 X10 Y10

Here the code G1 is the code for move to. To draw a square with the 3D printer would require four such movements. Assuming we start from location X0 Y0 Z0 and want to draw a square of 10 by 10 mm:

G1 X0 Y10
G1 X10 Y10
G1 X10 Y0
G1 X0 Y0

For a list of G-Code commands an Ultimaker 3D printer understands (or a printer running Marlin) see: https://github.com/ErikZalm/Marlin/blob/Stable/Marlin/Marlin_main.cpp Scrolling down will reveal the G-Code list.

An easy way to manually control your printer and send G-Codes by hand is Pronterface/Printrun: http://www.pronterface.com



Plotting

Mugplotter.jpg

The cut or pen plotter is a fun and easy machine to work with. It either cuts out material with a small knife or it draws with a stylus. In many ways it is pretty much like a 3D printer without the Z-axis (height). It can lift up and down the knife or stylus of course. Some plotters can also adjust how hard the blade or stylus pushes onto the surface.

Talking to your plotter (HPGL)

You can of course use your standard software to plot or cut out things. But it gets a lot more fun when you actually can control what the plotter is doing. Many plotters talk a language that looks a lot like the GCode we saw for the 3D printer (and CNC mills etc.). The plotters we have a the WdKA you can use talk a language that is call HPGL. It was used mostly by HP plotters but became a standard for most plotters later on.

The language is very simple. Just like GCode you have a simple few letter command and some parameters. For example, to draw a straight line starting at the current position you would send the following text to the plotter:

PD 100,100;

PD stands for Pen DOWN. The two numbers are the X and Y coordinates on your paper.

If you would first want to move to position X100 and Y100 and want to draw a square afterwards you would send this:

PU 100,100;
PD 100,200;
PD 200,200;
PD 200,100;
PD 100,100;

PU of course stands for Pen UP.

HPGL has more commands that make drawing easier, like commands for drawing rectangles, circles and arcs. It also has commands for drawing text. Have a look at the reference: File:HPGL.pdf for all commands.

Connecting to the plotter to send commands

An easy way to connect to your plotter is using a terminal.

For OSX Zterm
For Windows putty

It is also possible to use [Processing] or any other language you like to control the plotter.

Some examples using Processing to control the plotters you can find here:
https://github.com/mywdka/plotter_examples some examples showing basic HPGL commands
https://github.com/mywdka/mouserPlotter/tree/master using the mouse to plot on multiple plotters

Plotter inspiration