diff --git a/pressfit_headband.scad b/pressfit_headband.scad index 0e77fb5..b37b6a3 100644 --- a/pressfit_headband.scad +++ b/pressfit_headband.scad @@ -1,16 +1,4 @@ $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); @@ -92,7 +80,7 @@ module partial_ring(part, radius, thickness, height) { square([thickness, height], center=true); } -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) { +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) { 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]) { @@ -120,19 +108,19 @@ module headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part for (i=[-size/2:size/2]) { rotate(i*2-rake_width/2, [0, 0, 1]) intersection() { scale([1, 1, rake_stretch/(rake_depth/height)]) - translate([0, rake_width/2, 0]) rotate_extrude(angle=rake_width) + 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-rake_champfer, 0, 0]) + translate([rake_depth/2-size+thickness/2, 0, 0]) color("red") - cube([2*rake_depth, rake_width, height], center=true); + cube([4*rake_depth, 4*rake_depth, height], center=true); } }; }; } -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) { +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) { union() { color("pink") { $a=48; rotate( $a, [0, 0, 1]) { @@ -151,12 +139,15 @@ module pressfit_headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKN part=part, stretch_len=stretch_len, tip_len=tip_len, - tip_bend=tip_bend + tip_bend=tip_bend, + rake_depth=rake_depth, + rake_width=rake_width, + rake_stretch=rake_stretch ); }; } -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) { +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) { union() { rotate( ear_angle, [0, 0, 1]) { translate([-size, 0, 0]) catear( @@ -185,12 +176,15 @@ module catear_headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNES part=part, stretch_len=stretch_len, tip_len=tip_len, - tip_bend=tip_bend + tip_bend=tip_bend, + rake_depth=rake_depth, + rake_width=rake_width, + rake_stretch=rake_stretch ); }; } -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) { +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) { catear_headband( debug=debug, size=size, @@ -200,13 +194,16 @@ module bunnyear_headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKN 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=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) { +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) { catear_headband( debug=debug, size=size, @@ -216,10 +213,13 @@ module foxear_headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNES 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); } -headband(); \ No newline at end of file +foxear_headband(); \ No newline at end of file