diff --git a/pressfit_headband.scad b/pressfit_headband.scad index b37b6a3..0e77fb5 100644 --- a/pressfit_headband.scad +++ b/pressfit_headband.scad @@ -1,4 +1,16 @@ $fn=360; +DEBUG=false; +SIZE=60; +HEIGHT=4.6; +THICKNESS=3; +PART=0.7; +STRETCH_LEN=40; +TIP_LEN=0.05; +TIP_BEND=20; +RAKE_DEPTH=1; +RAKE_WIDTH=1; +RAKE_STRETCH=1; +RAKE_CHAMPFER=0.5; module inserticle() { cube([4.6, 7.4, 5.4], center=true); @@ -80,7 +92,7 @@ module partial_ring(part, radius, thickness, height) { square([thickness, height], center=true); } -module headband(size=60, height=4.6, thickness=3, part=0.7, stretch_len=40, tip_len=0.1, tip_bend=20, rake_depth=1.5, rake_width=0.5, rake_stretch=2) { +module headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part=PART, stretch_len=STRETCH_LEN, tip_len=TIP_LEN, tip_bend=TIP_BEND, rake_depth=RAKE_DEPTH, rake_width=RAKE_WIDTH, rake_stretch=RAKE_STRETCH, rake_champfer=RAKE_CHAMPFER) { union() { color("purple") partial_ring(part, radius=size, thickness=thickness, height=height); rotate( 90-180*part, [0, 0, 1]) translate([stretch_len/2, size, 0]) { @@ -108,19 +120,19 @@ module headband(size=60, height=4.6, thickness=3, part=0.7, stretch_len=40, tip_ for (i=[-size/2:size/2]) { rotate(i*2-rake_width/2, [0, 0, 1]) intersection() { scale([1, 1, rake_stretch/(rake_depth/height)]) - rotate_extrude(angle=rake_width) + translate([0, rake_width/2, 0]) rotate_extrude(angle=rake_width) translate([rake_depth/2-size+thickness/2, 0, 0]) scale([1, 0.5, 1]) circle(r=rake_depth, $fn=3); - translate([rake_depth/2-size+thickness/2, 0, 0]) + translate([rake_depth/2-size+thickness/2-rake_champfer, 0, 0]) color("red") - cube([4*rake_depth, 4*rake_depth, height], center=true); + cube([2*rake_depth, rake_width, height], center=true); } }; }; } -module pressfit_headband(size=60, height=4.6, thickness=3, part=0.7, stretch_len=40, tip_len=0.1, tip_bend=20, rake_depth=1.5, rake_width=0.5, rake_stretch=2) { +module pressfit_headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part=PART, stretch_len=STRETCH_LEN, tip_len=TIP_LEN, tip_bend=TIP_BEND) { union() { color("pink") { $a=48; rotate( $a, [0, 0, 1]) { @@ -139,15 +151,12 @@ module pressfit_headband(size=60, height=4.6, thickness=3, part=0.7, stretch_len part=part, stretch_len=stretch_len, tip_len=tip_len, - tip_bend=tip_bend, - rake_depth=rake_depth, - rake_width=rake_width, - rake_stretch=rake_stretch + tip_bend=tip_bend ); }; } -module catear_headband(debug=false, size=60, height=4.6, thickness=3, part=0.7, stretch_len=40, tip_len=0.1, tip_bend=20, rake_depth=0.5, rake_width=0.5, rake_stretch=.5, ear_scale=1, ear_bend_factor=0.15, ear_stretch_factor=1.4, ear_angle=48) { +module catear_headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part=PART, stretch_len=STRETCH_LEN, tip_len=TIP_LEN, tip_bend=TIP_BEND, ear_scale=1.4, ear_bend_factor=0.15, ear_stretch_factor=1, ear_angle=42) { union() { rotate( ear_angle, [0, 0, 1]) { translate([-size, 0, 0]) catear( @@ -176,15 +185,12 @@ module catear_headband(debug=false, size=60, height=4.6, thickness=3, part=0.7, part=part, stretch_len=stretch_len, tip_len=tip_len, - tip_bend=tip_bend, - rake_depth=rake_depth, - rake_width=rake_width, - rake_stretch=rake_stretch + tip_bend=tip_bend ); }; } -module bunnyear_headband(debug=false, size=60, height=4.6, thickness=3, part=0.7, stretch_len=40, tip_len=0.1, tip_bend=20, rake_depth=1, rake_width=0.5, rake_stretch=1, ear_scale=0.5, ear_bend_factor=0.2, ear_stretch_factor=10, ear_angle=30) { +module bunnyear_headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part=PART, stretch_len=STRETCH_LEN, tip_len=TIP_LEN, tip_bend=TIP_BEND, ear_scale=0.5, ear_bend_factor=0.2, ear_stretch_factor=10, ear_angle=30) { catear_headband( debug=debug, size=size, @@ -194,16 +200,13 @@ module bunnyear_headband(debug=false, size=60, height=4.6, thickness=3, part=0.7 stretch_len=stretch_len, tip_len=tip_len, tip_bend=tip_bend, - rake_depth=rake_depth, - rake_width=rake_width, - rake_stretch=rake_stretch, ear_scale=ear_scale, ear_bend_factor=ear_bend_factor, ear_stretch_factor=ear_stretch_factor, ear_angle=ear_angle); } -module foxear_headband(debug=false, size=60, height=4.6, thickness=3, part=0.7, stretch_len=40, tip_len=0.1, tip_bend=20, rake_depth=1, rake_width=0.5, rake_stretch=1, ear_scale=1.2, ear_bend_factor=0.01, ear_stretch_factor=1.2, ear_angle=30) { +module foxear_headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part=PART, stretch_len=STRETCH_LEN, tip_len=TIP_LEN, tip_bend=TIP_BEND, ear_scale=1.2, ear_bend_factor=0.01, ear_stretch_factor=1.2, ear_angle=30) { catear_headband( debug=debug, size=size, @@ -213,13 +216,10 @@ module foxear_headband(debug=false, size=60, height=4.6, thickness=3, part=0.7, stretch_len=stretch_len, tip_len=tip_len, tip_bend=tip_bend, - rake_depth=rake_depth, - rake_width=rake_width, - rake_stretch=rake_stretch, ear_scale=ear_scale, ear_bend_factor=ear_bend_factor, ear_stretch_factor=ear_stretch_factor, ear_angle=ear_angle); } -foxear_headband(); \ No newline at end of file +headband(); \ No newline at end of file