X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=mic-table-clamp.scad;h=43b0069892d8203f272344947999010e1d3e5539;hb=0fedccaa06e48a3321278b32cb654a2e85082cc7;hp=3f7c05f2b592276725d0de05c68dad611c9c5a94;hpb=2c4682e10067925420d5b0d7fccef6b763b4d57b;p=reprap-play.git diff --git a/mic-table-clamp.scad b/mic-table-clamp.scad index 3f7c05f..43b0069 100644 --- a/mic-table-clamp.scad +++ b/mic-table-clamp.scad @@ -1,8 +1,11 @@ // -*- C -*- -// print on High Detail +// print Stem and Wingnut on High Detail // but adjust shell thickness to 2mm +// others on Standard + +include include include @@ -21,6 +24,25 @@ thread_nom = 8; thread_pitch = 1.25; thread_act = thread_nom + 0.600; +clamp_l = 40; +clamp_top_th = 7; +clamp_bot_th = 10; +clamp_bot_tooth_h = 2.5; +clamp_bot_tooth_d = 10; +clamp_bot_collar = 20; +clamp_bot_collar_th = 4.0; +clamp_reg_sz = 3; +clamp_w = 15; +clamp_max_table_th = 35; + +clamp_hole_dia = thread_nom + 0.30; + +clamp_reg_clear_x = 2.5; +clamp_reg_clear_y = 0.75; // each side +clamp_reg_extra_x = 4; + +//ct_h = 7; + wingnut_th = 5; wingnut_wall = 4; wingnut_wing_mindia = 17.0; @@ -38,6 +60,8 @@ $test= true; wingnut_cnr = wingnut_wing_th/2 -0.1; +clamp_reg_bot_x_min = stem_base_dia/2 + clamp_reg_clear_x - clamp_reg_sz; + module OurThread(l){ translate([0,0,-0.01]) metric_thread(diameter=thread_act, pitch=thread_pitch, @@ -45,7 +69,7 @@ module OurThread(l){ test=$test, length=l); } -module Stem(){ +module Stem(){ ////toplevel translate([0,0, stem_l -0.1]) english_thread(diameter=positive_dia/inch, threads_per_inch=16, leadin=1, test=$test, @@ -63,7 +87,7 @@ module Stem(){ } } -module Wingnut(){ +module Wingnut(){ ////toplevel difference(){ union(){ cylinder(r= (thread_nom+wingnut_wall)/2, @@ -90,5 +114,74 @@ module Wingnut(){ } } +module ClampCollarPlan(){ + circle(r= thread_nom/2 + clamp_bot_collar_th); +} +module ClampHolePlan(){ + circle(r= clamp_hole_dia/2); +} +module ClampArmPlan(){ + rectfromto([0, -clamp_w/2], + [clamp_l, +clamp_w/2]); +} + +module ClampTop(){ ////toplevel + linear_extrude(height = clamp_top_th, convexity=4) { + difference(){ + union(){ + ClampArmPlan(); + ClampCollarPlan(); + } + ClampHolePlan(); + } + } + linear_extrude(height = clamp_reg_sz, convexity=4) { + difference(){ + for (m=[0,1]){ + mirror([0,m,0]) + translate([0, clamp_reg_sz/2 + clamp_reg_clear_y, 0]) + rectfromto([-clamp_reg_bot_x_min - clamp_reg_extra_x, 0 ], + [0, clamp_reg_sz ]); + } + ClampHolePlan(); + } + } +} + +module ClampBot(){ ////toplevel + linear_extrude(height = clamp_bot_th, convexity=4) { + difference(){ + ClampArmPlan(); + ClampHolePlan(); + } + } + translate([clamp_l, 0, clamp_bot_th-0.1]) + linear_extrude(height = clamp_bot_tooth_h +0.1) + rectfromto([ -clamp_bot_tooth_d, -clamp_w/2 ], + [ 0, +clamp_w/2 ]); + translate([0,0, clamp_bot_th]) + mirror([0,0,1]) + linear_extrude(height = clamp_bot_collar) + difference(){ + ClampCollarPlan(); + ClampHolePlan(); + } + translate([0, 0, clamp_bot_th]) { + linextr(-clamp_reg_sz, clamp_max_table_th+clamp_reg_sz) { + translate([-clamp_reg_bot_x_min, 0]) { + rectfromto([ 0, -clamp_reg_sz/2 ], + [ clamp_reg_sz, +clamp_reg_sz/2 ]); + } + } + linextr(-clamp_reg_sz, 0) { + difference(){ + rectfromto([ -clamp_reg_bot_x_min, -clamp_reg_sz/2 ], + [ 0, +clamp_reg_sz/2 ]); + ClampHolePlan(); + } + } + } +} + //Wingnut(); -Stem(); +//Stem();