Successfully reported this slideshow.

A 3D printing programming API

3

Share

Loading in …3
×
1 of 14
1 of 14

A 3D printing programming API

3

Share

Download to read offline

Description

The Doodle3D WiFi-Box makes almost all 3D printers wirelessly controllable through a simple REST API. This means you can control them
using Processing, openFrameworks, JavaScript, Arduino, Delphi, Cinder etc. Basically any language that can send and receive HTTP requests (AJAX).

Transcript

  1. 1. 3D Print with Delphi Yes, we scan… http://en.wikipedia.org/wiki/Web_of_Things Max Kleiner Script: 362_maxon3D_EKON18.TXT
  2. 2. Agenda (3D Printing Web of Things) 2 • What is 3D with physics / elements (xyz) • 3D Printing Overview, History • Programming in G-Code or Turtle • G-Code Motor Firmware ex. Servo • Doodle 3D API • NC Code Examples Test http://scholz2000.com/ A Short History of Time 1991 Application Program 1995 Application 1998 Applet 2010 App 2015 A (Scholz2000, Android, Arduino, ARM)
  3. 3. Some Theory and Practise • Digital Printing World is build on Analog World • • • •• • 3 070_pas_functionplotter_digital2.txt, Ex. OpenGL Robot, Landscape Flight
  4. 4. 33DD VVeeccttoorrss • 4 Ex. 530_3DLab.txt
  5. 5. Need Printer Things Printing technology: FFF (Fused Filament Fabrication) Printing volume: 170x170x160m Layer resolution: 100μ (0.1mm) X-Y-Z precision: 20μ (0.02mm) Filament diameter: 1.75mm Heated bed: No Bed autoleveling: Yes Printing material: PLA (any material that does not require a heated bed) Time to first print-out: <1m Injector diameter: 0.4mm Filament capacity: 500gr Dimensions: 275x275x360 Approx. weight: 7Kg Chassis: Unibody aluminum 5 Ex. 3DDrucken_auf_dem_Weg_zur_Massen.pdf
  6. 6. Proof of Concept - Lord of the Prints 6
  7. 7. Case Study Simulation 7 import httprocessing.*; TurtleSim String boxIP = "10.0.0.188"; PostRequest post = new PostRequest("http://"+boxIP+"/d3dapi/printer/print"); void setup() { post.addData("gcode", "G28 X0.0 Y0.0 Z0.0"); //Send printer to the x0 and y0 position post.addData("start", "true"); post.send(); size(100, 100);
  8. 8. Use Case Diamond Print - Shine on you crazy… void draw() { //press a key to activate if (keyPressed) { point(mouseX,mouseY); //makes the printer move to the mouse location. //Note that the X and Y will expand if you expand the size() and it is possible that you make the printer move outside of its border! //This can do harm or damage to your 3D printer!! post.addData("gcode", "G1 X"+mouseX+" Y"+mouseY+" F5000"); post.addData("start", "true"); post.send(); } 8 var idHTTP, http1: TIDHTTP; idHTTP2: TIDHTTPRequest; zipStream: TFileStream; Send a command over http to COM on board to move ServoM
  9. 9. Solution Arduino G-Code 9 G-Code firmware void setup() { // initialize digital pin as an output. pinMode(ledPin11, OUTPUT); Serial.begin(9600); void loop () { val = Serial.read(); //read serial port if (val !=-1){ if (val=='1'){ digitalWrite(ledPin1,HIGH); } else if (val=='A'){ digitalWrite(ledPin1,LOW); } Tutor: http://www.softwareschule.ch/download/maxbox_starter18_3.pdf
  10. 10. Solution Doodle3D Rest G-Code http://www.softwareschule.ch/examples/306_SPS_doodle3Dhttp_command.txt http://www.softwareschule.ch/examples/443_webserver_arduino_light4motor.txt 10 G-Code is a commonly use language to control CNC machines. G-Code is a light-weight, simple to parse format, designed to be able to run on modest hardware, such as the Arduino loaded with this firmware (in this case). It is a format that is prepared in advance and created from the digital design files (CAD files). The G-Code firmware source is available from SourceForge as part of the RepRap Arduino firmware package. http://www.doodle3d.com/help/g-code
  11. 11. 11 Arduino G-Code Interpreter 1.1 Introduction 1.2 Files 1.2.1 Installation 1.3 Usage 1.3.1 Firmware Configuration 1.3.1.1 X_STEPS_PER_INCH 1.3.1.2 X_STEPS_PER_MM 1.3.1.3 X_MAX_SPEED 1.3.1.4 X_MOTOR_STEPS 1.3.1.5 Y_*, Z_* 1.3.1.6 FAST_XY_FEEDRATE and FAST_Z_FEEDRATE 1.3.2 Sending Commands 1.4 Implementation 1.4.1 G-Codes 1.4.2 M Codes 1.5 TODO 1.6 Bugs 356_3D_printer.txt http://en.wikipedia.org/wiki/Household_appliances
  12. 12. Test the Print http://192.168.1.40:8080/R 12 Its heavy duty unibody aluminum chassis, along with its light extruder, allow for high printing speeds. The materials the printer parts are made of have been carefully selected to be both strong and lightweight, and were tested for structural resistance in our manufacturing facilities.l... ;).
  13. 13. Thanks! Links to Rights the source is the code http://www.softwareschule.ch/maxbox.htm http://sourceforge.net/projects/maxbox http://sourceforge.net/apps/mediawiki/maxbox/ http://en.wikipedia.org/wiki/Arduino http://www.softwareschule.ch/download/webofthings2013.pdf Book Patterns konkret http://www.amazon.de/Patterns-konkret-Max-Kleiner/dp/3935042469 maXbox https://github.com/maxkleiner/maXbox3/releases http://www.cnc-arena.com/de/forum/gcode-programmierung-fuer-3d-in-c--22109.html http://www.doodle3d.com/help/api-documentation http://replicat.org/mcodes http://www.doodle3d.com/help/g-code http://simplegcoder.com/js_editor/ 13
  14. 14. Questions? Print a World hack the earth 14 Yes, we hack… https://github.com/maxkleiner/maXbox3/releases

Description

The Doodle3D WiFi-Box makes almost all 3D printers wirelessly controllable through a simple REST API. This means you can control them
using Processing, openFrameworks, JavaScript, Arduino, Delphi, Cinder etc. Basically any language that can send and receive HTTP requests (AJAX).

Transcript

  1. 1. 3D Print with Delphi Yes, we scan… http://en.wikipedia.org/wiki/Web_of_Things Max Kleiner Script: 362_maxon3D_EKON18.TXT
  2. 2. Agenda (3D Printing Web of Things) 2 • What is 3D with physics / elements (xyz) • 3D Printing Overview, History • Programming in G-Code or Turtle • G-Code Motor Firmware ex. Servo • Doodle 3D API • NC Code Examples Test http://scholz2000.com/ A Short History of Time 1991 Application Program 1995 Application 1998 Applet 2010 App 2015 A (Scholz2000, Android, Arduino, ARM)
  3. 3. Some Theory and Practise • Digital Printing World is build on Analog World • • • •• • 3 070_pas_functionplotter_digital2.txt, Ex. OpenGL Robot, Landscape Flight
  4. 4. 33DD VVeeccttoorrss • 4 Ex. 530_3DLab.txt
  5. 5. Need Printer Things Printing technology: FFF (Fused Filament Fabrication) Printing volume: 170x170x160m Layer resolution: 100μ (0.1mm) X-Y-Z precision: 20μ (0.02mm) Filament diameter: 1.75mm Heated bed: No Bed autoleveling: Yes Printing material: PLA (any material that does not require a heated bed) Time to first print-out: <1m Injector diameter: 0.4mm Filament capacity: 500gr Dimensions: 275x275x360 Approx. weight: 7Kg Chassis: Unibody aluminum 5 Ex. 3DDrucken_auf_dem_Weg_zur_Massen.pdf
  6. 6. Proof of Concept - Lord of the Prints 6
  7. 7. Case Study Simulation 7 import httprocessing.*; TurtleSim String boxIP = "10.0.0.188"; PostRequest post = new PostRequest("http://"+boxIP+"/d3dapi/printer/print"); void setup() { post.addData("gcode", "G28 X0.0 Y0.0 Z0.0"); //Send printer to the x0 and y0 position post.addData("start", "true"); post.send(); size(100, 100);
  8. 8. Use Case Diamond Print - Shine on you crazy… void draw() { //press a key to activate if (keyPressed) { point(mouseX,mouseY); //makes the printer move to the mouse location. //Note that the X and Y will expand if you expand the size() and it is possible that you make the printer move outside of its border! //This can do harm or damage to your 3D printer!! post.addData("gcode", "G1 X"+mouseX+" Y"+mouseY+" F5000"); post.addData("start", "true"); post.send(); } 8 var idHTTP, http1: TIDHTTP; idHTTP2: TIDHTTPRequest; zipStream: TFileStream; Send a command over http to COM on board to move ServoM
  9. 9. Solution Arduino G-Code 9 G-Code firmware void setup() { // initialize digital pin as an output. pinMode(ledPin11, OUTPUT); Serial.begin(9600); void loop () { val = Serial.read(); //read serial port if (val !=-1){ if (val=='1'){ digitalWrite(ledPin1,HIGH); } else if (val=='A'){ digitalWrite(ledPin1,LOW); } Tutor: http://www.softwareschule.ch/download/maxbox_starter18_3.pdf
  10. 10. Solution Doodle3D Rest G-Code http://www.softwareschule.ch/examples/306_SPS_doodle3Dhttp_command.txt http://www.softwareschule.ch/examples/443_webserver_arduino_light4motor.txt 10 G-Code is a commonly use language to control CNC machines. G-Code is a light-weight, simple to parse format, designed to be able to run on modest hardware, such as the Arduino loaded with this firmware (in this case). It is a format that is prepared in advance and created from the digital design files (CAD files). The G-Code firmware source is available from SourceForge as part of the RepRap Arduino firmware package. http://www.doodle3d.com/help/g-code
  11. 11. 11 Arduino G-Code Interpreter 1.1 Introduction 1.2 Files 1.2.1 Installation 1.3 Usage 1.3.1 Firmware Configuration 1.3.1.1 X_STEPS_PER_INCH 1.3.1.2 X_STEPS_PER_MM 1.3.1.3 X_MAX_SPEED 1.3.1.4 X_MOTOR_STEPS 1.3.1.5 Y_*, Z_* 1.3.1.6 FAST_XY_FEEDRATE and FAST_Z_FEEDRATE 1.3.2 Sending Commands 1.4 Implementation 1.4.1 G-Codes 1.4.2 M Codes 1.5 TODO 1.6 Bugs 356_3D_printer.txt http://en.wikipedia.org/wiki/Household_appliances
  12. 12. Test the Print http://192.168.1.40:8080/R 12 Its heavy duty unibody aluminum chassis, along with its light extruder, allow for high printing speeds. The materials the printer parts are made of have been carefully selected to be both strong and lightweight, and were tested for structural resistance in our manufacturing facilities.l... ;).
  13. 13. Thanks! Links to Rights the source is the code http://www.softwareschule.ch/maxbox.htm http://sourceforge.net/projects/maxbox http://sourceforge.net/apps/mediawiki/maxbox/ http://en.wikipedia.org/wiki/Arduino http://www.softwareschule.ch/download/webofthings2013.pdf Book Patterns konkret http://www.amazon.de/Patterns-konkret-Max-Kleiner/dp/3935042469 maXbox https://github.com/maxkleiner/maXbox3/releases http://www.cnc-arena.com/de/forum/gcode-programmierung-fuer-3d-in-c--22109.html http://www.doodle3d.com/help/api-documentation http://replicat.org/mcodes http://www.doodle3d.com/help/g-code http://simplegcoder.com/js_editor/ 13
  14. 14. Questions? Print a World hack the earth 14 Yes, we hack… https://github.com/maxkleiner/maXbox3/releases

More Related Content

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

×