summaryrefslogtreecommitdiff
path: root/content/posts/files/lets-code-3d_source.scad
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--content/posts/files/lets-code-3d_source.scad66
1 files changed, 66 insertions, 0 deletions
diff --git a/content/posts/files/lets-code-3d_source.scad b/content/posts/files/lets-code-3d_source.scad
new file mode 100644
index 0000000..b651cb3
--- /dev/null
+++ b/content/posts/files/lets-code-3d_source.scad
@@ -0,0 +1,66 @@
+// Толщина стенки
+wall = 2;
+
+// Высота внешняя
+height = 12;
+
+// Длина основной части (внутренняя)
+l1 = 15;
+
+// Длина носика (внутренняя)
+l2 = 20;
+
+// Ширина у основания (внутренняя)
+w = 15;
+
+// Толщина метала бокорезов
+toolWidth = 2.1;
+
+// Нижняя крышка
+cover(0);
+
+// Верхняя крышка
+cover(height - wall);
+
+// Корпус
+difference() {
+ linear_extrude(height)
+ polygon(
+ [ // Полигон идёт против часовой стрелки
+ [0, 0],
+ [wall, 0],
+ [wall, l1],
+ [w / 2 + wall, l1 + l2], // Внутренний кончик носика
+ [w + wall, l1],
+ [w + wall, 0],
+ [w + wall * 2, 0],
+ [w + wall * 2, l1],
+ [w / 2 + wall / 2 + wall, l1 + l2 + wall], // Внешний кончик носика
+ [w / 2 - wall / 2 + wall, l1 + l2 + wall],
+ [0, l1],
+ ]
+ );
+
+ // Вырезы
+ translate([w + wall, 0, height / 2 - toolWidth]) // Правый вырез чуть ниже середины
+ cube([wall, l1 / 2, toolWidth]);
+ translate([0, 0, height / 2]) // Левый вырез чуть выше середины
+ cube([wall, l1 / 2, toolWidth]);
+}
+
+
+// Крышка
+module cover(z) {
+ translate([0, 0, z])
+ linear_extrude(wall)
+ polygon(
+ [ // Полигон идёт против часовой стрелки
+ [0, 0],
+ [w + wall * 2, 0],
+ [w + wall * 2, l1],
+ [w / 2 + wall / 2 + wall, l1 + l2 + wall],
+ [w / 2 - wall / 2 + wall, l1 + l2 + wall],
+ [0, l1],
+ ]
+ );
+}