Ceci-Merch
Schlüsselanhänger
Vorschau
Parameter
Binärdateien
include <BOSL2/std.scad>
$fn = 120;
contour_h = 0.4;
h = 2.1 - contour_h;
module einkaufschip() {
color("white")
cyl(d=23, h=h, anchor=BOTTOM);
color("red") {
translate([0, 0, h])
tube(od=23, id=21, h=contour_h, anchor=BOTTOM);
translate([-9.3, -9.5, h])
linear_extrude(height=contour_h)
scale([0.5, 0.5, 1])
import("./logo_fill.svg");
translate([0, 2, 0]) {
translate([0, -5, h])
linear_extrude(h=contour_h)
text("CECI", font="Roboto Condensed", size=3);
translate([0, -8.2, h])
linear_extrude(h=contour_h)
text("DUS", font="Roboto Condensed", size=3);
translate([8, -8.1, h])
rotate([0, 0, 90])
linear_extrude(h=contour_h)
text("1907", font="Roboto Condensed", size=1);
}
}
}
module anhaenger() {
diff() {
cuboid([14, 30, h], anchor=BOTTOM + BACK, rounding=7, edges=[FRONT + LEFT, FRONT + RIGHT]) {
position(FRONT + CENTER)
translate([0, 2, 0])
tag("remove") cyl(d=6, h=h + 1, anchor=FRONT);
}
tag("remove") #cyl(d=23, h=h + 1, anchor=BOTTOM);
}
}
module anhaenger_2() {
color("white") diff() {
hull() {
cyl(d=23, h=h, anchor=BOTTOM);
translate([0, -30, 0])
cyl(d=12, h=h, anchor=BOTTOM);
}
tag("remove") cyl(d=23, h=h, anchor=BOTTOM);
translate([0, -30, 0])
tag("remove") cyl(d=6, h=h + 1, anchor=BOTTOM);
}
}
union() {
einkaufschip();
anhaenger_2();
}
Vorschau
Parameter
Binärdateien
include <BOSL2/std.scad>
$fn = 120;
// Set this to render only what you need:
// "both" -> full assembled model (red on top of white, as before)
// "red" -> red parts only, flattened to z=0 so it prints flat
// "white" -> white base only
part = "red"; // ["both", "red", "white"]
contour_h = 0.4;
h = 2.1 - contour_h;
// z offset for red geometry: 0 when printing red on its own, h when combined
red_z = (part == "red") ? 0 : h;
module label(t = "CECI", size = 10) {
if (part == "both" || part == "red")
color("red")
translate([0, 0, red_z])
linear_extrude(height=contour_h)
text(t, font="Storytime", size=size);
if (part == "both" || part == "white")
color("white")
linear_extrude(height=h)
offset(3)
text(t, font="Storytime", size=size);
}
if (part == "both" || part == "red")
translate([0, 0, red_z])
color("red")
linear_extrude(height=contour_h)
import("./logo_fill.svg");
if (part == "both" || part == "white") {
color("white")
linear_extrude(height=h)
offset(3)
import("./logo_fill.svg");
diff() {
translate([10, -6, 0])
color("white")
cuboid([10, 42, h], anchor=BOTTOM, rounding=5, edges=[FRONT + LEFT, FRONT + RIGHT]) {
translate([0, 2, 0])
position(FRONT + CENTER)
tag("remove") cyl(r=3, h=h + 1, anchor=FRONT);
}
}
}
translate([-5, 0.5, 0]) {
translate([15, -20, 0])
rotate([0, 0, 90]) {
label("CECI");
}
translate([5, -0.5, 0])
label("1907", size=5);
rotate([0, 0, 90])
translate([-20, -22, 0])
label("Düsseldorf", size=5);
if (part == "both" || part == "red") {
color("red")
translate([18.2, -16.5, red_z])
cyl(r=0.4, h=contour_h, anchor=BOTTOM);
color("red")
translate([18.2, -15.2, red_z])
cyl(r=0.4, h=contour_h, anchor=BOTTOM);
}
}
Münze
::openscad{src="./muenze.scad" library="BOSL2" /}