From 10e299ccac1b7e6ab393df441e7e6e24baefc3ca Mon Sep 17 00:00:00 2001 From: Michael Krelin Date: Wed, 13 Jan 2016 09:51:01 +0000 Subject: heatbed and glass --- diff --git a/delta.jscad b/delta.jscad index 9061c28..83122af 100644 --- a/delta.jscad +++ b/delta.jscad @@ -725,6 +725,41 @@ function duetholder() { return rv.setColor(CONFIG.color.parts); } +function heatbed() { + var rv = CSG.cylinder({ + start: [0,0,0], end: [0,0,CONFIG.heatbed.h], + radius: CONFIG.heatbed.r, resolution: 72 + }); + var screw = CSG.cylinder({ + start: [0,-CONFIG.heatbed.sr,-1], + end: [0,-CONFIG.heatbed.sr,CONFIG.heatbed.h+1], + radius: 3/2 + }); + var screws = []; + for(var a=0;a<360;a+=60) screws.push(screw.rotateZ(a)); // TODO: connectors + rv = rv.subtract(screws); + rv.properties.c_glass = new CSG.Connector([0,0,CONFIG.heatbed.h],[0,0,1],[1,0,0]); + rv.properties.P = new CSG.Connector([0,0,-CONFIG.foot.h-CONFIG.extrusion.w*2-CONFIG.base.gap],[0,0,1],[1,0,0]); + rv.properties.vitamin = true; + return rv.setColor(CONFIG.color.heatbed); +} +function glass() { + var rv = CSG.cylinder({ + start: [0,0,0], end: [0,0,CONFIG.glass.h], + radius: CONFIG.glass.r, resolution: 72 + }); + rv.properties.c_bed = new CSG.Connector([0,0,0],[0,0,1],[1,0,0]); + rv.properties.P = new CSG.Connector([0,0,-CONFIG.foot.h-CONFIG.heatbed.h],[0,0,1],[1,0,0]); + rv.properties.vitamin = true; + return rv.setColor(CONFIG.color.glass); +} +function platform() { + var b = heatbed(); + var g = glass(); + g = g.connectTo(g.properties.c_bed,b.properties.c_glass,false,0); + return b.union(g); +} + function refaxes(o) { if(!o) o = {}; var l = o.l||20, g = o.g||0.7; @@ -769,6 +804,8 @@ var PARTS = { var rv = union(cols).union(sides.map(union)).union(feet).union([ d,dhsw,dhse,dhne,dhnw ]); + var p = P(platform()); + rv = rv.union(p); rv.properties.P = new CSG.Connector([0,0,0],[0,0,1],[1,0,0]); return rv; }, -- cgit v0.9.0.2