Skip to content

Instantly share code, notes, and snippets.

@ridercz
Created September 19, 2020 19:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ridercz/3d85ddbd28d11c570791e8038689803c to your computer and use it in GitHub Desktop.
Save ridercz/3d85ddbd28d11c570791e8038689803c to your computer and use it in GitHub Desktop.
/* [Parameters] */
inner_diameter_a = 20;
opening_angle_a = 60;
inner_diameter_b = 22;
opening_angle_b = 110;
height = 20;
wall_thickness = 2.49; // 6 perimeters of 0.4 mm nozzle
/* [Hidden] */
$fn = 64;
outer_diameter_a = inner_diameter_a + 2 * wall_thickness;
outer_diameter_b = inner_diameter_b + 2 * wall_thickness;
center_span = (outer_diameter_a + outer_diameter_b) / 2 - wall_thickness;
opening_triangle_a_points = [
[0, 0],
[outer_diameter_a * sin(+opening_angle_a / 2 - 90), outer_diameter_a * cos(+opening_angle_a / 2 - 90)],
[outer_diameter_a * sin(-opening_angle_a / 2 - 90), outer_diameter_a * cos(-opening_angle_a / 2 - 90)]
];
opening_triangle_b_points = [
[0, 0],
[outer_diameter_b * sin(+opening_angle_b / 2 + 90), outer_diameter_b * cos(+opening_angle_b / 2 + 90)],
[outer_diameter_b * sin(-opening_angle_b / 2 + 90), outer_diameter_b * cos(-opening_angle_b / 2 + 90)]
];
linear_extrude(height) difference() {
// Outer shape
hull() {
circle(d = outer_diameter_a);
translate([center_span, 0]) circle(d = outer_diameter_b);
}
// Side A
circle(d = inner_diameter_a);
polygon(opening_triangle_a_points);
// Side B
translate([center_span, 0]) {
circle(d = inner_diameter_b);
polygon(opening_triangle_b_points);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment