xxxxxxxxxx
69
function setup() {
createCanvas(windowWidth, windowHeight, WEBGL);
fab = createFab();
let connectButton = createButton("connect");
connectButton.position(20, 20);
connectButton.mousePressed(function () {
fab.connectPrinter(); // choose the serial port to connect to
});
let startButton = createButton("start");
startButton.position(100, 20);
startButton.mousePressed(function () {
fab.print(); // start streaming commands to printer
});
let stopButton = createButton("stop");
stopButton.position(160, 20);
stopButton.mousePressed(function () {
fab.stopPrint(); // stop streaming the commands to printer
});
let exportButton = createButton("export gcode");
exportButton.position(220, 20);
exportButton.mousePressed(function () {
fab.exportGcode(); // export gcode to a file.
});
}
function fabDraw() {
fab.setAbsolutePosition(); // set all axes (x.y/z/extruder) to absolute
fab.setERelative(); // put extruder in relative mode, independent of other axes
fab.autoHome();
fab.setTemps(205, 60); // (nozzle, bed) °C - you should use a temperature best suited for your filament!
fab.introLine(); // draw to lines on the left side of the print bed
let r = 25;
let layerHeight = 0.2;
let h = 20;
let s = 25;
let a = 5;
let f = 8;
let center = new p5.Vector(fab.centerX, fab.centerY);
for (let z = layerHeight; z < h; z += layerHeight) {
for (let t = 0; t <= TWO_PI; t += TWO_PI / 200) {
if (z == layerHeight && t == 0) {
fab.moveRetract(r * cos(t) + center.x, r * sin(t) + center.y, z);
} else {
fab.moveExtrude(
r * cos(t) + center.x,
r * sin(t) + center.y,
z
);
}
}
}
fab.presentPart();
fab.finishPrint();
}
function draw() {
background(255);
fab.render();
}