ReefCentral.ru для iOS
Простое применение 3D принтера в аквариумистике. Часть 1.
23.08.2017
Разделы: Техника
DIY (самоделки)
Автор: Борис Крамер      

3D-печать с каждым днём становится всё более популярной. На сегодняшний день, я думаю, 100% аквариумистов знакомы с этим понятием. Число домашних принтеров также растёт, но очень медленно. Причин тому несколько:

- Ограниченность применения — зачем мне 3D-принтер? Что я буду с ним делать?
- Сложность технологии — напечатать бесплатную модель на принтере из коробки проблем не вызывает, а спроектировать свою - достаточно сложный процесс, требующий определенных знаний и опыта работы с программами 3D-проектирования.

Поэтому 3D-печать, несмотря на большое количество недорогих принтеров, с ценами в диапазоне 1000$-3000$, в основном, остаётся за рамками бытового применения и больше используется для бизнеса.

В данной статье я хочу рассказать как не обладая практически никаким опытом и не владея сложными программами можно изготавливать простейшие вещи, приобретение которых часто вызывает большую головную боль у аквариумистов.

В качестве первого примера напечатаем себе переходник на вход помпы пенника. Эта простая вещь часто вызывает проблемы с приобретением или изготовлением.

Итак, предположим у нас есть пенник и на вход помпы нам надо одеть заборную решетку.

01.jpg

В продаже имеется большой выбор заборных решеток в виде длинного цилиндра.

02.jpg

Однако они сильно уменьшают и без того небольшое свободное пространство в сампе. Поэтому гораздо более правильно использовать заборные решетки другого типа.

03.jpg

04-1.jpg


Их выбор уже значительно меньше. И если в первом случае еще можно попытаться найти решетку нужного посадочного диаметра, то во втором это сложно даже во многих западных интернет-магазинах.

Однако, имея дома самый дешевый 3D-принтер можно попробовать изготовить самостоятельно переходник на нужный нам диаметр. Для этого нам надо создать 3D модель переходника. В большинстве случаев это делается с помощью различных больших и сложных CAD программ для 3D проектирования. Изучение подобных программ является основным ограничителем на пути к самостоятельному изготовлению нужных нам деталей. 
 
Однако, есть простая и бесплатная программа OpenSCAD, которая позволяет, не владея никакими навыками 3D-проектирования и имея минимальное понимание геометрии на уровне 7-го класса, создавать простые модели, способные полностью перекрыть нужды рядового аквариумиста. 

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

Итак, скачиваем программу и запускаем ее.

05.png

Слева у нас окно для описания нужного нам переходника, справа координатная сетка, где будет отображаться наша модель.

Для начала измерим наружный диаметр помпы пенника и внутренний диаметр имеющейся у нас заборной решетки. Измерять можно как штангель-циркулем, так и обычной линейкой. Во втором случае ошибка будет больше, но это не страшно, так как за пару пробных моделей мы ее компенсируем.

Измерили, получили – помпа пенника 32.7 мм, заборная решетка 50.6 мм. Длина посадки заборной решетки 22 мм.

Начнем описывать нашу модель.

Pump_diameter = 32.7;
Grid_diameter = 50.6;
Grid_length = 22;

Дальше внесем описание цилиндра, который бы вошел в посадочное отверстие решетки. Для этого воспользуемся графическим примитивом cylinder() с указанием его диаметра, высоты и положением центра (значение положения центра false заставляет программу начинать отсчет координат от основания цилиндра).

cylinder(h=Grid_length, d=Grid_diameter, center=false);

Далее нажмем кнопку F6 для построения модели.

06.png

Отлично – теперь опишем внутренний цилиндр, который будет одеваться на помпу (после каждого изменения описания нажимаем F6 для перестроения модели).

cylinder(h=Grid_length, d=Pump_diameter, center=false);

07.png

Внешне на картинке ничего не изменилось, так как мы построили внутренний цилиндр внутри наружного. Но нам не нужны сами эти цилиндры, а нужно то что между ними. То есть мы должны из наружного цилиндра вырезать (вычесть) внутренний. Для этого воспользуемся примитивом difference(), который даст нам только пространство между двумя цилиндрами.

difference() {
cylinder(h=Grid_length, d=Grid_diameter, center=false);
cylinder(h=Grid_length, d=Pump_diameter, center=false);
}

Посмотрим, что получилось.

08.png

Вот мы по сути и получили наш переходник, набросав в несколько строчек его описание.
В принципе можно на этом и остановиться. Немного поиграв с диаметрами (так как наверняка ошиблись при измерениях) и напечатав пару пробных моделей мы получим нужный результат. Однако, можно немного улучшить нашу модель, довести ее до ума.

Для начала обратим внимание, что наша модель не круглая, а представляет из себя многоугольник. Она также и напечатается принтером. Происходит это потому, что любая окружность – это с точки зрения принтера и программ описания и на самом деле многоугольник, просто с очень большим количеством граней. По умолчанию программа делает это количество граней небольшим, чтобы ей было легче строить модель. Надо заставить ее увеличить количество граней. Введем параметр гладкости в котором фактически укажем программе сколько этих граней делать.Затем добавим этот параметр в описание цилиндров.

Smoothness= 360;
cylinder($fn=Smoothness, h=Grid_length, d=Grid_diameter, center=false);
cylinder($fn=Smoothness, h=Grid_length, d=Pump_diameter, center=false);

09.png

Видим, что цилиндр стал гладким, но при этом программа слала намного дольше строить модель. Чем выше количество граней, тем более похожей на идеальную окружность будет поверхность нашего переходника, но тем больше будет считать программа. Так как у принтера есть свои ограничения по качеству печати нет смысла задавать количество граней очень большим. Для маленьких объектов количество 360 хватает всегда. Для больших, размером со все печатное пространство принтера можно указывать примерно до 1000. Так как программа начинает дольше строить модель имеет смысл работать с небольшим количество граней, а увеличивать их только перед печатью. Я дальше буду везде дальше ставить сразу большое, только чтобы картинки для статьи были более красивые.

Продолжаем улучшать модель. Полученную нами модель можно приклеить, но тогда будет невозможно разобрать в случае необходимости. Гораздо лучше, чтобы модель одевалась с небольшим усилием, и плотно сидела на своем рабочем месте. Для обеспечения легкого одевания и плотной посадки необходимо иметь в посадочных местах небольшую конусность. Описание цилиндров позволяет это сделать, указав разные диаметры для низа (d) и верха (d2) модели. Воспользуемся такой возможностью.

Введем два параметра. Первый Change_Begin - это уменьшение посадочного диаметра в точке входа для легкости одевания. Второй – Change_End - это увеличение посадочного диаметра в конце для плотной посадки. Уменьшить диаметр на входе достаточно совсем немного, примерно на 0,1 мм. Увеличить в конце можно немного побольше – на 0,2 мм. Это значения для пластика PLA, который достаточно жесткий. Для мягкого нейлона уменьшение диаметра можно сделать и 0,5 мм – плотнее сидеть будет.

Change_begin = 0.1;
Change_end = 0.2;

Изменим описание цилиндров для получения конусности.
Наружный цилиндр, который вставляется в заборную решетку верхним концом сделаем вверху чуть меньшего диаметра d2=Crid_Diameter-Change_begin, а внизу большего d=Grid_diameter+Change_end. 
 
cylinder($fn=Smoothness, h=Grid_length, d=Grid_diameter+Change_end,
d2=Grid_Diameter-Change_begin, center=false);

Внутренний цилиндр, который одевается на помпу нижним концом сделаем внизу большего диаметра:
d=Pump_diameter+Change_begin, асверхуменьшегоd2=Pump_diameter-Change_end

cylinder($fn=Smoothness, h=Grid_length, d=Pump_diameter+Change_begin,
d2=Pump_diameter-Change_end, center=false);

10.png

Внешне ничего не изменилось, так как наша конусность очень небольшая и невидима на глаз. Но можете не сомневаться, что она там есть. В этом после печати легко убедиться с помощью штангель-циркуля.

Теперь еще небольшое усовершенствование. Когда мы будем такой цилиндр вдевать в заборную решетку и потом одевать на помпу есть вероятность что при усилии одевания на помпу цилиндр провалится внутрь заборной решетки. С этим можно бороться либо, увеличив конусность на внешней поверхности нашего цилиндра, либо поставив ограничительное кольцо. Кольцо – это более правильное решение, воспользуемся им.
Вводим параметр высоты стопорного кольца, например, 2мм. Внешний диаметр берем такой же, как и заборной решетки.

Stop_ring_length = 2;
Stop_ring_diameter = 60;

Внутренний диаметр стопорного кольца можно взять любой, главное, чтобы он был где-нибудь внутри нашего основного цилиндра. Например, можно взять половинный между внешними и внутренними диаметрами основного цилиндра

Stop_ring_internal_diameter = (Grid_diameter + Pump_diameter) / 2;

Описываем стопорное кольцо точно также как мы описывали основной цилиндр.

difference() {
cylinder($fn=Smoothness, h=Stop_ring_length, d=Stop_ring_diameter, center=false);
cylinder($fn=Smoothness, h=Stop_ring_length, d=Stop_ring_internal_diameter, center=false);
}

11.png

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

// основные параметры, меняем их в зависимости от диаметра помпы и решетки
Pump_diameter = 32.7;
Grid_diameter = 50.6;
Grid_length = 22;
Stop_ring_length = 2;
Stop_ring_diameter = 60;

// параметры конусности, меняем их при необходимости
Change_begin = 0.1;
Change_end = 0.2;

Smoothness = 360; // параметр сглаживания
Stop_ring_internal_diameter = (Grid_diameter + Pump_diameter) / 2;

// описание основного цилиндра переходника
difference() {
cylinder($fn=Smoothness, h=Grid_length, d=Grid_diameter+Change_end,
d2=Grid_diameter-Change_begin, center=false);

cylinder($fn=Smoothness, h=Grid_length, d=Pump_diameter+Change_begin,
d2=Pump_diameter-Change_end, center=false);

}

// описание стопорного кольца
difference() {
cylinder($fn=Smoothness, h=Stop_ring_length, d= Stop_ring_diameter,
center=false);
cylinder($fn=Smoothness, h=Stop_ring_length, d= Stop_ring_internal_diameter,
center=false);
}

Дальше экспортируем модель в формате stl и загружаем в программу принтера. Ставим заполнение 20% и печатаем.

66.jpg

Наблюдаем процесс печати.

04-3.jpg

Видно, что внутри модель почти пустая. Только перегородки для жесткости. Количество перегородок зависит от процента заполнения. Обычно заполнение для подобных деталей ставят от 20% до 50%. Больше – это бесполезный расход пластика.

Печать подобной детали занимает примерно 3 часа.

04-4.jpg

Деталь готова. Делаем первую примерку.:

04-2.jpg

04.jpg

Идеально, входит с небольшим усилием, держится очень плотно, руками обратно не вытащить. Что нам и надо.

Примеряем к помпе. Не лезет.

Смотрим на деталь внимательно и видим, что самый нижний слой детали за счет небольшого расплющивания о стекло получается немного меньше чем нужно. Край заострен и на ощупь немного выступает. Это нормально. Берем наждачную шкурку и несколько раз проводим внизу внутреннего диаметра. То же самое можно легко сделать и обычным кухонных ножом, но нужен некоторый навык, который, впрочем, приходит со 2-3 раза.

Примеряем к помпе снова. Снова не лезет. Но совсем чуть-чуть. Мне было лень вытаскивать пенник, поэтому я мерял прямо под водой в сампе и немного ошибся. Ничего страшного, даже перемерять не будем. Описание модели у нас универсальное, удобно менять любые параметры. Число на ощупь прикидываем, что не лезет примерно на 0,1-0,2 мм. Увеличиваем внутренний диаметр.

Меняем строку
Pump_diameter = 32.7;
на новое значение:
Pump_diameter = 32.9;

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

Нажимаем F6, и печатаем полученную модель заново:

77.jpg

В этот раз все замечательно.

Теперь еще пару слов. Описание модели выглядит внушительно. Но это я его так украшал для статьи и для универсальности. В реальности, когда я печатал этот переходник для себя, то описание модели выглядело вот так:

difference() {cylinder($fn=360, h=22, d=50.8, d2=50.5, center=false);
cylinder($fn=360, h=22, d=33.0, d2=32.7, center=false);}
difference() {cylinder($fn=360, h=2, d= 60, center=false);
cylinder($fn=360, h=2, d= 35, center=false);}

4 строчки, на которые я потратил наверно меньше одной минуты (не считая время измерений). Даже чтобы просто найти нужный переходник в инете и заказать его уйдет намного больше времени. Не говоря уже об его изготовлении из обрезков каких-нибудь труб.

Также не представляет никаких проблем напечатать не переходник, а целиком заборную решетку. Просто она у меня уже была. Стоимость подобных аксессуаров для аквариумов довольно велика и принтер может легко отбить свою стоимость за короткое время. Плюс к тому, он дает возможность сделать вещи под себя, которые просто не купить.

Если у форумчан будет интерес, то в следующих частях статьи я могу разобрать более сложные конструкции.

Борис Крамер специально для ReefCentral.ru
Если вы увидели этот материал на другом сайте - значит, он был украден.
Просим сообщать о замеченных фактах на info@reefcentral.ru

Количество показов статьи: 5954