Шпаргалка по OpenSCAD
КУБ
cube([длина,ширина,высота])
Пример :
cube([15,5,10]);
СФЕРА
sphere(радиус,$fn=разрешение);
Чем выше разрешение, тем меньше полигональность (гладкость) сфера.
Пример
sphere(10,$fn=500);
ЦИЛИНДР
cylinder(высота,радиус_основания,радиус крышки,$fn=разрешение);
Пример:
cylinder(20,10,10,$fn=300);
МНОГОУГОЛЬНИК
polyhedron(points=[ [x,y,z],[координаты точки], .. ],faces = [ [ n1,n2,n3], [номера точек],..]);
В параметре points в скобках [] указываются координаты точек, а в faces номера (нумеруются с 0) точек для объединения в плоскость.
Пример
polyhedron( points=[ [10,10,0],[10,-10,0], [-10,-10,0],[10,-10,10]],
faces=[ [0,1,2],[0,1,3],[1,2,3],[0,2,3] ]);
ТЕКСТ
text(текст,размер,шрифт);
Список доступных шрифтов, можно посмотреть в Справка -> Список шрифтов.
Пример:
text("текст",6,"Arial:style=Black");
ПЕРЕМЕЩЕНИЕ
translate( [переместить_x, переместить_y, переместить_z]) { код_фигуры }
Пример, поднимем параллелепипед на 3 единицы, сместим по х на 7, по y на 5.
translate( [7,5,3]) {cube([15,5,10]);}
ПОВОРОТ
rotate([градус_вокруг_x, градус_вокруг_y, градус_вокруг_z]) { код_фигуры }
Пример, развернем параллелепипед на 15 градусов вокруг ось x, -20 градусов вокруг ось y, 30 градусов вокруг ось z.
rotate([0, -20, 30]) {cube([15,5,10]);}
МАСШТАБИРОВАНИЕ
scale([длина, ширина, высота]) { фигура )
scale([1, 2, 3]) { sphere(10,$fn=300);}
В скобках указываются параметры масштабирования по длине, ширине и высоте. В данном случае по длине изменений не будет (т.к. 1), глубина измениться в два раза, а высота в три раза.
ОБЪЕДИНЕНИЕ
union() { фигура_1; фигура_2; и т.д.)
union() {
cube([15,5,10],true);
sphere(5, $fn=200);
}
РАЗНОСТЬ ФИГУР
difference() { фигура_1; фигура_2;)
От фигуры_1 отнимается фигура_2, очередность важна
difference() {
cube([15,5,10],true);
sphere(5, $fn=200);
}
ПЕРЕСЕЧЕНИЕ ФИГУР
intersection() { фигура_1; фигура_2;)
Результат — пересечение фигуры_1 и фигуры_2
intersection() {
cube([15,5,10],true);
sphere(5, $fn=150);
}
Раскраска объектов
color("namecolor")
Пример: color("red")
Цвета:
Yellow — жёлтый
Green — зелёный
Blue — голубой, синий
Brown — коричневый
White — белый
Red — красный
Orange — оранжевый
Pink — розовый
Gray — серый
Black — чёрный
ВЫПУКЛАЯ ОБОЛОЧКА
hull() { фигура_1; фигура_2; фигура_3; и т.д.}
Результат — будет создана трехмерная фигура в которую помещаются перечисленные фигуры.
hull() {
translate([15,10,0]) cube([15,5,10],false);
cube([15,5,10],false);
}
В OpenScad можно создавать 3D фигуры методом выдавливания (extrude).
Перед изучением выдавливания, полезно знать команды для построения простейших 2D фигур.
Окружность — circle(радиус);
Прямоугольник — square([длина, глубина]);
Полигон — polygon( [[x,y,z],[координаты точки], .. ],[[номера точек для соединения]]);
ЛИНЕЙНОЕ ВЫДАВЛИВАНИЕ
Суть линейного выдавливания заключается в том, что 2d фигуру вытягивают по оси z.
linear_extrude(высота, twist = угол_поворота, slices = количество_слоев, scale = масштаб) { фигура; }
Параметр twist позволяет закручивать фигуру при вытяжение вокруг оси Z.
Параметр scale увеличивает размер каждого следующего слоя. Коэффициент scale, говорит о том, что первый слой и последний слой будут отличается в scale раз.
За «гладкость» отвечает slices, чем больше слоев, тем более гладкая результирующая фигура.
Если вы используете twist, фигура выполняет разворот вокруг оси z, в координатах x=0 и y=0;
Пример:
linear_extrude(100, twist = 180, slices = 100, scale = 1.0)
{ square(20);}
Как пример воспользуемся масштабом — scale. Пусть край закрученной фигуры будет больше основания в 2 раза.
Пример:3
linear_extrude(100, twist = 180, slices = 100, scale = 2)
{square(20);}
Последний пример, уменьшим количество слоев. Пусть на фигура будет состоять из 3-ех слоев.
Пример:
linear_extrude(100, twist = 180, slices = 3, scale = 2) {
square(20);
}
ВЫДАВЛИВАНИЕ ВРАЩЕНИЕМ
Суть выдавливания вращением заключается в том, что 2d фигуру растягивают вокруг оси z.
rotate_extrude(angle = градусы) { фигура; }
Параметр angle определяет угол вокруг оси z, на сколько фигура должна растянуться, по умолчанию это значение 360.
Как это работает?
Допустим у нас есть фигура — прямоугольник:
При выдавливание вращением, 2d фигура разворачивается перпендикулярно поверхности XY:
Далее 2d фигура растянется вокруг оси z на 360 градусов, т.е. итог будет выглядеть так:
Пример:
rotate_extrude(angle = 360, $fn=200) { translate ([10,0,0]) square(20);}
ИМПОРТИРОВАНИЕ STL ФАЙЛОВ
В OpenScad можно работать с готовыми 3D моделями, например с stl файлами, т.к. они чаще всего используются для 3d печати.
Иногда stl модель не помешается на стол 3d принтера и её необходимо разрезать на части, для последующей склейки.
Например, мне нужно по частям напечатать защитный кожух для велосипеда, который одевался на переднюю звездочку.
Сначала мы импортируем stl модель в OpenScad, далее выделим из неё отдельные части.
Как импортировать stl модель?
import_stl(«имя_файла.stl«, convexity = 5);
import_stl("D:/chainprotector.stl", convexity = 5);
Создадим фигуру — маску, в виде приплюснутого куба, которая будет пересекаться с той частью stl, которую мы хотим напечатать
rotate([0,0,30])
import_stl("D:/chainprotector.stl", convexity = 5);
translate([-100,0,0])
cube([100,100,30]);
Фигуру stl я развернул на 30 градусов, иначе место сечения находится рядом с монтажными отверстиями, что плохо.
Используем операцию пересечения фигур — intersection.
intersection() {
rotate([0,0,30])
import_stl("D:/chainprotector.stl", convexity = 5);
translate([-100,0,0])
cube([100,100,30]);}
Печатаем результат, двигаем маску и получаем другие фрагменты данной stl модели.