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).
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
A 3D printing programming API
1. 3D Print with Delphi
Yes, we scan…
http://en.wikipedia.org/wiki/Web_of_Things
Max Kleiner
Script: 362_maxon3D_EKON18.TXT
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. Some Theory and Practise
• Digital Printing World is build on Analog World
•
•
•
••
•
3
070_pas_functionplotter_digital2.txt,
Ex. OpenGL Robot, Landscape Flight
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. 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. 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. 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
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. 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. Questions? Print a World
hack the earth
14
Yes, we hack…
https://github.com/maxkleiner/maXbox3/releases