diff --git a/catear_headband.scad b/catear_headband.scad index 142ade5..a54398d 100644 --- a/catear_headband.scad +++ b/catear_headband.scad @@ -3,7 +3,7 @@ include ; use ; use ; -module catear(height, thickness, fractal=0, side_len=30, bend_factor=0.5, stretch_factor=1.2, debug=false, chamfer=CHAMFER, chamfer_shape=CHAMFER_SHAPE, details=true) { +module catear(height, thickness, fractal=0, side_len=30, bend_factor=0.5, stretch_factor=1.2, debug=false, chamfer=CHAMFER, chamfer_shape=CHAMFER_SHAPE, details=true, end_caps=true) { $A=[0, side_len/2]; $B=[0,-side_len/2]; $C=[-(side_len/2/sin(120))*1.5*stretch_factor, 0]; @@ -42,15 +42,17 @@ module catear(height, thickness, fractal=0, side_len=30, bend_factor=0.5, stretc thickness=thickness, height=height ); - translate($A) color("#aaaaaa") - chamfer(size=chamfer, child_h=height, child_bot=-height/2, shape=chamfer_shape) - cylinder(h=height, d=thickness, center=true); - translate($B) color("#bbbbbb") - chamfer(size=chamfer, child_h=height, child_bot=-height/2, shape=chamfer_shape) - cylinder(h=height, d=thickness, center=true); - translate($C) color("#cccccc") - chamfer(size=chamfer, child_h=height, child_bot=-height/2, shape=chamfer_shape) - cylinder(h=height, d=thickness, center=true); + if (end_caps) { + translate($A) color("#aaaaaa") + chamfer(size=chamfer, child_h=height, child_bot=-height/2, shape=chamfer_shape) + cylinder(h=height, d=thickness, center=true); + translate($B) color("#bbbbbb") + chamfer(size=chamfer, child_h=height, child_bot=-height/2, shape=chamfer_shape) + cylinder(h=height, d=thickness, center=true); + translate($C) color("#cccccc") + chamfer(size=chamfer, child_h=height, child_bot=-height/2, shape=chamfer_shape) + cylinder(h=height, d=thickness, center=true); + } if (debug) { echo("A", $A, "a", $a, "alpha", $alpha); diff --git a/pressfit_bunnyears.scad b/pressfit_bunnyears.scad new file mode 100644 index 0000000..7a34637 --- /dev/null +++ b/pressfit_bunnyears.scad @@ -0,0 +1,38 @@ +include ; + +use ; +use ; +use ; + +$fn=90; +EAR_SCALE = 0.5; +EAR_BEND_FACTOR = 0.2; +EAR_STRETCH_FACTOR = 8; +STEP_SIZE = .5; + +//difference() { + translate([20*pow(0.99, SIZE/2*EAR_SCALE-1-THICKNESS), 0, -THICKNESS/2]) + /*union()*/ for (i=[0:STEP_SIZE:SIZE/2*EAR_SCALE-1]) { + j=pow(0.99, i); + chamfer_ = floor(abs(2*i/(SIZE/2*EAR_SCALE-1)-1)); + translate([-j*20, 0, 0]) + rotate(90, [0, 1, 0]) + /*chamfer(size=1, child_h=1, child_bot=-0.5, shape=CHAMFER_SHAPE)*/ { + echo("i", i, "j", j, "chamfer_", chamfer_); + catear( + debug=DEBUG, + height=INSERTICLE_Z*1.2, + thickness=THICKNESS, + side_len=SIZE/2*EAR_SCALE-i, + bend_factor=EAR_BEND_FACTOR, + stretch_factor=EAR_STRETCH_FACTOR, + chamfer=0, //chamfer_, + chamfer_shape=CHAMFER_SHAPE, + details=false, + end_caps=false + ); + } + } +// translate([0, 0, -THICKNESS]) cube([100, 100, THICKNESS], center=true); +// scale([1, 1, 2]) inserticle(); +//} diff --git a/pressfit_catears.scad b/pressfit_catears.scad index 7697690..69b0e1d 100644 --- a/pressfit_catears.scad +++ b/pressfit_catears.scad @@ -7,26 +7,28 @@ use ; EAR_SCALE = 1.5; EAR_BEND_FACTOR = 0.15; EAR_STRETCH_FACTOR = 1.2; +STEP_SIZE = 1; difference() { -translate([20*pow(0.99, SIZE/2*EAR_SCALE-1-THICKNESS), 0, -THICKNESS/2]) -union() for (i=[0:SIZE/2*EAR_SCALE-1]) { - j=pow(0.99, i); - chamfer_ = floor(abs(2*i/(SIZE/2*EAR_SCALE-1)-1)); - translate([-j*20, 0, 0]) - rotate(90, [0, 1, 0]) - /*chamfer(size=1, child_h=1, child_bot=-0.5, shape=CHAMFER_SHAPE)*/ - catear( - debug=DEBUG, - height=INSERTICLE_Z*1.2, - thickness=THICKNESS, - side_len=SIZE/2*EAR_SCALE-i, - bend_factor=EAR_BEND_FACTOR, - stretch_factor=EAR_STRETCH_FACTOR, - chamfer=chamfer_, - chamfer_shape=CHAMFER_SHAPE - ); + translate([20*pow(0.99, SIZE/2*EAR_SCALE-1-THICKNESS), 0, -THICKNESS/2]) + union() for (i=[0:STEP_SIZE:SIZE/2*EAR_SCALE-1]) { + j=pow(0.99, i); + chamfer_ = floor(abs(2*i/(SIZE/2*EAR_SCALE-1)-1)); + translate([-j*20, 0, 0]) + rotate(90, [0, 1, 0]) + /*chamfer(size=1, child_h=1, child_bot=-0.5, shape=CHAMFER_SHAPE)*/ + catear( + debug=DEBUG, + height=INSERTICLE_Z*1.2, + thickness=THICKNESS, + side_len=SIZE/2*EAR_SCALE-i, + bend_factor=EAR_BEND_FACTOR, + stretch_factor=EAR_STRETCH_FACTOR, + chamfer=0, //chamfer_, + chamfer_shape=CHAMFER_SHAPE, + end_caps=false + ); + } + translate([0, 0, -THICKNESS]) cube([100, 100, THICKNESS], center=true); + scale([1, 1, 2]) inserticle(); } -translate([0, 0, -THICKNESS]) cube([100, 100, THICKNESS], center=true); -scale([1, 1, 2]) inserticle(); -} \ No newline at end of file