Шпаргалка по 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 модели.