JSFiddle - React, Tailwind, and code Playground
HTML
<body>
<div id="spring"></div>
</body>
JavaScript
"use strict"
var MagicSpring = {};
MagicSpring.generate = function () {
"use strict"
var x1, y1, z1, x2, y2, z2, xo, yo, zo, dx, dy, dz, e, de, i, t, os, bt;
var ir, or, lh, h, delta, angle, extr;//inner and outer radius instead of diameter
var l = "";
t = 205;//temperature
bt = 50;//bed temperature
ir = 30;//inner radius
or = 35;//outer radius of helix
lh = .47;//"layer height"in mm(distance in z direction traveled for every revolution in the xy plane
delta = .5;//change in angle(degrees) for every "zigzag" fron inner to outer radius, or back
angle = 0;//starting angle
h = 70;//height of total helix in mm
extr = 0.026;//extrusion factor(mm extruder/mm movement) todo: change to calculated extrusion with fudge factor
os = 50;
xo = or + os;//x offset
yo = or + os;//y offset
zo = 0;//z offset
x1 = x2 = xo + ir;
y1 = y2 = yo;
z1 = z2 = zo;
e = 0;
var outstring="";
var outg = {};
outg.println = function(str){
outstring+= str + "<br>";
}
var String = {};
String.format = function(instr, ...vals){
for (var curr=0;curr < vals.length;curr++){
var curstr = curr==0? '' : curr+1;
var replaceStr = "%" + curstr + "f";
var value = ""+ vals[curr];
var dotPos = value.indexOf('.');
if (dotPos != -1){
instr = instr.replace(replaceStr,value.substring(0,dotPos+7));
} else {
instr = instr.replace(replaceStr,value);
}
}
return instr;
};
var jsMath = {};
jsMath.toRadians = function(val){
return val * Math.PI/180;
}
outg.println("G21");
if (t != 0) { // Set extruder temp if var set above
l = String.format("M104 S%f", t);
outg.println(l);
}
if (bt != 0) { // Set bed temp if var set above
l = String.format("M140 S%f", bt);
outg.println(l);
}
if (bt != 0) { // Wait for bed temp
l = String.format("M190 S%f", bt);
outg.println(l);
}
if (t != 0) { // Wait for extruder temp
l =...