From b15717badcfb44e8a0ff117823f395a12f30b44d Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 15 Sep 2012 17:50:22 +0100 Subject: [PATCH] doveclip wip for test print --- doveclip.scad | 49 ++++++++++++++++++++++++++++++++++++++++++++ dovecliptest.scad | 52 +++++++---------------------------------------- 2 files changed, 56 insertions(+), 45 deletions(-) create mode 100644 doveclip.scad diff --git a/doveclip.scad b/doveclip.scad new file mode 100644 index 0000000..8d632ad --- /dev/null +++ b/doveclip.scad @@ -0,0 +1,49 @@ +toothheight = 1.2; +webthick = 1.8; +height = 7; +pindepth = 10; +nomrad = height/2 - toothheight; +minrad = nomrad - 0.5; +maxrad = nomrad + 0.5; + +webgap = 0.4; + +toothgap = webthick + webgap*2; +basethick = toothheight; +jawthick = toothheight; + +module DoveClipPin() { + translate([0,0, height/2]) intersection(){ + union(){ + for (m=[0,1]) { + mirror([0,0,m]) translate([0,0,height/2]) rotate([90,0,0]) + cylinder($fn=20, r1=minrad, r2=maxrad, h=pindepth); + } + translate([-webthick/2, -pindepth, -height/2-1]) + cube([webthick, pindepth, height+2]); + } + translate([-maxrad-1, -pindepth-1, -height/2]) + cube([maxrad*2+2, pindepth+2, height]); + } +} + +module DoveClipEnd(baseextend=1, h=7) { + cubex = nomrad*2 + jawthick*2; + cube0y = -basethick-nomrad*2-toothheight; + centrey = -basethick-nomrad; + difference(){ + translate([-cubex/2, cube0y, 0]) + cube([cubex, -cube0y+baseextend, h]); + translate([0, centrey, -1]) + cylinder($fn=20, r=nomrad, h=h+2); + translate([-toothgap/2, cube0y-1, -1]) + cube([toothgap, toothheight+nomrad+1, h+2]); + } +} + +module DoveClipPair(baseextend=1, h=7) { + delta = nomrad*2 + jawthick*2 + toothgap; + for (x=[-delta/2,delta/2]) + translate([x,0,0]) + DoveClipEnd(baseextend=baseextend, h=h); +} diff --git a/dovecliptest.scad b/dovecliptest.scad index da30101..e322653 100644 --- a/dovecliptest.scad +++ b/dovecliptest.scad @@ -1,52 +1,14 @@ -toothheight = 1.2; -webthick = 1.8; -height = 7; -pindepth = 10; -nomrad = height/2 - toothheight; -minrad = nomrad - 0.5; -maxrad = nomrad + 0.5; -webgap = 0.4; +include -toothgap = webthick + webgap*2; +for (y=[0,-15]) translate([0,y,0]) { + DoveClipPair(); -module DoveClipPin() { - intersection(){ - union(){ - for (m=[0,1]) { - mirror([0,0,m]) translate([0,0,height/2]) rotate([90,0,0]) - cylinder($fn=20, r1=minrad, r2=maxrad, h=pindepth); - } - translate([-webthick/2, -pindepth, -height/2-1]) - cube([webthick, pindepth, height+2]); - } - translate([-maxrad-1, -pindepth-1, -height/2]) - cube([maxrad*2+2, pindepth+2, height]); - } + translate([-8,0,0]) + cube([16,5,7]); + translate([15,0,0]) + DoveClipPin(); } -module DoveClipEnd(baseextend=1, height=7) { - basethick = toothheight; - jawthick = toothheight; - cubex = nomrad*2 + jawthick*2; - cube0y = -basethick-nomrad*2-toothheight; - centrey = -basethick-nomrad; - difference(){ - translate([-cubex/2, cube0y, 0]) - cube([cubex, -cube0y+baseextend, height]); - translate([0, centrey, -1]) - cylinder($fn=20, r=nomrad, h=height+2); - translate([-toothgap/2, cube0y-1, -1]) - cube([toothgap, toothheight+nomrad+1, height+2]); - } -} - -for (x=[0,8]) - translate([x,0,0]) DoveClipEnd(); -translate([-4,0,0]) - cube([16,5,7]); - -//DoveClipPin(); - //translate([-10, //cube([ -- 2.30.2