Skip to content

Instantly share code, notes, and snippets.

@pbsds
Created April 7, 2022 18:29
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 pbsds/e38c902f4cea0018a4c756af2187bcbf to your computer and use it in GitHub Desktop.
Save pbsds/e38c902f4cea0018a4c756af2187bcbf to your computer and use it in GitHub Desktop.
$fn = 100;
rotate([0, 0, 180]) {
color("brown"){
translate([-2.5, -2.5, 0]) cube([5, 5, 70]);
translate([0, 2.5, 50]) cube([40, 5, 5], center=true);
}
translate([0, 5, 50])
rotate([0, -90, -90])
union() {
body();
//for (i=[0:60:360]) rotate([0, 0, i])
neck();
}
}
for(j=[0:45:360])
rotate([0, 0, j])
translate([-50, 0, 0])
union() {
body();
//for (i=[0:60:360]) rotate([0, 0, i])
neck();
}
module body() {
difference() {
union() {
sphere(r=10);
tail();
wing();
mirror([0, 1, 0]) wing();
}
translate([0, 0, -55])
cube([100,100,100,], center=true);
}
}
module neck(l = 5) {
translate([10, 0, 10])
rotate([0, 45, 0]) {
cylinder(r=3, h=2*l, center=true);
translate([0, 0, l]) head();
}
}
module head() {
union() {
color("#000")
translate([0, 2, 4])
sphere(1);
color("#000")
translate([0, -2, 4])
sphere(1);
color("#fff")
sphere(5);
color("orange")
rotate([0, 45, 0])
translate([0, 0, 5])
cylinder(4, 3, 0, center=true);
}
}
module tail() {
rotate([0, 0, 90])
translate([0, 5, 0])
rotate([90, 0, 0])
difference() {
cylinder(15, 10, 5, center=true);
for (i=[0:20:360])
rotate([0, 0, i])
translate([0, 0, -8])
cube([1, 30, 5], center=true);
}
}
module wing() {
rotate([0, 0, -90])
rotate([0, 0, -20])
translate([-2, -2, 1])
rotate([-30, 0, 0])
difference() {
sphere(10);
translate([12, 0, 0])
sphere(18);
translate([0, 0, -10])
sphere(13);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment