| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- /* [OpenSCAD] */
- $fn=90;
- /* [Spielstein] */
- // Form, Größe, Füllung
- Form = 0; // [0:Eckig, 1:Rund]
- Size = 1; // [0:Klein, 1:Groß]
- Hut = 0; // [0:Nein, 1:Ja]
- /* [Spielstein] */
- // Loch für Magnet im Fuß
- Magnet = 0; // [0:Nein, 1:Ja]
- /* [Hidden] */
- module piece(f, s, h) {
- }
- module fuss() {
- hull() {
- translate([0,0,1]) rotate_extrude() translate([9,0]) circle(d=2);
- cylinder(d=20, h=0.01, center=false);
- }
- cylinder(d=6, h=10);
- }
- module wuerfel() {
- // https://reprap.org/forum/read.php?247,458171,458591#msg-458591
- w=90-acos(sqrt(2/3)); // Winkel der Raumdiagonale
- scale(20/sqrt(3)) for (i=[0:60:360]) {
- rotate([0, w, i]) translate([-sqrt(2)/2, 0, 0.5]) rotate([0, 0, 45]) cube(1, center=true);
- }
- }
- module hut() {
- cylinder(d=8, h=1);
- cylinder(d=5, h=4);
- }
- module eckig(hut) {
- fuss();
- wuerfel();
- if (hut==1) translate([0,0,18]) scale(1/3) wuerfel();
- }
- module rund(hut) {
- fuss();
- translate([0,0,10]) sphere(d=20);
- if (hut==1) translate([0,0,21]) scale(1/3) sphere(d=20);
- }
- ////////////////////////////////////////////////////////////////////////////////////////////
- difference() {
- union() {
- if (Form==0) {
- if (Size==0) {
- scale(1/sqrt(2)) eckig(Hut);
- }
- else {
- eckig(Hut);
- }
- }
- else {
- if (Size==0) {
- scale(1/sqrt(2)) rund(Hut);
- }
- else {
- rund(Hut);
- }
- }
- }
- if (Magnet==1) {
- translate([0,0,-0.01]) cylinder(d=3, h=5.5);
- }
- }
|