PythonScad в задачах и примерах
PythonScad в задачах и примерах

Полная версия

PythonScad в задачах и примерах

Настройки чтения
Размер шрифта
Высота строк
Поля
На страницу:
2 из 6

Массив из трех чисел – задает размеры по осям X, Y и Z (ширина, высота и глубина).

center=true/false – параметр, который определяет, будет ли куб центрирован в начале координат. Если установлено true, то центр куба будет совпадать с началом координат, если false, то одна из сторон куба будет располагаться в начале координат.

Пример: Куб с одной стороной

cube(10); // Куб с длиной каждой стороны 10


Рис. 1. Куб

Пример: Куб с разными размерами

cube([10, 20, 30]); // Прямоугольный параллелепипед размером 10x20x30


Рис. 2. Цилиндр

Пример: Куб с центровкой

cube(10, center=true); // Куб с размером 10, центрированный в начале координат


Рис. 3. Куб центрированый

В этом примере куб будет иметь размер 10×10×10, и его центр будет располагаться в начале координат.

Пример 4: Куб без центровки

cube(10, center=false); // Куб с размером 10, одна из сторон будет в начале координат


Рис. 4. Куб не центрированый

В этом случае куб будет иметь размер 10×10×10, и его одна из сторон будет расположена в начале координат.


Дополнительные параметры

Вы также можете использовать $fn для увеличения точности рендеринга, например, при использовании кубов с округлыми углами.

Пример 5: Куб с округлыми углами

$fn = 100; // Увеличиваем количество граней для округления

cube([10, 20, 30], center=true);

Рис. 5. Куб с округлыми углами

Примитив cube в PythonSCAD(OpenSCAD) позволяет создавать базовые геометрические формы, которые можно использовать в различных конструктивных операциях, таких как объединение, вычитание и пересечение.


2.1. Геометрический примитив "Куб" (cube) в PythonSCAD(Python)

Примитив cube в PythonSCAD(OpenSCAD) используется для создания прямоугольного параллелепипеда (или куба, если все его размеры равны). Он является одним из основных примитивов для построения 3D-объектов и часто используется в CSG-моделировании.

Синтаксис:

cu = cube(size)


size – размеры куба. Это может быть:


Число – если указано одно число, то создается куб с длиной каждой стороны, равной этому числу.

Массив из трех чисел – задает размеры по осям X, Y и Z (ширина, высота и глубина).


Пример: Куб с одной стороной

cu = cube(5)

show(cu) // Куб с длиной каждой стороны 5

Рис. 6. Куб с одной стороной

Пример: Куб с разными размерами

cu = cube([10, 20, 30])

show(cu) // Прямоугольный параллелепипед размером 10x20x30

Рис. 7. Куб с разными размерами


Примитив cube в PythonSCAD(Python) позволяет создавать базовые геометрические формы, которые можно использовать в различных конструктивных операциях, таких как объединение, вычитание и пересечение.

Пример: Куб с центровкой

cu = cube([10, 10, 10], center=True)

show(cu) // Куб с размером 10, центрированный в начале координат

Рис.8. Куб с центровкой

Пример : Куб без центровки

cu = cube([10, 10, 10], center=False)

show(cu) // Куб с размером 10, одна из сторон будет в начале координат


Рис. 9. Куб без центровки

Дополнительные параметры

Вы также можете использовать $fn для увеличения точности рендеринга, например, при использовании кубов с округлыми углами.

Пример: Куб с округлыми углами

c=cube(10);


mask=cube([30,1,30],center=True)


demo = [

c.fillet(2,fn=5)

]

show(demo)


Рис. 10. Куб с округлыми углами

Примитив cube в PythonSCAD(Python) позволяет создавать базовые геометрические формы, которые можно использовать в различных конструктивных операциях, таких как объединение, вычитание и пересечение.


2.2. Геометрический примитив "Сфера" (sphere) в PythonSCAD(OpenSCAD)

Примитив sphere используется для создания 3D-сферы в PythonSCAD(OpenSCAD). Это один из основных примитивов, который может быть полезен при создании объектов с круглыми формами.

Синтаксис:

sphere(r, $fn=100);


r – радиус сферы. Это значение определяет размер сферы.

$fn – параметр, который управляет количеством грани, используемых для аппроксимации сферы. Чем выше значение, тем более гладкой будет сфера. Это опциональный параметр, по умолчанию установлен в 100.


Пример: Сфера с радиусом 10

sphere(10); // Сфера с радиусом 10


Рис. 11. Сфера с радиусом 10

Пример: Сфера с настройкой качества

sphere(10, $fn=50); // Сфера с радиусом 10 и меньшим качеством (50 граней)


Рис. 12. Сфера с настройкой качества

В этом примере сфера будет менее гладкой, так как мы задали количество граней равным 50 вместо стандартных 100.

Пример: Сфера с высоким качеством

sphere(10, $fn=200); // Сфера с радиусом 10 и высоким качеством (200 граней)


Рис. 13. Сфера с высоким качеством

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

Пример: Полусфера

difference() {

sphere(10);

translate([-10, -10, 0]) cube([20, 20, 20]);

}

Рис. 14. Полусфера

Этот пример вычитает куб из сферы, чтобы создать полусферу. Куб перекрывает нижнюю половину сферы, оставляя только верхнюю.

Пример: Сфера с центровкой

sphere(10, center=true); // Сфера с радиусом 10, центрированная в начале координат

Рис. 15. Сфера с центровкой

Если параметр center=true, то сфера будет центрирована в начале координат, а не располагаться так, чтобы её нижняя часть лежала на оси Z=0.

С помощью примитива sphere можно создавать разнообразные круглые объекты, такие как шарики, частицы и элементы дизайна для сложных моделей в PythonSCAD(OpenSCAD).


2.2. Геометрический примитив "Сфера" (sphere) в PythonSCAD(Python)

Синтаксис:

sp = sphere(r)


r – радиус сферы. Это значение определяет размер сферы.

Пример: Сфера с радиусом 10

sp = sphere(10)

show(sp)


Рис. 16. Сфера с радиусом 10

Пример: Сфера с настройкой качества

sp = sphere(10)

fil = sp.fillet(1)

show(fil)

Рис. 17. Сфера с настройкой качества

В этом примере сфера будет менее гладкой, так как мы задали количество граней равным 50 вместо стандартных 100.

Пример: Сфера с высоким качеством

sp = sphere(10)

fil = sp.fillet(100)

show(fil)


Рис. 18. Сфера с высоким качеством

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

Пример: Полусфера

sp = sphere(10)

cu = cube(20)

cu = cu.translate([-10, -10, 0])

diff = sp.difference(cu)

cu = cu.translate([20, 20, 10])

show(diff)


Рис. 19. Полусфера

С помощью примитива sphere можно создавать разнообразные круглые объекты, такие как шарики, частицы и элементы дизайна для сложных моделей в PythonSCAD(Python).


2.3. Геометрический примитив "Цилиндр" (cylinder) в PythonSCAD(OpenSCAD)

Примитив cylinder в PythonSCAD(OpenSCAD) используется для создания цилиндров и конусов. Этот примитив позволяет задавать высоту, радиусы основания и количество сегментов для сглаживания.

Синтаксис

cylinder(h, r, center);

cylinder(h, r1, r2, center);


h – высота цилиндра.

r – радиус цилиндра (если верхний и нижний радиус одинаковы).

r1 – радиус нижнего основания (используется для конусов).

r2 – радиус верхнего основания (используется для конусов).

center=true/false – если true, центрирует цилиндр относительно оси Z (по умолчанию false).

$fn – число граней, увеличивает сглаженность цилиндра.


Пример:Обычный цилиндр

cylinder(h=20, r=10);


Рис. 20. Обычный цилиндр

Создает цилиндр высотой 20 и радиусом 10.

Основание находится в Z=0, верх цилиндра – в Z=20.

Пример:Центрированный цилиндр

cylinder(h=20, r=10, center=true);


Рис. 21. Центрированный цилиндр

Центрирован по оси Z, середина цилиндра располагается в Z=0 (нижняя граница в Z=-10, верхняя в Z=10).

Пример:Конус (Вершина сверху)

cylinder(h=30, r1=5, r2=15);


Рис. 22. Конус (цилиндр с разными радиусами)

Нижний радиус r1=5, верхний радиус r2=15, высота 30.

Получается усеченный конус.

Пример:Конус (вершина внизу)

cylinder(h=30, r1=15, r2=5);


Рис. 23. Конус (вершина внизу)

Нижний радиус 15, верхний 5, получается перевернутый усеченный конус.

Пример:Сглаженный цилиндр ($fn)

cylinder(h=30, r=10, $fn=100);


Рис. 24. Сглаженный цилиндр ($fn)

$fn=100 увеличивает количество граней, делая цилиндр более гладким.

Пример:Многогранный цилиндр (с низким $fn)

cylinder(h=30, r=10, $fn=6);


Рис. 25. Многогранный цилиндр (с низким $fn)

Создает цилиндр с 6-угольным основанием (шестиугольная призма).

Заключение

Примитив cylinder в PythonSCAD(OpenSCAD) используется для создания цилиндров, конусов и многогранных объектов. Он гибок в настройках, что делает его полезным для моделирования деталей в 3D.


2.3. Геометрический примитив "Цилиндр" (cylinder) в PythonSCAD(Python)

Примитив cylinder в PythonSCAD(OpenSCAD) используется для создания цилиндров и конусов. Этот примитив позволяет задавать высоту, радиусы основания и количество сегментов для сглаживания.

Синтаксис

cy = cylinder(h, r1, r2)


h – высота цилиндра.

r – радиус цилиндра (если верхний и нижний радиус одинаковы).

r1 – радиус нижнего основания (используется для конусов).

r2 – радиус верхнего основания (используется для конусов).

Примеры использования

Пример:Обычный цилиндр

cy = cylinder(20, 10)

show(cy)


Рис. 26. цилиндр

Пример:Конус (вершина сверху)

cy = cylinder(h=30, r1=5, r2=15)

show(cy)

Рис. 27. Конус (вершина сверху)

Пример:Конус (вершина внизу)

cy = cylinder(h=30, r1=15, r2=5)

show(cy)

Рис. 28. Конус (вершина внизу)

Заключение

Примитив cylinder в

PythonSCAD(Python)

используется для создания цилиндров, конусов и многогранных объектов. Он гибок в настройках, что делает его полезным для моделирования деталей в 3D.


2.4. Полигональные фигуры в OpenSCAD:

polygon

и

polyhedron

В OpenSCAD есть два ключевых примитива для работы с многоугольниками и объемными полигонами:

polygon – для создания 2D-многоугольников.

polyhedron – для построения 3D-полигональных объектов.

polygon – 2D-многоугольники

Этот примитив позволяет создавать фигуры, задавая вершины и соединяя их по определенному порядку.

Синтаксис:

polygon(points, paths);

points – массив точек [x, y], которые определяют вершины.

paths (опционально) – порядок соединения точек (по умолчанию соединяются все по порядку).

Примеры использования

Пример: Треугольник

polygon(points=[[0,0], [10,0], [5,10]]);

Рис. 29. Треугольник

Определяет треугольник с вершинами (0,0), (10,0), (5,10).

Пример: Пятиугольник с заданными гранями

polygon(points=[[0,0], [10,0], [12,5], [5,10], [-2,5]], paths=[[0,1,2,3,4]]);

Рис. 30. Пятиугольник с заданными гранями

Явно задает соединение точек для построения пятиугольника.

Пример: Вырез в фигуре (вложенные пути)

polygon(

points=[[0,0], [10,0], [10,10], [0,10], [3,3], [7,3], [7,7], [3,7]],

paths=[[0,1,2,3,0], [4,5,6,7,4]]

);

Рис. 31. Вырез в фигуре (вложенные пути)

Создает квадрат с вырезанным внутренним квадратом.

Экструзия 2D-фигур в 3D

Любую 2D-фигуру можно превратить в 3D с помощью linear_extrude:

linear_extrude(height=5) polygon(points=[[0,0], [10,0], [5,10]]);

Превращает треугольник в призму высотой 5.

2.

polyhedron

– 3D-полигональные объекты

Этот примитив позволяет создавать сложные объемные фигуры, соединяя грани на основе набора точек.

Синтаксис

:

polyhedron(points, faces, convexity);

points – массив координат вершин [x, y, z].

faces – массив граней, каждая грань указывается списком индексов точек.

convexity (опционально, по умолчанию 10) – используется для отображения сложных фигур (необязательный параметр).

Примеры использования

Пример: Тетраэдр (пирамида)

polyhedron(

points=[[0,0,0], [10,0,0], [5,10,0], [5,5,10]],

faces=[[0,1,2], [0,1,3], [1,2,3], [2,0,3]]

);

Рис. 32. Тетраэдр (пирамида)

Определяет пирамиду с четырьмя треугольными гранями.

Пример: Куб с polyhedron (альтернатива cube)

polyhedron(

points=[[0,0,0], [10,0,0], [10,10,0], [0,10,0], [0,0,10], [10,0,10], [10,10,10], [0,10,10]],

faces=[[0,1,2,3], [4,5,6,7], [0,1,5,4], [1,2,6,5], [2,3,7,6], [3,0,4,7]]

);


Рис. 33. Куб с polyhedron (альтернатива cube)

Определяет куб (как cube(10), но с явным определением граней).

Пример: Открытая пирамида

polyhedron(

points=[[0,0,0], [10,0,0], [10,10,0], [0,10,0], [5,5,10]],

faces=[[0,1,2,3], [0,1,4], [1,2,4], [2,3,4], [3,0,4]]);

Рис. 34. Открытая пирамида

Создает пирамиду с квадратным основанием.

Заключение

Примитивы polygon и polyhedron позволяют создавать любые сложные 2D и 3D фигуры. Они полезны, когда стандартные примитивы (cube, sphere, cylinder) недостаточны для моделирования нужных форм.


Полигональные фигуры в OpenSCAD:

polygon

и

polyhedron

В OpenSCAD есть два ключевых примитива для работы с многоугольниками и объемными полигонами:

polygon – для создания 2D-многоугольников.

polyhedron – для построения 3D-полигональных объектов.

1.

polygon

– 2D-многоугольники

Этот примитив позволяет создавать фигуры, задавая вершины и соединяя их по определенному порядку.

Синтаксис

:

po = polygon(points, paths);

points – массив точек [x, y], которые определяют вершины.

paths (опционально) – порядок соединения точек (по умолчанию соединяются все по порядку).

Примеры использования

Пример: Треугольник

po = polygon(points=[[0,0], [10,0], [5,10]])

show(po)

Рис. 35. Треугольник

Определяет треугольник с вершинами (0,0), (10,0), (5,10).

Пример: Пятиугольник с заданными гранями

po = polygon([[0,0], [10,0], [12,5], [5,10], [-2,5]],[[0,1,2,3,4]])

show(po)

Рис. 36. Пятиугольник с заданными гранями

Явно задает соединение точек для построения пятиугольника.

Пример: Вырез в фигуре (вложенные пути)

po = polygon([[0,0], [10,0], [10,10], [0,10], [3,3], [7,3], [7,7], [3,7]],[[0,1,2,3,0], [4,5,6,7,4]]

)

show(po)

Рис. 37. Вырез в фигуре (вложенные пути)

Создает квадрат с вырезанным внутренним квадратом.

Экструзия 2D-фигур в 3D

Любую 2D-фигуру можно превратить в 3D с помощью linear_extrude:

po = polygon(points=[[0,0], [10,0], [5,10]])

l = po.linear_extrude(5)

show(l)


Рис. 38. Пример

Превращает треугольник в призму высотой 5.

2. polyhedron – 3D-полигональные объекты

Этот примитив позволяет создавать сложные объемные фигуры, соединяя грани на основе набора точек.

Синтаксис

:

polyhedron(points, faces, convexity);

points – массив координат вершин [x, y, z].

faces – массив граней, каждая грань указывается списком индексов точек.

convexity (опционально, по умолчанию 10) – используется для отображения сложных фигур (необязательный параметр).

Примеры использования

Пример: Тетраэдр (пирамида)

po = polyhedron([[0,0,0], [10,0,0], [5,10,0], [5,5,10]],[[0,1,2], [0,1,3], [1,2,3], [2,0,3]]

)

show(po)

Рис. 39. Тетраэдр (пирамида)

Определяет пирамиду с четырьмя треугольными гранями.

Пример: Куб с polyhedron (альтернатива cube)

po = polyhedron([[0,0,0], [10,0,0], [10,10,0], [0,10,0], [0,0,10], [10,0,10], [10,10,10],[0,10,10]],

[[0,1,2,3], [4,5,6,7], [0,1,5,4], [1,2,6,5],[2,3,7,6], [3,0,4,7]])

show(po)

Рис. 40. Куб с polyhedron (альтернатива cube)

Определяет куб (как cube(10), но с явным определением граней).

Пример: Открытая пирамида

po = polyhedron([[0,0,0], [10,0,0], [10,10,0], [0,10,0], [5,5,10]],[[0,1,2,3], [0,1,4], [1,2,4], [2,3,4], [3,0,4]])

show(po)


Рис. 41. Открытая пирамида

Создает пирамиду с квадратным основанием.

Заключение

Примитивы polygon и polyhedron позволяют создавать любые сложные 2D и 3D фигуры. Они полезны, когда стандартные примитивы (cube, sphere, cylinder) недостаточны для моделирования нужных форм.


Задача 1: Создание Сферы

Какой оператор используется для создания сферы в PythonSCAD(OpenSCAD)?

1) sphere()

2) circle()

3) ellipse()

4) ball()

5) round()

Задача 2:Радиус Сферы

Какой параметр отвечает за радиус сферы?

1) r

2) d

3) size

4) radius

5) length

Задача 3: Создание куба

Какая команда создаёт куб в PythonSCAD(OpenSCAD)?

1) cube()

2) rectangle()

3) square()

4) block()

5) box()

Задача 4: Размеры Куба

Как задать размеры куба 10 x 20 x 30?

1) cube([10,20,30])

2) cube(10,20,30)

3) cube(size=[10,20,30])

4) cube({10,20,30})

5) cube<10,20,30>

Задача 5: Создание Цилиндра

Как создать цилиндр высотой 50 и радиусом 10?

1) cylinder(h=50, r=10)

2) cylinder(10,50)

3) cylinder(radius=10, height=50)

4) cylinder(h=10, r=50)

5) cylinder(d=10, h=50)

Задача 6: Создание Цилиндра

Какой параметр позволяет сделать цилиндр усечённым (разные радиусы сверху и снизу)?

1) r1, r2

2) d1, d2

3) scale

4) radius_top, radius_bottom

5) trunc

Задача 7: Создание Конуса

Какая команда создаёт конус?

1) cylinder(r1=10, r2=0, h=20)

2) pyramid()

3) cylinder(10,0,20)

4) trapezoid()

5) cone()

Задача 8: Создание 2D-прямогульника

Какой примитив создаёт 2D-прямоугольник?

1) square()

2) rectangle()

3) box2D()

4) shape()

5) plane()

Задача 9: Создание 2D-прямогульника

Как создать прямоугольник 15x25?

1) square([15,25])

2) square(15,25)

3) rect([15,25])

4) square({15,25})

5) square<15,25>

Задача 10: Создание многогранника

Как создать трёхмерный многогранник?

1) polyhedron(points, faces)

2) polyhedron()

3) polygon()

4) mesh()

5) shape3D()

На страницу:
2 из 6