
Полная версия
PythonScad в задачах и примерах
Массив из трех чисел – задает размеры по осям 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()

