From bfdd73d7324a4f66a16f55d4fb064b0ff08d40e9 Mon Sep 17 00:00:00 2001 From: Alexander Neonxp Kiryukhin Date: Mon, 2 Feb 2026 00:35:54 +0300 Subject: =?UTF-8?q?=D0=91=D0=BE=D0=BB=D1=8C=D1=88=D0=B0=D1=8F=20=D1=87?= =?UTF-8?q?=D0=B8=D1=81=D1=82=D0=BA=D0=B0=20=D0=B1=D0=BB=D0=BE=D0=B3=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lets-code-3d_source.scad | 66 ++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 content/posts/2025-08-05-lets-code-3d/lets-code-3d_source.scad (limited to 'content/posts/2025-08-05-lets-code-3d/lets-code-3d_source.scad') diff --git a/content/posts/2025-08-05-lets-code-3d/lets-code-3d_source.scad b/content/posts/2025-08-05-lets-code-3d/lets-code-3d_source.scad new file mode 100644 index 0000000..b651cb3 --- /dev/null +++ b/content/posts/2025-08-05-lets-code-3d/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], + ] + ); +} -- cgit v1.2.3