Optional beveled edges.
This commit is contained in:
parent
1932345e0b
commit
7d4d4fddf9
2 changed files with 94 additions and 75 deletions
24
back.scad
24
back.scad
|
@ -58,9 +58,12 @@
|
||||||
* side_recess = 4;
|
* side_recess = 4;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Abgerundete Kanten.
|
// Abgerundete Außenkanten.
|
||||||
rounded_edges = true;
|
rounded_edges = true;
|
||||||
|
|
||||||
|
// Abgeschrägte Außenkanten.
|
||||||
|
beveled_edges = false;
|
||||||
|
|
||||||
// Temporäre Stützstrukturen in den Bohrungen.
|
// Temporäre Stützstrukturen in den Bohrungen.
|
||||||
support = false;
|
support = false;
|
||||||
|
|
||||||
|
@ -433,7 +436,7 @@ module outer() {
|
||||||
*************************************************************************/
|
*************************************************************************/
|
||||||
|
|
||||||
module body_back() {
|
module body_back() {
|
||||||
if (rounded_edges) {
|
if (rounded_edges || beveled_edges) {
|
||||||
intersection() {
|
intersection() {
|
||||||
union () {
|
union () {
|
||||||
outer();
|
outer();
|
||||||
|
@ -444,11 +447,18 @@ module body_back() {
|
||||||
linear_extrude(height=1) {
|
linear_extrude(height=1) {
|
||||||
import("./svg/back hull.svg");
|
import("./svg/back hull.svg");
|
||||||
}
|
}
|
||||||
hull() {
|
|
||||||
$fn = $preview ? 4 : 16;
|
$fn = $preview ? 4 : 16;
|
||||||
for (i = [1:5]) {
|
if (beveled_edges) {
|
||||||
translate([0, 0, i - 1])
|
// Abgeschrägte Kanten.
|
||||||
cylinder(r=sin(i * (90/5)) * 2, h=top + space);
|
cylinder(h=top+space, r1=0.5, r2=(top+space)/2);
|
||||||
|
} else {
|
||||||
|
// Abgerundete Kanten.
|
||||||
|
hull() {
|
||||||
|
for (i = [1:5]) {
|
||||||
|
translate([0, 0, i - 1])
|
||||||
|
cylinder(r=sin(i * (90/5)) * 2, h=top + space);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
145
front.scad
145
front.scad
|
@ -46,9 +46,12 @@ include <colors.scad>;
|
||||||
* Anschlag 7 mm von der Platine.
|
* Anschlag 7 mm von der Platine.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Abgerundete Kanten.
|
// Abgerundete Außenkanten.
|
||||||
rounded_edges = true;
|
rounded_edges = true;
|
||||||
|
|
||||||
|
// Abgeschrägte Außenkanten.
|
||||||
|
beveled_edges = false;
|
||||||
|
|
||||||
// Aussparungen für den linken Analog-Stick.
|
// Aussparungen für den linken Analog-Stick.
|
||||||
analog_stick_l = true;
|
analog_stick_l = true;
|
||||||
|
|
||||||
|
@ -263,74 +266,8 @@ module outer() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Kleine Streben zwischen Decke und Rand.
|
|
||||||
module border_strut(width, length, height) {
|
|
||||||
x = width/2;
|
|
||||||
y = length/2;
|
|
||||||
|
|
||||||
polyhedron(points = [
|
|
||||||
[-x, -y, 0],
|
|
||||||
[x, -y, 0],
|
|
||||||
[x, y, 0],
|
|
||||||
[-x, y, 0],
|
|
||||||
[-x, y, height],
|
|
||||||
[x, y, height]
|
|
||||||
], faces = [
|
|
||||||
[0, 1, 2, 3],
|
|
||||||
[1, 5, 2],
|
|
||||||
[2, 5, 4, 3],
|
|
||||||
[3, 4, 0],
|
|
||||||
[0, 4, 5, 1]
|
|
||||||
]);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************
|
|
||||||
* Die Hülle. *
|
|
||||||
*************************************************************************/
|
|
||||||
|
|
||||||
module casing_front() {
|
|
||||||
difference() {
|
|
||||||
if (rounded_edges) {
|
|
||||||
intersection() {
|
|
||||||
union () {
|
|
||||||
outer();
|
|
||||||
}
|
|
||||||
|
|
||||||
color(color_top)
|
|
||||||
minkowski() {
|
|
||||||
linear_extrude(height=1) {
|
|
||||||
import("./svg/front hull.svg");
|
|
||||||
}
|
|
||||||
hull() {
|
|
||||||
$fn = $preview ? 4 : 16;
|
|
||||||
for (i = [1:5]) {
|
|
||||||
translate([0, 0, i - 1])
|
|
||||||
cylinder(r=sin(i * (90/5)) * 2, h=top + space);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
outer();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Vergrößere das zu substrahierende Objekt, um Darstellungsfehler
|
|
||||||
// in der Voransicht zu vermeiden.
|
|
||||||
if ($preview) {
|
|
||||||
translate([0, 0, -0.1])
|
|
||||||
resize([0, 0, top + struts + 0.4])
|
|
||||||
top_cutouts();
|
|
||||||
} else {
|
|
||||||
top_cutouts();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Zusätzliche Verstrebungen zwischen Decke und Rand.
|
// Zusätzliche Verstrebungen zwischen Decke und Rand.
|
||||||
if (rounded_edges) {
|
if (rounded_edges || beveled_edges) {
|
||||||
color(color_struts)
|
color(color_struts)
|
||||||
for (pos = [
|
for (pos = [
|
||||||
// [x, y, rotation, länge]
|
// [x, y, rotation, länge]
|
||||||
|
@ -367,6 +304,78 @@ module casing_front() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Kleine Streben zwischen Decke und Rand.
|
||||||
|
module border_strut(width, length, height) {
|
||||||
|
x = width/2;
|
||||||
|
y = length/2;
|
||||||
|
|
||||||
|
polyhedron(points = [
|
||||||
|
[-x, -y, 0],
|
||||||
|
[x, -y, 0],
|
||||||
|
[x, y, 0],
|
||||||
|
[-x, y, 0],
|
||||||
|
[-x, y, height],
|
||||||
|
[x, y, height]
|
||||||
|
], faces = [
|
||||||
|
[0, 1, 2, 3],
|
||||||
|
[1, 5, 2],
|
||||||
|
[2, 5, 4, 3],
|
||||||
|
[3, 4, 0],
|
||||||
|
[0, 4, 5, 1]
|
||||||
|
]);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
* Die Hülle. *
|
||||||
|
*************************************************************************/
|
||||||
|
|
||||||
|
module casing_front() {
|
||||||
|
difference() {
|
||||||
|
if (rounded_edges || beveled_edges) {
|
||||||
|
intersection() {
|
||||||
|
union () {
|
||||||
|
outer();
|
||||||
|
}
|
||||||
|
|
||||||
|
color(color_top)
|
||||||
|
minkowski() {
|
||||||
|
linear_extrude(height=1) {
|
||||||
|
import("./svg/front hull.svg");
|
||||||
|
}
|
||||||
|
$fn = $preview ? 4 : 16;
|
||||||
|
if (beveled_edges) {
|
||||||
|
// Abgeschrägte Kanten.
|
||||||
|
cylinder(h=top+space, r1=0.5, r2=(top+space)/2);
|
||||||
|
} else {
|
||||||
|
// Abgerundete Kanten.
|
||||||
|
hull() {
|
||||||
|
for (i = [1:5]) {
|
||||||
|
translate([0, 0, i - 1])
|
||||||
|
cylinder(r=sin(i * (90/5)) * 2, h=top + space);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
outer();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Vergrößere das zu substrahierende Objekt, um Darstellungsfehler
|
||||||
|
// in der Voransicht zu vermeiden.
|
||||||
|
if ($preview) {
|
||||||
|
translate([0, 0, -0.1])
|
||||||
|
resize([0, 0, top + struts + 0.4])
|
||||||
|
top_cutouts();
|
||||||
|
} else {
|
||||||
|
top_cutouts();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Halterungen für die Aktionsbuttons.
|
// Halterungen für die Aktionsbuttons.
|
||||||
// Begrenzung nach oben.
|
// Begrenzung nach oben.
|
||||||
color(color_buttons)
|
color(color_buttons)
|
||||||
|
|
Loading…
Reference in a new issue