From 93ed2a45cad400d846d0d81df16ffa0ff9a27bd5 Mon Sep 17 00:00:00 2001 From: daniel watson Date: Wed, 16 May 2018 17:53:51 -0700 Subject: [PATCH] add erin's cat ears --- erin/cat_ears.scad | 117 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 erin/cat_ears.scad diff --git a/erin/cat_ears.scad b/erin/cat_ears.scad new file mode 100644 index 0000000..65f1ded --- /dev/null +++ b/erin/cat_ears.scad @@ -0,0 +1,117 @@ +$fn = 100; + +head_top_inner_radius = 76; +band_top_width = 5; +band_thickness = 3; +head_top_outer_radius = head_top_inner_radius + band_thickness; +buffer=10; +band_height = 127; + +head_side_inner_radius = 127; +head_side_outer_radius = head_side_inner_radius + band_thickness; + +module hairband() { + + difference() { + + difference() { + + union() { + difference() { + cylinder(r=head_top_outer_radius, h=band_top_width, center=true); + cylinder(r=head_top_inner_radius, h=band_top_width+buffer, center=true); + } + + translate([head_side_outer_radius - head_top_outer_radius,0,0]) + difference() { + cylinder(r=head_side_outer_radius, h=band_top_width, center=true); + cylinder(r=head_side_inner_radius, h=band_top_width+buffer, center=true); + } + + translate([-(head_side_outer_radius - head_top_outer_radius),0,0]) + difference() { + cylinder(r=head_side_outer_radius, h=band_top_width, center=true); + cylinder(r=head_side_inner_radius, h=band_top_width+buffer, center=true); + } + } + + difference() { + translate([-(head_side_outer_radius - head_top_outer_radius),0,0]) + cylinder(r=head_side_inner_radius, center=true, h=band_top_width+buffer); + translate([-head_side_outer_radius, -0, 0]) + cube([head_side_outer_radius*2, head_side_outer_radius*2, band_top_width+buffer*2], center=true); + translate([0, head_side_outer_radius/2, 0]) + cube([head_side_outer_radius*2, head_side_outer_radius, band_top_width+buffer*2], center=true); + } + + difference() { + translate([(head_side_outer_radius - head_top_outer_radius),0,0]) + cylinder(r=head_side_inner_radius, center=true, h=band_top_width+buffer); + translate([head_side_outer_radius, 0, 0]) + cube([head_side_outer_radius*2, head_side_outer_radius*2, band_top_width+buffer*2], center=true); + translate([0, head_side_outer_radius/2, 0]) + cube([head_side_outer_radius*2, head_side_outer_radius, band_top_width+buffer*2], center=true); + } + + translate([0, -band_height, 0]) + cube([head_side_inner_radius*2, head_side_inner_radius, band_top_width+buffer*2], center=true); + + } + + + difference() { + cylinder(r=head_side_outer_radius*2+buffer, h=band_top_width+buffer, center=true); + + cylinder(r=head_top_outer_radius, center=true, h=band_top_width+buffer*3); + intersection() { + translate([head_side_outer_radius - head_top_outer_radius,0,0]) + cylinder(r=head_side_outer_radius, h=band_top_width+buffer*3, center=true); + translate([-head_top_outer_radius+buffer/2,-head_top_outer_radius,0]) + cube([head_top_outer_radius+buffer,head_top_outer_radius*2,band_top_width+buffer*3], center=true); + } + intersection() { + translate([-(head_side_outer_radius - head_top_outer_radius),0,0]) + cylinder(r=head_side_outer_radius, h=band_top_width+buffer*3, center=true); + translate([head_top_outer_radius+buffer,-head_top_outer_radius,0]) + cube([head_top_outer_radius+buffer,head_top_outer_radius*2,band_top_width+buffer*3], center=true); + } + } + } +} + +hairband(); + +module ears() { + translate([0, 0, - band_top_width / 2]) { + rotate([90,0,30]) { + translate([-0.2, 0, 1]) { + linear_extrude(height=58.5) { + square([band_thickness, band_top_width]); + } + } + } + rotate([90,0,-30]) { + linear_extrude(height=57.5) { + square([band_thickness, band_top_width]); + } + } + + translate([band_thickness/2, 0, 0]) + cylinder(h=band_top_width, r=band_thickness/2); + } } + +translate([-57, 17, 0]) { + rotate([0, 0, 30]) { + translate([head_top_outer_radius/2, head_top_outer_radius, 0]) + ears(); + } +} + +mirror([200, 0, 0]) { + translate([-57, 17, 0]) { + rotate([0, 0, 30]) { + translate([head_top_outer_radius/2, head_top_outer_radius, 0]) + ears(); + } + } +} -- 2.30.2