3D печать. OpenSCAD- Рисовать или программировать.

Давно не писал в блоге. Исправляюсь.

Недавно мое внимание привлек интересный, на мой взгляд, 3D редактор для разработки моделей для печати. Его необычность заключается в том, что модель не рисуется, а программируется, в прямом смысле этого слова. Встречайте — OpenSCAD. Как видно из названия, программа совершенно бесплатна и имеет исходные коды в свободном доступе. Соответственно работать можно как в Windows, Linux, Mac, так и в других системах, где есть компилятор кода С++.

Скачать можно здесь http://www.openscad.org/downloads

open1

 

Интерфейс редактора предельно прост. С левой стороны редактор кода, с правой – предпросмотр готовой модели. После написания кода можно выбрать кнопку просмотр на панели инструментов или нажать F5 для того, чтобы посмотреть, как выглядит ваше творение. Затем провести рендеринг для его оцифровки (кнопка рядом или F6). И далее – экспортировать в STL формат или какой-либо другой.

Все основное волшебство заключается именно в написании исходного кода. Язык программирования очень напоминает Си. Для создания объекта достаточно указать тип элемента, его местоположение, размер, поворот и несколько других параметров. К примеру, цилиндр высотой 10мм, радиусом 3мм и размещенным по центру на языке OpenSCAD выглядит так: cylinder(d=3, h=10, center=true);

open2

Мдаа… Как-то не очень… Сделано это для того, чтобы уменьшить время расчета модели. Перед экспортом надо указать параметр $fn ,тем самым увеличив количество граней концентрических окружностей. Чем больше значение, тем более гладкой будет поверхность.

open3

Гораздо лучше 🙂

Для того, чтобы показать некоторые возможности, разработаем (читай — запрограммируем), например, модель держателя шагового двигателя nema 17 для сборки 3D принтера Mendel-90.

Как и в любом языке программирования здесь можно использовать подпрограммы, или как они называются – модули. Модули удобны тем, что им можно передавать значения, подобно подпрограммам, и использовать их для создания однотипных элементов.

open4

Разберем листинг:

Модуль div рисует горизонтальную площадку, ups – вертикальную. Переменная d_bolt задает радиус под болты. Ключ $fn – см. выше.

Функция difference() выдавливает из первой фигуры последующие. Функция translate () перемещает элемент на заданные координаты (х,у,z). Функция rotate () поворачивает фигуру на указанный угол.

Используем фигуры cube () – куб, прямоугольник, cylinder () – цилиндр.

$fn=300;

d_bolt=1.5;

div ();

ups ();

    

module div (){

difference() {

   cube([46,46,4],center = true);

   cylinder (h=7, r=11, center =true);

   translate([-15.5,15.5,0])cylinder (h=7, r=d_bolt, center =true);

   translate([-15.5,-15.5,0])cylinder (h=7, r=d_bolt, center =true);

   translate([15.5,-15.5,0])cylinder (h=7, r=d_bolt, center =true);

   translate([15.5,15.5,0])cylinder (h=7, r=d_bolt, center =true);

   }

}

module ups (){

difference() {

   translate([25,0,18]) cube([4,46,40],center = true);

   rotate ([0,90,0]) translate([-20,12,12])cylinder (h=40, r=d_bolt, center =true);

   rotate ([0,90,0]) translate([-20,-12,12])cylinder (h=40, r=d_bolt, center =true);

  

   }

}

Подведем итог сего. На первый взгляд редактор имеет:

Достоинства:

— Портируемость на любую платформу, писать программы можно даже на планшете или смартфоне 🙂 ;

— Абсолютно бесплатно;

— Используя преременные можно внести изменения в весь проект сразу;

— Простота использования;

 

Недостатки:

— Сложно использовать для построения сложных моделей (шестерни, резьбы, точные изгибы);

— Небольшое количество библиотек базовых моделей.

Хотя есть любители, которые программируют и такое:

 

PoorMansOpenSCADscrewLibrary-700x467Mini-extruder-open-scad-assembly openscad-screen-728x419

Все… Пока все… Следите за новыми публикациями.

Посмотрите так же...
5 комментариев
  1. Vlad:

    Хм… Нет, я конечно извращенец, но не на столько, что бы 3Д объекты программить. Пока вижу один плюс — фри.

  2. Sam:

    Хм… месье знает толк в извращениях. 🙂 Пока вижу один плюс — одновременное изменение размеров под крепеж или установочные элементы.

  3. Vlad:

    А в кадовских программах это «так утомительно»! 🙂

  4. Для этого рисуем цилинд, высота которого будет равна толщине ушка, внутри него рисуем меньший цилиндр, и вычитаем из большего.

  5. Дмитрий:

    Норм редактор, если приловчишься — что-то накидать вообще быстро

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*