From 39e669e8f69bb05856bd985179a61b61bb618225 Mon Sep 17 00:00:00 2001 From: djerun Date: Sun, 15 Jun 2025 17:20:49 +0200 Subject: [PATCH] [WIP] catear headband variant with esp mount --- catear_headband_esp_18mm.scad | 70 +++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 catear_headband_esp_18mm.scad diff --git a/catear_headband_esp_18mm.scad b/catear_headband_esp_18mm.scad new file mode 100644 index 0000000..48c903c --- /dev/null +++ b/catear_headband_esp_18mm.scad @@ -0,0 +1,70 @@ +include ; + +use ; +use ; +use ; + +HEIGHT=18; + +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.5, ear_bend_factor=0.15, ear_stretch_factor=1.2, ear_angle=42, chamfer=CHAMFER, chamfer_shape=CHAMFER_SHAPE, with_rake=true, details=true) { + + $a=size/2*ear_scale; + $delta=2*(acos($a/(size*2))-90); + ear_offset=size*sin(90-$delta/2); + + union() { + rotate( ear_angle, [0, 0, 1]) { + translate([-ear_offset, 0, 0]) catear_v1( + debug=debug, + height=height, + thickness=thickness, + side_len=size/2*ear_scale, + bend_factor=ear_bend_factor, + stretch_factor=ear_stretch_factor, + chamfer=chamfer, + chamfer_shape=chamfer_shape, + details=details + ); + } + rotate(-ear_angle, [0, 0, 1]) { + translate([-ear_offset, 0, 0]) catear_v1( + debug=false, + height=height, + thickness=thickness, + side_len=size/2*ear_scale, + bend_factor=ear_bend_factor, + stretch_factor=ear_stretch_factor, + chamfer=chamfer, + chamfer_shape=chamfer_shape, + details=details + ); + } + headband( + size=size, + height=height, + thickness=thickness, + part=part, + stretch_len=stretch_len, + tip_len=tip_len, + tip_bend=tip_bend, + with_rake=with_rake, + details=false + ); + }; +} + +difference() { + translate([0, 0, HEIGHT/2]) + catear_headband(chamfer=0, with_rake=false); + translate([0, 0, 6]) { + cube([100, 100, HEIGHT]); + rotate(90) cube([100, 100, HEIGHT]); + rotate(180) cube([100, 100, HEIGHT]); + translate([0, -60, HEIGHT/2]) rotate(35) cube([70, 70, HEIGHT], center=true); + rotate(-90+180*PART, [0, 0, 1]) + translate([0, -SIZE, HEIGHT-6]) + color("orange") + rotate([90, 0, 0]) + cylinder(r=HEIGHT-6, h=2*THICKNESS, center=true); + } +}