From af783b9334f536d8adde19d39ed948c5274fe948 Mon Sep 17 00:00:00 2001 From: Michael Krelin Date: Fri, 08 Jan 2016 22:12:09 +0000 Subject: duet holder --- (limited to 'delta.jscad') diff --git a/delta.jscad b/delta.jscad index 5c63b41..dcf6fcc 100644 --- a/delta.jscad +++ b/delta.jscad @@ -668,6 +668,62 @@ function foot_foot() { return rv.setColor(CONFIG.color.softparts); } +function duetholder() { + var DH = CONFIG.duetholder; + var DHD = CD.duetholder; + var hw = DH.bolt.head.d+2*DH.margin; + var s = DH.bolt.l-CONFIG.extrusion.slotdepth+PRINT.play_tolerance*2; + var lower = CONFIG.foot.h-2*DH.s; + var hl = DHD.distance-CONFIG.extrusion.w; + var rv = union([ + CSG.cube({ // vertical + corner1: [-hw/2,s,CONFIG.extrusion.w], + corner2: [hw/2,0,-lower] + }), + CSG.cube({ // horizontal extrusion + corner1: [-hw/2,-CONFIG.extrusion.w,0], + corner2: [ hw/2,0,-s] + }), + CSG.cube({ // horizontal + corner1: [-hw/2,0,-lower], + corner2: [hw/2,hl,-lower+DH.s] + }), + CSG.cylinder({ // boltend of horizontal part + start: [0,hl,-lower], end: [0,hl,-lower+DH.s], + radius: hw/2 + }) + ]); + rv = rv.subtract([ + CSG.cylinder({ // through vertical + start: [0,-1,CONFIG.extrusion.w/2], end: [0,s+1,CONFIG.extrusion.w/2], + radius: DH.bolt.d/2+PRINT.slide_tolerance + }), + CSG.cylinder({ // through horizontal to extrusion + start: [0,-CONFIG.extrusion.w/2,-s-1], + end: [0,-CONFIG.extrusion.w/2,1], + radius: DH.bolt.d/2+PRINT.slide_tolerance + }), + CSG.cube({ // cut off + corner1: [-hw/2-1,-2*s,0], + corner2: [hw/2+1,0,-2*s] + }).rotateX(45).translate([0,-CONFIG.extrusion.w,0]), + CSG.cylinder({ // duet bolt + start: [0,hl,-lower], end: [0,hl,-lower+DH.s], + radius: DH.bolt.d/2+PRINT.slide_tolerance + }) + ]); + var cp = [0,hl,-lower+DH.s]; + rv.properties.duet = new CSG.Properties(); + rv.properties.duet.c_sw = new CSG.Connector(cp,[0,0,1],[1,0,0]); + rv.properties.duet.c_se = new CSG.Connector(cp,[0,0,1],[1,0,0]); + rv.properties.duet.c_ne = new CSG.Connector(cp,[0,0,1],[-Math.cos(Math.PI/3),-Math.sin(Math.PI/3),0]); + rv.properties.duet.c_nw = new CSG.Connector(cp,[0,0,1],[-Math.cos(Math.PI/3),Math.sin(Math.PI/3),0]); + rv.properties.c_h = new CSG.Connector([0,-CONFIG.extrusion.w/2,0],[0,0,1],[1,0,0]); + rv.properties.c_v = new CSG.Connector([0,0,CONFIG.extrusion.w/2],[0,-1,0],[0,0,1]); + rv.properties.P = new CSG.Connector([-hw/2,0,0],[1,0,0],[0,1,0]); + return rv.setColor(CONFIG.color.parts); +} + function refaxes(o) { if(!o) o = {}; var l = o.l||20, g = o.g||0.7; -- cgit v0.9.0.2