38 lines
1.1 KiB
OpenSCAD
38 lines
1.1 KiB
OpenSCAD
|
// Base is the bottom part where the recipe will go into
|
||
|
$base_width = 150;
|
||
|
$base_depth = 14;
|
||
|
$base_height = 14;
|
||
|
|
||
|
// The size of the gap the recipe needs to fit into
|
||
|
$recipe_gap_lip = 8;
|
||
|
$recipe_gap = 5;
|
||
|
$recipe_angle = 30; // degrees
|
||
|
|
||
|
// The support part in the back to hold the recipe
|
||
|
$frame_width = 20;
|
||
|
$frame_depth = $base_depth / 2 - $recipe_gap / 2;
|
||
|
$frame_height = 180;
|
||
|
|
||
|
$support_width = $frame_width;
|
||
|
$support_depth = $frame_height * cos(90 - $recipe_angle);
|
||
|
$support_height = 5;
|
||
|
|
||
|
translate([$base_width / 2 - $support_width / 2, -1 * $support_depth, 0])
|
||
|
support();
|
||
|
rotate([$recipe_angle, 0, 0])
|
||
|
holder();
|
||
|
|
||
|
|
||
|
module support() {
|
||
|
cube([$support_width, $support_depth, $support_height]);
|
||
|
};
|
||
|
|
||
|
module holder() {
|
||
|
translate([$base_width / 2 - $frame_width / 2, 0, 0])
|
||
|
cube([$frame_width, $frame_depth, $frame_height]);
|
||
|
difference() {
|
||
|
cube([$base_width, $base_depth, $base_height]);
|
||
|
translate([-1 * $base_width, $base_depth / 2 - $recipe_gap / 2, $base_height - $recipe_gap_lip])
|
||
|
cube([$base_width * 3, $recipe_gap, $base_height * 2]);
|
||
|
};
|
||
|
};
|