From 9a58921d786431f077724f4d624fce33fc04bab3 Mon Sep 17 00:00:00 2001 From: Andreas Vetter Date: Sat, 2 Sep 2023 20:31:40 +0200 Subject: [PATCH] Fahne modelliert. --- 3d-model.scad | 73 +++++++++++++++++++++++++++++++------------------- Vorschau.png | Bin 0 -> 12377 bytes 2 files changed, 45 insertions(+), 28 deletions(-) create mode 100644 Vorschau.png diff --git a/3d-model.scad b/3d-model.scad index 74dcdc3..344850e 100644 --- a/3d-model.scad +++ b/3d-model.scad @@ -1,20 +1,25 @@ +// Alle Längen in Millimeter! + +h_0 = 6.0; // Höhe, Hauptteil +h_1 = 11.0; // Höhe, vorne b_0 = 4.8; // unten, am Zylinderansatz b_1 = 3.8; // unten, vorne -b_2 = 4.0; // oben, am Zylinderansatz -b_3 = 3.0; // oben (mittlere Höhe), vorne -h = 6.0; // Höhe +b_2 = 4.0*(h_0/h_1); // oben, am Zylinderansatz +b_3 = 3.0*(h_0/h_1); // oben (mittlere Höhe), vorne l_0 = 32; // Länge, unten l_1 = 31.5; // Länge, oben +l_2 = 13; // Länge der Fahne CubePoints = [ -[-b_0/2,0,0], // 0 checked -[-b_1/2,l_0,0], // 1 checked -[b_1/2,l_0,0], // 2 checked -[b_0/2,0,0], // 3 checked -[-b_2/2,0,h], // 4 checked -[-b_3/2,l_1,h], // 5 checked -[b_3/2,l_1,h], // 6 checked -[b_2/2,0,h]]; // 7 checked +[-b_0/2,0,0], // 0 +[-b_1/2,l_0,0], // 1 +[b_1/2,l_0,0], // 2 +[b_0/2,0,0], // 3 +[-b_2/2,0,h_1], // 4 +[-b_3/2,l_1,h_1], // 5 +[b_3/2,l_1,h_1], // 6 +[b_2/2,0,h_1] // 7 +]; CubeFaces = [ [0,3,2,1], // bottom @@ -23,22 +28,34 @@ CubeFaces = [ [0,4,7,3], // back [6,5,1,2], // front [6,7,4,5] // top - ]; - // Die Punkte der Flächen müssen von außen - // betrachtet gegen den Uhrzeigersinn gelistet werden! - // Siehe https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Primitive_Solids - // insb.: https://en.wikibooks.org/wiki/File:Cube_numbers.jpg +]; - // Debugging: Ansicht auf "Kombinierte Anzeige F12" (engl. "Thrown Together F12") stellen - // Dann: "Vorschau F5" --> Die seite der Fläche, die außen sein sollte - // ist gelb, die die innen sein sollte ist magenta. - - // Wenn das Polyhedron nicht ordentlich erstellt ist, wird es zwar - // einzeln angezeigt, die Union() schlägt aber fehl! - - union() -{ - cylinder(h=6, r1=10/2, r2=9.65/2); - polyhedron(points=CubePoints, faces=CubeFaces); -}; +// Die Punkte der Flächen müssen von außen +// betrachtet gegen den Uhrzeigersinn gelistet werden! +// Siehe https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Primitive_Solids +// insb.: https://en.wikibooks.org/wiki/File:Cube_numbers.jpg +// Debugging: Ansicht auf "Kombinierte Anzeige F12" (engl. "Thrown Together F12") stellen +// Dann: "Vorschau F5" --> Die seite der Fläche, die außen sein sollte +// ist gelb, die die innen sein sollte ist magenta. + +// Wenn das Polyhedron nicht ordentlich erstellt ist, wird es zwar +// einzeln angezeigt, die Union() schlägt aber fehl! + +difference() +{ + union() + { + cylinder(h=6, r1=10/2, r2=9.65/2); + polyhedron(points=CubePoints, faces=CubeFaces); + }; + union() + { + translate([-b_0/2,l_1-l_2-(h_1-h_0),h_1]) + rotate([90,0,90]) + cylinder(h=b_0, r1=h_1-h_0, r2=h_1-h_0); + + translate([-b_0/2, 0, h_0]) + cube([b_0, l_1-l_2-(h_1-h_0), h_1-h_0]); + } +} diff --git a/Vorschau.png b/Vorschau.png new file mode 100644 index 0000000000000000000000000000000000000000..fe69f985d4a061ab6635790f2468f3b39d862626 GIT binary patch literal 12377 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