Compare commits

...

2 commits

Author SHA1 Message Date
c28dfc40ab
add dice 2025-03-29 14:20:13 +01:00
29c77da0be
first ogre snack 2025-03-29 13:50:58 +01:00
3 changed files with 213 additions and 0 deletions

53
dice/letter_die.scad Normal file
View file

@ -0,0 +1,53 @@
r=10;
r2=8.5;
hull() {
translate([-r2,-r2,-r2])
sphere(r=2, $fn=64);
translate([r2,-r2,-r2])
sphere(r=2, $fn=64);
translate([r2,r2,-r2])
sphere(r=2, $fn=64);
translate([-r2,r2,-r2])
sphere(r=2, $fn=64);
translate([-r2,-r2,r2])
sphere(r=2, $fn=64);
translate([r2,-r2,r2])
sphere(r=2, $fn=64);
translate([r2,r2,r2])
sphere(r=2, $fn=64);
translate([-r2,r2,r2])
sphere(r=2, $fn=64);
}
color([1,0,0])
{
rotate([0,0,0])
translate([0,0,r])
text("A", halign="center", valign="center", size=15, font="Open Sans");
rotate([0,180,0])
translate([0,0,r])
text("F", halign="center", valign="center", size=15, font="Open Sans");
rotate([90,0,0])
translate([0,0,r])
text("B", halign="center", valign="center", size=15, font="Open Sans");
rotate([-90,180,0])
translate([0,0,r])
text("E", halign="center", valign="center", size=15, font="Open Sans");
rotate([90,0,90])
translate([0,0,r])
text("C", halign="center", valign="center", size=15, font="Open Sans");
rotate([-90,180,90])
translate([0,0,r])
text("D", halign="center", valign="center", size=15, font="Open Sans");
}

53
dice/number_die.scad Normal file
View file

@ -0,0 +1,53 @@
r=10;
r2=8.5;
hull() {
translate([-r2,-r2,-r2])
sphere(r=2, $fn=64);
translate([r2,-r2,-r2])
sphere(r=2, $fn=64);
translate([r2,r2,-r2])
sphere(r=2, $fn=64);
translate([-r2,r2,-r2])
sphere(r=2, $fn=64);
translate([-r2,-r2,r2])
sphere(r=2, $fn=64);
translate([r2,-r2,r2])
sphere(r=2, $fn=64);
translate([r2,r2,r2])
sphere(r=2, $fn=64);
translate([-r2,r2,r2])
sphere(r=2, $fn=64);
}
color([0,1,0])
{
rotate([0,0,0])
translate([0,0,r])
text("1", halign="center", valign="center", size=15, font="Open Sans");
rotate([0,180,0])
translate([0,0,r])
text("6", halign="center", valign="center", size=15, font="Open Sans");
rotate([90,0,0])
translate([0,0,r])
text("2", halign="center", valign="center", size=15, font="Open Sans");
rotate([-90,180,0])
translate([0,0,r])
text("5", halign="center", valign="center", size=15, font="Open Sans");
rotate([90,0,90])
translate([0,0,r])
text("3", halign="center", valign="center", size=15, font="Open Sans");
rotate([-90,180,90])
translate([0,0,r])
text("4", halign="center", valign="center", size=15, font="Open Sans");
}

107
items/ogre-snack.scad Normal file
View file

@ -0,0 +1,107 @@
module hinge() {
rotate([0,90,0])
cylinder(d=1, h=3, $fn=64, center=true);
translate([-0.5,0,-1.5])
rotate([90,0,0])
cylinder(d=0.5, h=1, $fn=64, center=true);
translate([0.5,0,-1.5])
rotate([90,0,0])
cylinder(d=0.5, h=1, $fn=64, center=true);
translate([-0.5,0,1.5])
rotate([90,0,0])
cylinder(d=0.5, h=1, $fn=64, center=true);
translate([0.5,0,1.5])
rotate([90,0,0])
cylinder(d=0.5, h=1, $fn=64, center=true);
hull() {
cube([3, 0.5, 0.5], center=true);
translate([0,0.5,-2])
rotate([90,0,0])
cylinder(d=1, h=1, $fn=64, center=true);
translate([0,0.5,2])
rotate([90,0,0])
cylinder(d=1, h=1, $fn=64, center=true);
}
}
// hinges
translate([0,-8.5,0])
{
translate([-9,0,0])
hinge();
translate([9,0,0])
hinge();
hinge();
}
difference() {
union() {
translate([0,0,-10])
cube([30, 17, 1], center=true);
translate([0,0,-5])
cube([30, 15, 10], center=true);
translate([0,0,1])
cube([30, 17, 1], center=true);
translate([0,0,-1])
cube([30, 17, 1], center=true);
translate([0,0,7.5])
cube([30, 1, 1], center=true);
rotate([0,90,0])
{
cylinder(d=15, h=30, $fn=64, center=true);
intersection(){
cylinder(d=17, h=3, $fn=64, center=true);
translate([0,0,-25])
cube([50,50,50]);
}
intersection()
{
cylinder(d=17, h=1, $fn=64, center=true);
translate([-51,-30,-25])
cube([50,50,50]);
}
translate([0,0,-15])
{
cylinder(d=17, h=2, $fn=64);
translate([5,0,1])
cube([10, 17, 2], center=true);
}
translate([0,0,13])
{
cylinder(d=17, h=2, $fn=64);
translate([5,0,1])
cube([10, 17, 2], center=true);
}
}
}
d=0.5;
difference() {
cube([35, 35, 0.6], center=true);
cube([30-d, 17-d, 0.6], center=true);
}
}