X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=reprap-play.git;a=blobdiff_plain;f=filamentspool.scad;h=0eba9fae60abfc455e26d6871f9f26384e4e2a5b;hp=728ba69d23318f8b9ccb0cb48db5601c87b928bc;hb=fc3343d1347461bcf1f9233db083a9dac66c7c34;hpb=849aadefbe1c9c2e37930a42f6ce99144999842d diff --git a/filamentspool.scad b/filamentspool.scad index 728ba69..0eba9fa 100644 --- a/filamentspool.scad +++ b/filamentspool.scad @@ -207,6 +207,12 @@ wingthick=3; armendwallthick=selsz(2.5, 1.8, 2.5); armendbasethick=selsz(1.2, 1.2, 1.2); +numbers_relief = 0.7; +numbers_tick_len = 8; +numbers_tick_width = 0.75; +numbers_tick_linespc = 1.0; +numbers_height_allow = 8; + axlehorizoffset = 12.5; axlevertheight = 100; towercliph = 16; @@ -241,12 +247,18 @@ include include include +real_exteffrad = selsz(exteffrad, + hubeffrad + DoveClip_depth(), + hubeffrad + nondove_armbase); + channelwidth = prongthick + channelslop; channeldepth = prongwidth + ratchettoothheight; totalwidth = armendwallthick*2 + channelwidth; totalheight = channeldepth + armendbasethick; stalkwidth = prongwidth + prongstalkxwidth; +tau = PI*2; + module ArmEnd(length=armend_length){ ////toplevel if (usedove()) { translate([ratchettoothsmoothr, channelwidth/2, -armendbasethick]) { @@ -265,6 +277,35 @@ module ArmEnd(length=armend_length){ ////toplevel } } + for (otherside=[0,1]) { + for (circum = [300:100:1500]) { + assign(rad = circum / tau) + assign(fn = str("filamentspool-number-n",circum,".dxf")) + assign(rotateoffset = [0, totalwidth/2, 0]) + assign(xlen = rad - real_exteffrad) { + if (xlen >= numbers_tick_width/2 + + (otherside ? numbers_height_allow : 0) && + xlen <= length - (otherside ? 0 : numbers_height_allow)) + translate([xlen, -armendwallthick, + -armendbasethick + (totalheight - numbers_tick_len)/2]) + translate(rotateoffset) + rotate([0,0, otherside*180]) + translate(-rotateoffset){ + translate([-numbers_tick_width/2, -1, 0]) + cube([numbers_tick_width, numbers_relief+1, numbers_tick_len]); + translate([numbers_tick_width/2 + numbers_tick_linespc, + 1, + numbers_tick_len]) + rotate([90,0,0]) + rotate([0,0,-90]) + linear_extrude(height= numbers_relief+1) + // scale(templatescale) + import(file=fn, convexity=100); + } + } + } + } + difference(){ translate([0, -armendwallthick, -armendbasethick]) cube([length, totalwidth, totalheight]); @@ -897,10 +938,10 @@ module FilamentGuideArmPrint(){ ////toplevel FilamentGuideArm(); } -module Demo(){ - translate([-hubeffrad-30,50,0]) Hub(); +module Demo(){ ////toplevel + translate([-real_exteffrad,-20,0]) Hub(); ArmEnd(); - translate([0,50,0]) FilamentCup(); + translate([ratchettooth*2, 30, 0]) FilamentCup(); } //ArmEnd();