Руководство для начинающих по OpenSCAD: Программирование 3D-печатных моделей

Вы всегда хотели создавать свои собственные 3D-модели? А как насчет 3D-печати детали, которую вы разработали? Существует множество программ для 3D-моделирования, но их может быть сложно использовать, если вы не артистичны (как я). OpenSCAD позволяет создавать модели специально для 3D-печати, используя только код . Не волнуйтесь, если вы тоже не умеете кодировать, сегодня я расскажу вам об основах.

Что такое OpenSCAD?

OpenSCAD – это бесплатное средство моделирования Solid Computer Aided Design . Он доступен для Windows, Mac и Linux. Что отличает его от многих других программ, так это то, что вы разрабатываете детали, используя код вместо мыши. Это позволяет очень легко выполнять математические вычисления, сохранять размеры в переменных, изменять размеры деталей и многое другое.

Есть некоторые факторы, которые необходимо учитывать при 3D-печати моделей, но многие из них применимы к 3D-печати CAD-моделей в целом, а не только к проектам OpenSCAD. Если вы хотите узнать больше о 3D-печати, ознакомьтесь с нашим руководством для начинающих. Если вам нужен более интерактивный разработчик моделей, прочтите руководство по созданию объектов в Sketchup.

Подготовка к настройке

Во-первых, перейдите на страницу загрузок и найдите версию OpenSCAD, подходящую для вашей операционной системы. Я использую Mac OS, но эти принципы OpenSCAD применимы ко всем системам.

После установки откройте его. Вам будет представлено это меню запуска:

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

После открытия вам будет представлен этот простой интерфейс:

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

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

Последний раздел – это основной интерфейс вверху справа. Здесь вы можете взаимодействовать со своей моделью, но не сможете редактировать ее здесь (вы будете писать код для этого).

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

Сохраните новый файл, нажав кнопку сохранения в меню редактора или выбрав в Файл > Сохранить .

Основы

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

Вот первая фигура, простой прямоугольник:

А вот код для этого:

  cube (); //создаем куб  

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

Теперь получается красивый куб, но без каких-либо измерений он не очень полезен. OpenSCAD не работает в какой-либо конкретной системе измерения, вместо этого все единицы относятся друг к другу. Вы можете создать коробку 20 x 10, и любая другая программа (например, ваш слайсер для 3D-печати) может интерпретировать их, будь то метрическая или британская система мер. На самом деле это обеспечивает большую гибкость.

Давайте добавим некоторые измерения в ваш куб. Вы делаете это, передавая параметры методу cube :

  cube (size = [10, 20, 30]); //прямоугольник  

Значения 10 , 20 и 30 представляют размер куба по осям X , Y и Z . Обратите внимание, как получился прямоугольник гораздо большего размера:

По умолчанию OpenSCAD рисует компоненты снизу слева. Вы можете отрегулировать это, установив для параметра center значение true .. Вот код для этого с прямоугольником:

  cube (size = [10, 20, 30], center = true); //прямоугольник по центру  

А вот как это выглядит:

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

Переходя к более сложной форме, вот цилиндр :

Вот код для его создания:

  цилиндр (d = 10, h = 10, center = true); //цилиндр  

В отличие от кубиков , цилиндры автоматически рисуются в центре осей X и Y. Параметр d означает диаметр (вместо этого вы можете передать радиус, если хотите). Параметр h – это высота. Но что-то здесь не так. Этот цилиндр выглядит довольно «блочным». Вам нужно увеличить количество нарисованных граней по окружности. Это легко сделать – добавьте в код цилиндра следующий параметр.

  $ fn = 100  

Таким образом, определение цилиндра выглядит следующим образом:

  цилиндр (d = 10, h = 10, center = true, $ fn = 100);  

Вот как это выглядит:

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

Применять преобразования к фигурам легко. Перед созданием фигур необходимо вызвать специальные методы. Вот как повернуть цилиндр с помощью метода rotate :

  повернуть (a = [0, 90, 0]) цилиндр (d = 10, h = 10, center = true); //повернутый цилиндр  

Значения, переданные в параметр a , представляют угол поворота осей X, Y и Z. Вот результат:

Еще одна очень полезная функция – перевести . Это позволяет вам перемещать объекты в трехмерном пространстве. Еще раз, вам нужно будет передать количество движения для каждой оси. Вот результат:

Вот код:

  translate (v = [0, 25, 0]) цилиндр (d = 10, h =  10, center = true);//переведенный цилиндр  

Понимание метода translate – одна из самых важных вещей, которые вы можете сделать. Это необходимо для разработки самых сложных дизайнов.

Наконец, еще одна полезная форма – сфера :

Вот код:

  сфера (d = 100);  

Как и цилиндр, вы можете сгладить это, используя приведенный выше код $ fn .

Advanced Coding

Теперь, когда вы знаете основы, давайте рассмотрим некоторые более сложные навыки. При разработке часть, это помогает подумать о том, как ее можно составить из более мелких фигур и предметов. Вам не нужно этого делать, и вы можете «придумывать» по ходу дела, но это действительно помогает иметь приблизительный план – пусть даже он только в голове.

Давайте создадим расширенную форму: куб с выдолбленной внутренней сферой. Создайте куб и сферу с center , для которого установлено значение true. Вычтите одно из другого, используя метод difference :

  difference () {
//вычитание
куб (размер = [50, 50, 50], центр = true); //внешний куб
сфера (d = 65, center = true); //внутренняя сфера
}

Вот результат:

Поэкспериментируйте с диаметром (параметр d ) сферы и посмотрите, что произойдет.

В OpenSCAD обычно есть много способов выполнить одну и ту же задачу. Если вам нужна канавка в кубе, вы можете вычесть из него еще один куб или добавить еще два над ним. Обычно не имеет значения, каким образом все делается, но в зависимости от сложности детали может быть проще сначала выполнить определенные манипуляции.

Вот как создать канал в кубе. Вместо того, чтобы использовать другой куб, использование цилиндра создаст закругленный канал. Обратите внимание, как снова используется метод difference и как методы translate и rotate используются для управления фигурами. . Использование метода rotate часто затрудняет преобразование, поэтому поиграйте с параметрами, пока не добьетесь желаемого результата.. Вот код:

  difference () {
//вычитание
куб (размер = [50, 150, 50]); //внешний куб
translate (v = [25, 150, 50]) повернуть (a = [90, 0, 0]) цилиндр (d = 40, h = 150); //канал цилиндра
}

Вот как это выглядит:

Вам может быть интересно, что это за зелень. Это здесь, потому что 3D-модель сейчас только предварительный просмотр. Чтобы исправить это, нажмите F6 , чтобы полностью отобразить модель. Это может занять некоторое время, в зависимости от сложности. Предварительный просмотр ( F5 ) обычно достаточно хорош во время работы. Вот как выглядит окончательный рендеринг (со значением $ fn , равным 100):

Вот еще один сложный пример. Скажем, вы хотели закрепить что-нибудь с помощью болта. Создать отверстие с помощью цилиндра достаточно просто, но что, если вы хотите установить головку болта заподлицо для болтов с потайной головкой? Вы можете просто создать большой цилиндр для головки болта, но это будет выглядеть не очень красиво. Решением является фаска, которую можно создать с помощью метода цилиндр . Хитрость здесь в том, чтобы указать два диаметра – d1 и d2 . Сделайте эти размеры разных размеров, а все остальное сделает OpenSCAD.

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

  $ fn = 100; 
//настройки болта
m5_clearance_diameter = 5.5;
m5_head_clearance_diameter = 11;
m5_head_depth = 5;
difference () {
//вычитаем
куб (20, 20, 20);
bolt_hole (10, 10 , 20);
bolt_bevel (10, 10, 15);
}
модуль bolt_hole (x, y, height) {
/* Отверстие M5 под углом 90 град. */
translate (v = [x, y, 0]) цилиндр (d = m5_clearance_diameter, h = height);
}
модуль bolt_bevel (x, y, z) {
//Фаска M5
преобразовать (v = [x, y, z]) цилиндр (d2 = m5_head_clearance_diameter, d1 = m5_clearance_diameter, h = m5_head_depth);
}

Обратите внимание, как размеры болтов хранятся в переменных? Это значительно упрощает кодирование и сопровождение. Один из методов, с которым вы, возможно, еще не сталкивались, – это module . Это позволяет вам определить блок кода, который будет выполняться в любое время. На самом деле это функция . Вы должны использовать модули и переменные для любой сложной формы, так как они упрощают чтение и ускоряют внесение изменений. Вот как выглядит фаска:

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

Вот код:

  $ fn = 100; 
number_of_holes = 10;
for (i = [1: 360/number_of_holes: 360]) {
//number_of_holes определяет количество запусков этого кода
make_cylinder (i);
}
module make_cylinder (i) {
//делаем цилиндр и даже распределяем
вращать ([0, 0, i]) переводить ([10, 0, 0]) цилиндр (h = 2, r = 2);
}

Этот код проще, чем можно было ожидать. Цикл for используется для вызова make_cylinder десять раз. Так как круг состоит из 360 градусов и 360/10 = 36, каждый цилиндр нужно повернуть на инкр. температура 36 градусов. Каждая итерация этого цикла будет увеличивать переменную i на 36. Этот цикл вызывает модуль make_cylinder , который просто рисует цилиндр и позиционирует его в соответствии с градусами. перешли к нему по петле. Вы можете нарисовать больше или меньше цилиндров, изменив переменную number_of_holes – хотя вы можете изменить интервал, если вы это сделаете. Вот как выглядят 100 цилиндров, они немного перекрываются:

Экспорт

Теперь, когда вы знаете, как кодировать в OpenScad, необходимо сделать последний шаг, прежде чем вы сможете печатать свои модели на 3D-принтере. Вам необходимо экспортировать свой дизайн из OpenSCAD в стандартный формат STL , используемый большинством 3D-принтеров. к счастью, есть кнопка экспорта в STL: Меню редактора > Вверху справа :

На сегодня все. Теперь у вас должно быть отличное рабочее знание OpenSCAD – все сложные вещи строятся на этих основах, и многие сложные формы на самом деле представляют собой множество простых вместе взятых..

В качестве проблемы, почему бы не взглянуть на некоторые из наших проектов 3D-печати и попытаться воссоздать детали в OpenSCAD:

  • 3D Printables для Настольные фэнтези-ролевые игры
  • Пользовательские кнопки быстрого доступа
  • Electronic D20
  • Игры, которые можно распечатать в 3D

Вы узнали какие-нибудь новые трюки сегодня? Какая ваша любимая функция OpenSCAD? Перейдете ли вы в ближайшее время с другого инструмента САПР? Дайте нам знать в комментариях ниже!

.

Оцените статью
futurei.ru
Добавить комментарий