20. Anhang
1.7.1 erste Übung
translate([-10,0,0])
cube(5);
translate([-10,10,0])
cube(5);
translate([-10,20,0])
cube(5);
translate([0,0,0])
cube(5);
translate([0,10,0])
cube(5);
translate([0,20,0])
cube(5);
translate([10,0,0])
cube(5);
translate([10,10,0])
cube(5);
translate([10,20,0])
cube(5);
1.7.2 zweite Übung
translate([0,0,0])
cube(5);
translate([10,0,-10])
cube([5,5,10]);
translate([20,0,-15])
cube(5);
translate([0,10,5])
cube([5,5,10]);
translate([0,20,15])
cube(5);
2.4.1 erste Farben-Übung
color("red")
translate([0,0,0])
cube(5);
color("blue")
translate([0.5,1,5])
cube(5);
color("fuchsia")
translate([-0.5,-0.2,10])
cube(5);
color("yellow")
translate([0.3,0.2,15])
cube(5);
color("gray")
translate([-0.1,-0.2,20])
cube(5);
color("maroon")
translate([0.5,0.5,25])
cube(5);
color("green")
translate([-0.1,0,30])
cube(5);
color("lime")
translate([0.4,0.4,35])
cube(5);
color("teal")
translate([0,0,40])
cube(5);
2.4.2 zweite Farben-Übung
color("#123456",0.5)
translate([0,0,0])
cube(5);
color([100,149,237]/255,0.5)
translate([0.5,1,5])
cube(5);
color("#987654",0.5)
translate([-0.5,-0.2,10])
cube(5);
color([255,215,0]/255,0.5)
translate([0.3,0.2,15])
cube(5);
color([139,0,139]/255,0.5)
translate([-0.1,-0.2,20])
cube(5);
color([50,205,50]/255,0.5)
translate([0.5,0.5,25])
cube(5);
color([178,34,34]/255,0.5)
translate([-0.1,0,30])
cube(5);
color("#458723",0.5)
translate([0.4,0.4,35])
cube(5);
color([255,222,173]/255,0.5)
translate([0,0,40])
cube(5);
3.5.1 Rahmenwürfel
difference() {
color("green")
cube([20,20,20]); // Basiswürfel
translate([3,3,-0.1]) {
color("yellow")
cube([14,14,20.2]); // z Achse
}
translate([-0.1,3,3]) {
color("blue")
cube([20.2,14,14]); // x Achse
}
translate([3,-0.1,3]) {
color("red")
cube([14,20.2,14]); // y Achse
}
}
3.5.2 weiterer Würfel aber mit Vertiefungen
difference() {
color("green")
cube([20,20,20]); // Basiswürfel
color("yellow") {
translate([3,3,-0.1])
cube([14,14,1.1]); // z Achse
translate([3,3,19])
color("yellow")
cube([14,14,2]); // z Achse
}
color("blue") {
translate([-0.1,3,3])
cube([1.1,14,14]); // x Achse
translate([19,3,3])
color("blue")
cube([1.1,14,14]); // x Achse
}
translate([3,-0.1,3]) {
color("red")
cube([14,20.2,14]); // y Achse
}
}
4.7.1 Löcher in Bretter bohren
// Zylinder
$fn=60; // Auflösung von Kreisen
translate([10,10,0]) {
difference() {
color("burlywood")
cube([40,80,5]);
translate([6,6,-0.1]) {
linear_extrude(6)
circle(3);
}
translate([40-6,6,-0.1]) {
linear_extrude(6)
circle(3);
}
translate([6,80-6,-0.1]) {
linear_extrude(6)
circle(3);
}
translate([40-6,80-6,-0.1]) {
linear_extrude(6)
circle(3);
}
}
}
5.3 weitere Löcher bohren
// drehen
$fn=60;
difference() {
color("lime")
translate([0,0,0])
cube([20,20,20]);
color("red")
translate([0,0,10])
rotate([0,90,45])
translate([0,0,-1])
linear_extrude(30)
circle(6);
}
6 Kombi-Cube
$fn=60;
difference() {
// Basiswürfel
color("green")
cube([20,20,20]);
// Hohlraum
color("red")
translate([2,2,2])
cube([16,16,16]);
// minus
color("yellow")
translate([5,-0.1,9])
cube([10,3,2]); //
// plus
color("blue") {
translate([5,17.9,9])
cube([10,3,2]); //
translate([9,17.9,5])
cube([2,3,10]); //
}
// division
color("magenta") {
rotate([0,90,0])
translate([-14,10,17.9])
linear_extrude(3)
circle(2);
rotate([0,90,0])
translate([-6,10,17.9])
linear_extrude(3)
circle(2);
}
// fünfeck
color("aqua")
translate([10,10,-0.1])
linear_extrude(3)
circle(7,$fn=5);
// dreieck
color("aqua")
translate([8.5,10,17.9])
linear_extrude(3)
circle(7,$fn=3);
// multiplikation einfach
color("yellow")
translate([0,10,10]) {
rotate([0,45,90]) {
cube([10,5,2],true);
cube([2,5,10],true);
}
}
} // Ende von difference
8.2 Beispiel mit der Schale
lang=20;
breit=10;
hoch=3;
wand=1;
boden=2;
difference(){
color("green")
cube([lang,breit,hoch]); // Bodenplatte
color("red")
translate([wand,wand,boden])
cube([lang-wand-wand,breit-wand-wand,hoch]); // Vertiefung
}
9.1 Schachfigur Bauer
$fn=40; // Auflösung von Kreisen
skale=1; // aktuell 1 kann aber später beliebig verändert werden
color("green") {
union(){
// Boden
linear_extrude(skale*3)
circle(skale*5.5);
// Kegel
translate([0,0,skale*2.9]) {
cylinder(skale*12,skale*5.5,skale*3);
}
// Kugel
translate([0,0,skale*18.5]) {
sphere(r = skale*4.9);
}
}
}
9.2 Schachfigur Turm
$fn=40; // Auflösung von Kreisen
skale=1; // aktuell 1 kann aber später beliebig verändert werden
sockel=7.5; // Radius Sockel
ring=6; // Radius Ring oben
rand=1; // Dicke des Randes
r_unten=5.5; // Turmradius unten
r_oben=4.8; // Turmradius oben
z_sockel=2; // Höhe Sockel
z_erster=2; // Höhe erster Kegel
z_turm=12; // Höhe Turmteil
z_zweiter=2; // Höhe zweiter Kegel
z_ring=5; // Höhe Ring oben
guck=2; // Schiessscharten-Breite
//Summe für die gesamte Turmhöhe
turm=z_sockel+z_erster+z_turm+z_zweiter+z_ring;
color("green") {
difference() {
union(){
// Boden
linear_extrude(skale*z_sockel)
circle(skale*sockel);
// Kegel 1
translate([0,0,skale*z_sockel-0.1])
cylinder(skale*z_erster+0.1,skale*sockel,skale*r_unten);
// Kegel 2
translate([0,0,skale*(z_sockel+z_erster)-0.1])
cylinder(skale*z_turm+0.1,skale*r_unten,skale*r_oben);
// Kegel 3
translate([0,0,skale*(z_sockel+z_erster+z_turm)-0.1])
cylinder(skale*(z_zweiter+0.1),skale*r_oben,skale*ring);
// Turmkopf
translate([0,0,skale*(turm-z_ring)-0.1])
linear_extrude(skale*z_ring)
circle(skale*ring);
}
// Turmkopf innen
translate([0,0,skale*(turm-guck)])
linear_extrude(skale*guck+0.1)
circle(skale*(ring-rand));
// Guckloch
translate([skale*-(ring+0.1),skale*-(guck/2),skale*(turm-guck)])
cube([skale*(ring*2+0.2),skale*guck,skale*guck+0.1]);
// Guckloch 90Grad
rotate([0,0,90])
translate([skale*-(ring+0.1),skale*-(guck/2),skale*(turm-guck)])
cube([skale*(ring*2+0.2),skale*2,skale*2]);
}
}
10.1 Platte mit gerundeten Ecken
$fn=60; // Auflösung von Kreisen
lang=80;
breit=40;
dick=5;
rundung=3;
difference() {
linear_extrude(dick) {
hull() {
translate([rundung,rundung,0])
circle(rundung);
translate([breit-rundung,rundung,0])
circle(rundung);
translate([breit-rundung,lang-rundung,0])
circle(rundung);
translate([rundung,lang-rundung,0])
circle(rundung);
}
}
// hier folgen die Löcher
loch=3;
delta=2;
// erstes Loch
translate([delta+loch,delta+loch,-0.1])
linear_extrude(dick+0.2)
circle(loch);
translate([breit-delta-loch,delta+loch,-0.1])
linear_extrude(dick+0.2)
circle(loch);
translate([breit-delta-loch,lang-delta-loch,-0.1])
linear_extrude(dick+0.2)
circle(loch);
translate([delta+loch,lang-delta-loch,-0.1])
linear_extrude(dick+0.2)
circle(loch);
}
11.1 Rubi Würfel
lang=20;
delta=2;
n=4;
for (x = [0:1:n]) {
for (y = [0:1:n]) {
for (z = [0:1:n]) {
translate([x*(lang+delta),y*(lang+delta),z*(lang+delta)])
cube([lang,lang,lang]);
}
}
}
11.2 Rad mit Speichen
$fn=60;
r_felge=80; // Radius des Rades
felge=3; // Dicke der Felge
z_hoch=5; // Höhe des Rades
r_loch=2; // Radius Loch in der Nabe
r_speichen=2; // Radius Speichen
// Nabe mit Speichen
difference() {
union() {
// ganze Felge
difference() {
translate([0,0,0])
linear_extrude(z_hoch)
circle(r_felge);
translate([0,0,-0.1])
linear_extrude(z_hoch+0.2)
circle(r_felge-felge);
}
// ganze Nabe
r_nabe=5; // Radius Nabe
translate([0,0,0])
linear_extrude(z_hoch)
circle(r_nabe);
// Speichen
n=10; // Anzahl Speichen
delta=360/n; // Kreisaufteilung
for (i = [0:1:n-1]) {
translate([0,0,0])
rotate([0,90,i*delta])
linear_extrude(r_felge)
circle(r_speichen);
}
}
// Loch
translate([0,0,-0.1])
linear_extrude(z_hoch+0.2)
circle(r_loch);
// Scheibe unterhalb von z
translate([0,0,-r_speichen-0.1])
linear_extrude(r_speichen+0.1)
circle(r_felge+0.1);
}
12.1 Schachbrett
$fn=60;
feld=20;
dick=2;
for (iy = [0:1:7]) {
for (i = [0:1:3]) {
if (iy%2 == 0) {
color("black")
translate([i*2*feld,iy*feld,0])
cube([feld,feld,dick]);
color("white")
translate([i*2*feld+feld,iy*feld,0])
cube([feld,feld,dick]);
} else {
color("white")
translate([i*2*feld,iy*feld,0])
cube([feld,feld,dick]);
color("black")
translate([i*2*feld+feld,iy*feld,0])
cube([feld,feld,dick]);
}
}
}
13.1 Schachbrett
$fn=60;
feld=20;
dick=2;
skale=1;
//----------------------------------------
schachbrett();
for (i = [0:1:7]) {
bauer((i*feld)+(feld/2),(1*feld)+(feld/2),dick,"white");
}
for (i = [0:1:7]) {
bauer((i*feld)+(feld/2),(6*feld)+(feld/2),dick,"dimgray");
}
turm(1,1,"white");
turm(8,1,"white");
turm(1,8,"dimgray");
turm(8,8,"dimgray");
//----------------------------------------
module schachbrett() {
for (iy = [0:1:7]) {
for (i = [0:1:3]) {
if (iy%2 == 0) {
color("black")
translate([i*2*feld,iy*feld,0])
cube([feld,feld,dick]);
color("white")
translate([i*2*feld+feld,iy*feld,0])
cube([feld,feld,dick]);
} else {
color("white")
translate([i*2*feld,iy*feld,0])
cube([feld,feld,dick]);
color("black")
translate([i*2*feld+feld,iy*feld,0])
cube([feld,feld,dick]);
}
}
}
}
//----------------------------------------
module bauer(x,y,z,farbe) {
translate([x,y,z]) {
color(farbe) {
union(){
// Boden
linear_extrude(skale*3)
circle(skale*5.5);
// Kegel
translate([0,0,skale*2.9]) {
cylinder(skale*12,skale*5.5,skale*3);
}
// Kugel
translate([0,0,skale*18.5]) {
sphere(r = skale*4.9);
}
}
}
}
}
//----------------------------------------
sockel=7.5; // Radius Sockel
ring=6; // Radius Ring oben
rand=1; // Dicke des Randes
r_unten=5.5; // Turmradius unten
r_oben=4.8; // Turmradius oben
z_sockel=2; // Höhe Sockel
z_erster=2; // Höhe erster Kegel
z_turm=12; // Höhe Turmteil
z_zweiter=2; // Höhe zweiter Kegel
z_ring=5; // Höhe Ring oben
guck=2; // Schiessscharten-Breite
//Summe für die gesamte Turmhöhe
turm=z_sockel+z_erster+z_turm+z_zweiter+z_ring;
module turm(x,y,farbe) {
translate([(x-1)*feld+feld/2,(y-1)*feld+feld/2,dick]) {
color(farbe) {
difference() {
union(){
// Boden
linear_extrude(skale*z_sockel)
circle(skale*sockel);
// Kegel 1
translate([0,0,skale*z_sockel-0.1])
cylinder(skale*z_erster+0.1,skale*sockel,skale*r_unten);
// Kegel 2
translate([0,0,skale*(z_sockel+z_erster)-0.1])
cylinder(skale*z_turm+0.1,skale*r_unten,skale*r_oben);
// Kegel 3
translate([0,0,skale*(z_sockel+z_erster+z_turm)-0.1])
cylinder(skale*(z_zweiter+0.1),skale*r_oben,skale*ring);
// Turmkopf
translate([0,0,skale*(turm-z_ring)-0.1])
linear_extrude(skale*z_ring)
circle(skale*ring);
}
// Turmkopf innen
translate([0,0,skale*(turm-guck)])
linear_extrude(skale*guck+0.1)
circle(skale*(ring-rand));
// Guckloch
translate([skale*-(ring+0.1),skale*-(guck/2),skale*(turm-guck)])
cube([skale*(ring*2+0.2),skale*guck,skale*guck+0.1]);
// Guckloch 90Grad
rotate([0,0,90])
translate([skale*-(ring+0.1),skale*-(guck/2),skale*(turm-guck)])
cube([skale*(ring*2+0.2),skale*2,skale*2]);
}
}
}
}
//----------------------------------------
14.1 Italienische_Eröffnung.scad
use <G:/3d/OpenSCAD/Verschiedenes/Schach/figuren_library.scad>
//----------------------------------------
schachbrett();
// Italienische Eröffnung
bauer(1,2,"white");
bauer(2,2,"white");
bauer(3,2,"white");
bauer(4,2,"white");
bauer(5,4,"white");
bauer(6,2,"white");
bauer(7,2,"white");
bauer(8,2,"white");
turm(1,1,"white");
turm(8,1,"white");
pferd(2,1,"white");
lauf(3,1,"white");
dame(4,1,"white");
king(5,1,"white");
lauf(3,4,"white");
pferd(6,3,"white");
bauer(1,7,"dimgray");
bauer(2,7,"dimgray");
bauer(3,7,"dimgray");
bauer(4,7,"dimgray");
bauer(5,5,"dimgray");
bauer(6,7,"dimgray");
bauer(7,7,"dimgray");
bauer(8,7,"dimgray");
turm(1,8,"dimgray");
turm(8,8,"dimgray");
pferd(3,6,"dimgray");
lauf(3,8,"dimgray");
dame(4,8,"dimgray");
king(5,8,"dimgray");
lauf(6,8,"dimgray");
pferd(7,8,"dimgray");
14.2 figuren_library.scad
$fn=60;
feld=20;
dick=2;
skale=1;
//----------------------------------------
module schachbrett() {
for (iy = [0:1:7]) {
for (i = [0:1:3]) {
if (iy%2 == 0) {
color("black")
translate([i*2*feld,iy*feld,0])
cube([feld,feld,dick]);
color("white")
translate([i*2*feld+feld,iy*feld,0])
cube([feld,feld,dick]);
} else {
color("white")
translate([i*2*feld,iy*feld,0])
cube([feld,feld,dick]);
color("black")
translate([i*2*feld+feld,iy*feld,0])
cube([feld,feld,dick]);
}
}
}
}
//----------------------------------------
module bauer(x,y,farbe) {
translate([(x-1)*feld+feld/2,(y-1)*feld+feld/2,dick]) {
color(farbe) {
union(){
// Boden
linear_extrude(skale*3)
circle(skale*5.5);
// Kegel
translate([0,0,skale*2.9]) {
cylinder(skale*12,skale*5.5,skale*3);
}
// Kugel
translate([0,0,skale*18.5]) {
sphere(r = skale*4.9);
}
}
}
}
}
//----------------------------------------
module pferd(x,y,farbe) {
translate([(x-1)*feld+feld/2,(y-1)*feld+feld/2,dick+skale*10]) {
color(farbe) {
cube([skale*5.5,skale*10,skale*20],true);
}
}
}
//----------------------------------------
module lauf(x,y,farbe) {
translate([(x-1)*feld+feld/2,(y-1)*feld+feld/2,dick]) {
color(farbe) {
// Boden
linear_extrude(skale*3)
circle(skale*5.5);
// Kegel
translate([0,0,skale*2.9]) {
cylinder(skale*18,skale*5.5,skale*2);
}
}
}
}
//----------------------------------------
module dame(x,y,farbe) {
translate([(x-1)*feld+feld/2,(y-1)*feld+feld/2,dick]) {
color(farbe) {
// Boden
linear_extrude(skale*3)
circle(skale*5.5);
// Kegel
translate([0,0,skale*2.9]) {
cylinder(skale*25,skale*5.5,skale*2);
}
}
}
}
//----------------------------------------
module king(x,y,farbe) {
translate([(x-1)*feld+feld/2,(y-1)*feld+feld/2,dick]) {
color(farbe) {
// Kegel
translate([0,0,skale*2.9]) {
cylinder(skale*28,skale*5.5,skale*5.5);
}
}
}
}
//----------------------------------------
sockel=7.5; // Radius Sockel
ring=6; // Radius Ring oben
rand=1; // Dicke des Randes
r_unten=5.5; // Turmradius unten
r_oben=4.8; // Turmradius oben
z_sockel=2; // Höhe Sockel
z_erster=2; // Höhe erster Kegel
z_turm=12; // Höhe Turmteil
z_zweiter=2; // Höhe zweiter Kegel
z_ring=5; // Höhe Ring oben
guck=2; // Schiessscharten-Breite
//Summe für die gesamte Turmhöhe
turm=z_sockel+z_erster+z_turm+z_zweiter+z_ring;
module turm(x,y,farbe) {
translate([(x-1)*feld+feld/2,(y-1)*feld+feld/2,dick]) {
color(farbe) {
difference() {
union(){
// Boden
linear_extrude(skale*z_sockel)
circle(skale*sockel);
// Kegel 1
translate([0,0,skale*z_sockel-0.1])
cylinder(skale*z_erster+0.1,skale*sockel,skale*r_unten);
// Kegel 2
translate([0,0,skale*(z_sockel+z_erster)-0.1])
cylinder(skale*z_turm+0.1,skale*r_unten,skale*r_oben);
// Kegel 3
translate([0,0,skale*(z_sockel+z_erster+z_turm)-0.1])
cylinder(skale*(z_zweiter+0.1),skale*r_oben,skale*ring);
// Turmkopf
translate([0,0,skale*(turm-z_ring)-0.1])
linear_extrude(skale*z_ring)
circle(skale*ring);
}
// Turmkopf innen
translate([0,0,skale*(turm-guck)])
linear_extrude(skale*guck+0.1)
circle(skale*(ring-rand));
// Guckloch
translate([skale*-(ring+0.1),skale*-(guck/2),skale*(turm-guck)])
cube([skale*(ring*2+0.2),skale*guck,skale*guck+0.1]);
// Guckloch 90Grad
rotate([0,0,90])
translate([skale*-(ring+0.1),skale*-(guck/2),skale*(turm-guck)])
cube([skale*(ring*2+0.2),skale*2,skale*2]);
}
}
}
}
//----------------------------------------
15.4 Schachbrett mit Beschriftung für die Datei figuren_library.scad
//----------------------------------------
module schachbrett() {
// Rahmen um das Brett
difference() {
translate([-feld,-feld,0])
cube([feld*10,feld*10,dick]);
translate([0,0,-0.1])
cube([feld*8,feld*8,dick+0.2]);
// A,B,C...
t_font="Arial:style=Bold";
t_abc = ["A","B","C","D","E","F","G","H"];
for (it = [0:1:7]) {
translate([it*feld+(feld/2),-feld/2,-0.1])
linear_extrude(skale*dick+1)
text(t_abc[it],font=t_font,valign="center",halign="center");
}
// 1,2,3..
t_num = ["1","2","3","4","5","6","7","8"];
for (it = [0:1:7]) {
translate([-feld/2,it*feld+(feld/2),-0.1])
linear_extrude(skale*dick+1)
text(t_num[it],font=t_font,valign="center",halign="center");
}
}
//Schachfelder
for (iy = [0:1:7]) {
for (i = [0:1:3]) {
if (iy%2 == 0) {
color("black")
translate([i*2*feld,iy*feld,0])
cube([feld,feld,dick]);
color("white")
translate([i*2*feld+feld,iy*feld,0])
cube([feld,feld,dick]);
} else {
color("white")
translate([i*2*feld,iy*feld,0])
cube([feld,feld,dick]);
color("black")
translate([i*2*feld+feld,iy*feld,0])
cube([feld,feld,dick]);
}
}
}
}
16.3 Pferdeprofils gedreht und mit Sockel
module pferd(x,y,farbe,normal) {
color(farbe) {
translate([(x-1)*feld+feld/2,(y-1)*feld+feld/2,dick]) {
union(){
// Boden
linear_extrude(skale*z_sockel)
circle(skale*sockel);
// Kegel 1
translate([0,0,skale*z_sockel-0.1])
cylinder(skale*z_erster+0.1,skale*sockel,skale*r_unten);
hoch=18;
feld=hoch/8;
if (normal) {
translate([-(skale*2),-(2*feld),skale*(z_sockel+z_sockel)-0.1])
rotate([90,0,90])
linear_extrude(skale*4)
polygon(points=[[0,0],[4*feld,0],[2*feld,3*feld],
[2*feld,5*feld],[4*feld,5*feld],[4*feld,6*feld],
[2*feld,7*feld],[2*feld,8*feld],[1*feld,7*feld],
[1*feld,5*feld],[0,0]]);
} else {
translate([(skale*2),(2*feld),skale*(z_sockel+z_sockel)-0.1])
rotate([90,0,-90])
linear_extrude(skale*4)
polygon(points=[[0,0],[4*feld,0],[2*feld,3*feld],
[2*feld,5*feld],[4*feld,5*feld],[4*feld,6*feld],
[2*feld,7*feld],[2*feld,8*feld],[1*feld,7*feld],
[1*feld,5*feld],[0,0]]);
}
}
}
}
}