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

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

Что такое OpenSCAD?

OpenSCAD является бесплатным Твердый компьютерный дизайн моделист. Он доступен для Windows, Mac и Linux. Отличительной особенностью многих других программ является то, что вы проектируете детали, используя код вместо мыши. Это позволяет очень легко выполнять математические вычисления, сохранять размеры в переменных, изменять размеры деталей и многое другое.

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

, Если вы ищете более интерактивного модельера, прочтите руководство по созданию объектов в Sketchup.

,

Начало настройки

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

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

OpenSCAD Стартовое Меню

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

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

Интерфейс OpenSCAD

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

OpenSCAD Editor

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

Консоль OpenSCAD

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

Интерфейс OpenSCAD

Есть несколько кнопок в нижней части этого основного интерфейса. Это в первую очередь позволяет вам просматривать ваш дизайн по-разному.

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

Основы

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

Вот первая форма, простая коробка:

OpenSCAD Simple Box

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

cube(); // create a cube

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

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

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

cube(size = [10, 20, 30]); // rectangle

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

OpenSCAD Rectangle

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

cube(size = [10, 20, 30], center = true); // rectangle centered

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

OpenSCAD прямоугольник по центру

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

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

OpenSCAD Cylinder

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

cylinder(d = 10, h = 10, center = true); // cylinder

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

$fn = 100

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

cylinder(d = 10, h = 10, center = true, $fn = 100);

Вот как это выглядит:
Цилиндр высокого разрешения OpenSCAD

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

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

rotate(a = [0, 90, 0]) cylinder(d = 10, h = 10, center = true); // rotated cylinder

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

OpenSCAD Rotation

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

OpenSCAD Перевести

Вот код:

translate(v = [0, 25, 0]) cylinder(d = 10, h = 10, center = true); // translated cylinder

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

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

OpenSCAD Sphere

Вот код:

sphere(d = 100);

Так же, как цилиндр, вы можете сгладить это с помощью $ п код выше.

Расширенное кодирование

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

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

difference() {
// subtraction
cube(size = [50, 50, 50], center = true); // outer cube
sphere(d = 65, center = true); // inner sphere
}

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

OpenSCAD Advanced Cube

Эксперимент с диаметром (d параметр) сферы и посмотрим, что получится.

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

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

difference() {
// subtraction
cube(size = [50, 150, 50]); // outer cube
translate(v = [25, 150, 50]) rotate(a = [90, 0, 0]) cylinder(d = 40, h = 150); // cylinder channel
}

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

OpenSCAD Channel Cube

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

Канал высокого разрешения OpenSCAD

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

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

$fn = 100;
// bolt settings
m5_clearance_diameter = 5.5;
m5_head_clearance_diameter = 11;
m5_head_depth = 5;
difference() {
// subtract
cube(20, 20, 20);
bolt_hole(10, 10, 20);
bolt_bevel(10, 10, 15);
}
module bolt_hole(x, y, height) {
/* M5 hole at 90 deg. */
translate(v = [x, y, 0]) cylinder(d = m5_clearance_diameter, h = height);
}
module bolt_bevel(x, y, z) {
// M5 bevel
translate(v = [x, y, z]) cylinder(d2 = m5_head_clearance_diameter, d1 = m5_clearance_diameter, h = m5_head_depth);
}

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

OpenSCAD Chamfer

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

OpenSCAD Circle Distribution

Вот код:

$fn = 100;
number_of_holes = 10;
for(i = [1 : 360 / number_of_holes : 360]) {
// number_of_holes defines number of times this code runs
make_cylinder(i);
}
module make_cylinder(i) {
// make cylinder and even distribute
rotate([0, 0, i]) translate([10, 0, 0]) cylinder(h = 2, r = 2);
}

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

OpenSCAD 100 Circle Distribution

Экспорт

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

OpenSCAD Export STL

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

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

  • 3D печатные формы для настольных ролевых игр Fantasy
  • Пользовательские кнопки быстрого доступа
  • Электронный Д20
  • Игры, которые вы можете 3D-печать

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

Ссылка на основную публикацию
Adblock
detector