Какой рейтинг вас больше интересует?
|
Главная / Каталог блогов / Cтраница блогера 3D Печать, 3D Принтеры и другие приключения в стране RepRap план / Запись в блоге
OpenSCAD - Введение2013-11-19 02:00:00 (читать в оригинале)OpenSCAD - это программа твердотельного 3D моделирования, которая очень популярна среди RepRap сообщества. Принцип ее работы основан на написании алгоритма отрисовки 3D объекта. Для начала нужно настроить наше рабочее пространство, как это сделать и облегчить себе работу в OpenSCAD читайте здесь. Теперь удобно расположите ваши руки на клавиатуре и мы начнем. Весь код мы будем вводить в окне Sublime Text и по нажатию Ctrl+S он будет отображаться в окне OpenSCAD. Но вы также можете обойтись и одним OpenSCAD, в этом случае вводите код в окно редактора OpenSCAD. Куб и ПеремещениеКуб в OpenSCAD относится к прямоугольной призме. Чтобы создать куб введите: cube(5); Мы также можем отобразить куб в центре координат: cube(5, center=true); Куб с разными сторонами отображается следующей командой, где размер указывается в формате [x,y,z]: cube([2,2,5], center=true); Чтобы переместить объект используется команда translate([x,y,z]), например переместим предыдущий куб на 2 по Х, на 2 по У и на 10 по Z: translate([2,2,10]) cube([2,2,5], center=true); Если нужно переместить группу объектов то эта группа заключается в фигурные скобки, например так: translate([2,2,10]) { }В OpenSCAD все что идет после символов // является комментарием и не учитывается интерпретатором OpenSCAD при генерации 3D модели, в них можно писать пометки в вашем коде чтобы потом легче было разобраться в нем, особенно когда код будет очень большим и сложным. Перемещать естественно можно и в отрицательные полуоси, например: translate([2,-2,-10]) { А теперь сделаем модель буквы "П"
Каждая строка кода завершается точкой с запятой, после фигурных скобок точку с запятой ставить не обязательно. ПеременныеВы можете использовать цифры при задании команд и создании объектов, но если вы хотите чтобы от изменения одного значения пересчитались и все остальные и когда ваша 3D модель будет очень сложной с большим числом строк кода, вам не обойтись без переменных. Переменная определяется следующим образом: parameter = 10;В OpenSCAD нельзя переопределять переменные, т.е. переменная должна быть задана только один раз, и она будет равна последнему присвоенному значению по всему тексту скрипта, например: a = 10;Даст следующий результат: ECHO: 15А теперь давайте сделаем ту же модель буквы "П" с применением переменных: depth = 2; //глубина модели по оси Y Попробуйте поэкспериментировать с различными значениями параметров. Как видите теперь намного проще изменять модель. Теперь давайте взглянем на другие формы которые вы можете использовать в OpenSCAD. СфераПростая сфера (шар) может быть определена командой: sphere(r=5); Вы можете управлять разрешением сферы и других форм при помощи параметра $fn. Разрешение можно задать как для всего скрипта: $fn = 50;Так и для конкретной формы которая позволяет использовать этот параметр: sphere(r=5, $fn = 50); На время проектирования рекомендуется использовать разрешение 20-40, а при компиляции и прорисовке готовой модели 100-150, потому что чем выше разрешение тем дольше будет проходить компиляция и тем больше понадобится памяти OpenSCAD. Цилиндр и ВращениеДля цилиндра нужно указать два параметра, радиус и высоту, а также можно указать разрешение как для сферы и положение относительно центра как для куба: cylinder(r=5, h=5, center=true, $fn = 50); Цилиндр создается в вертикальном положении, а если нам он нужен в горизонтальном положении то мы воспользуемся функцией вращения rotate([x,y,z]), где x,y,z - это угол на который нужно повернуть относительно соответствующей оси. Например повернем цилиндр на 90° относительно оси Y: rotate([0,90,0]) cylinder(r=5, h=5, center=true, $fn = 50); А теперь повернем и переместим цилиндр одновременно: translate([0,0,5]) rotate([0,90,0]) cylinder(r=5, h=5, center=true, $fn = 50);Этот код можно написать и подругому: translate([0,0,5]) { Из цилиндра можно получить конус задав разные диаметры сверху и снизу: cylinder(r1=20, r2=3, h=40, center=true, $fn=50); Где r1 - диаметр основания, а r2 - диаметр вершины. Вы также можете получить идеальный конус задав диаметр r2 равным нулю. Объединение и ВырезаниеОбъединение неявно когда не используется. Но оно необходимо, например когда необходимо вырезать один объект из группы объектов. Пример объединения:union() { Все что мы рассмотрели ранее позволяет создавать объекты сложной формы посредством добавления небольших частей друг к другу. Но очень часто нам нужно вырезать какую-то часть. И рассмотрим мы это на примере создания кольца. В функции вырезания из первого объекта вырезаются все последующие: $fn = 50; Иногда очень удобно видеть что мы вырезаем и в этом случае можно использовать специальный знак #, который делает видимым вырезаемую часть: $fn = 50; Вырезаемая часть всегда должна быть немного больше. Например в рассмотренном выше примере, если между внешним и внутренним цилиндрами не будет перекрытия мы получим "оболочку" равную нулю. Это плохой стиль 3D моделирования, и может привести к ошибкам при генерации модели (рендеринг) или отправке модели в 3D принтер. Поэтому всегда учитывайте это и делайте вырезаемый объект немного выступающим, 0.1мм достаточно. А теперь используем объединение и вырезание в одном примере, чтобы наглядно показать как вырезать из группы объектов: difference() { МодулиМодули являются мощным средством в OpenSCAD, они позволяют упростить и повторно использовать однажды написаный код. Сделаем ранее рассмотренную модель буквы "П" с использованием модуля: // Инструкции как должна создаваться буква "П" А теперь давайте улучшим модуль и будем передавать параметры в него, что позволит повторно использовать модуль с разными размерами, и создадим несколько разных букв "П": // Инструкции как должна создаваться буква "П" Модули незаменимы когда вы работаете с функциями которые должны повторно использоваться в вашей модели. Вот мы и рассмотрели основные функции OpenSCAD, которые позволят вам создавать ваши 3D модели в такой замечательной программе твердотельного 3D моделирования как OpenSCAD. Продолжение следует... При копировании ссылка на источник обязательна.
|
Категория «Люди»
Взлеты Топ 5
Падения Топ 5
Популярные за сутки
|
Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.
взяты из открытых общедоступных источников и являются собственностью их авторов.