
Полная версия
PythonScad в задачах и примерах
Задача 11: Создание 2D-круга
Какой оператор создаёт 2D-круг?
1) circle()
2) sphere()
3) round()
4) ellipse()
5) disc()
Задача 12: Создание 2D-круга
Как задать диаметр у 2D-круга?
1) circle(d=20)
2) circle(radius=20)
3) circle(r=20)
4) circle(diameter=20)
5) circle(20)
Задача 13: Создание 2D-элипса
Какая команда создаёт 2D-эллипс?
1) scale([1,2]) circle(10)
2) ellipse_shape()
3) oval()
4) ellipse(10,20)
5) circle([10,20])
Задача 14: Вычитание фигур
Какой оператор позволяет вычитать одну фигуру из другой?
1) difference()
2) subtract()
3) union()
4) intersect()
5) add()
Задача 15: Пересечение фигур
Какой оператор создаёт пересечение двух фигур?
1) intersection()
2) merge()
3) blend()
4) unite()
5) overlap()
Задача 16: объединение фигур
Какой оператор объединяет несколько объектов?
1) union()
2) merge()
3) sum()
4) group()
5) combine()
Задача 1:Создание куба
Какая команда создаёт куб в PythonSCAD(OpenSCAD)?
1) cu = cube(size)
2) c = cube(x, y, z)
3) c = coil(size)
4) sp = sphere(radius)
Задача 2:Радиус Сферы
Какой параметр отвечает за радиус сферы?
1) (r)
2) (radius)
3) (size)
4) (tall)
Задача 3:Создание Сферы
Какой оператор используется для создания сферы в PythonSCAD(OpenSCAD)?
1) cu = cube(Size)
2) cu = sphere(r)
3) c = cylinder(h, r)
4) sp = sphere(r)
Задача 4: Размеры Куба
Как задать размеры куба 10 x 20 x 30?
1) cu = cube(10, 20, 30)
2) cube(10, 20, 30)
3) cu.cube(10, 20, 30)
4) cube = cu(10, 20, 30)
Задача 5: Создание Цилиндра
Как создать цилиндр высотой 50 и радиусом 10?
1) cy = cylinder(50, 10, 10)
2) cy = cylinder(50, 10)
3) cylinder(10, 50)
4) cy = cylinder(10, 50)
Задача 6: Создание Цилиндра
Какой параметр позволяет сделать цилиндр усечённым (разные радиусы сверху и снизу)?
1) r1 r2
2) h
3) L1 L2
4) W
Задача 7: Создание Конуса
Какая команда создаёт конус?
1) cy = cylinder(r1=10, r2=0, h=20)
2) sp = sphere(r1=10, r2=0, h=20)
3) c = conus(r1=10, r2=0, h=20)
4) tr = trapezoid(r1=10, r2=0, h=20)
Задача 8: Создание 2D-прямогульника
Какой примитив создаёт 2D-прямоугольник?
1) sq = square()
2) b = box2D()
3) p = plane()
4) c = coil()
Задача 9: Создание 2D-прямогульника
Как создать прямоугольник 15x25?
1) sq = square([15,25])
2) square([15,25])
3) sq = ([15,25])
4) sq = square[15,25]
Задача 10: Создание многогранника
Как создать трёхмерный многогранник?
1) poly = polyhedron(point, path)
2) poly = polyhedron
3) poly = (point, path)
4) polyhedron(point, path)
Задача 11: Создание 2D-круга
Какой оператор создаёт 2D-круг?
1) c = circle()
2) c = circle
3) circle()
4) c = ()
Задача 12: Создание 2D-круга
Как задать диаметр у 2D-круга?
1) c = circle(20)
2) circle(20)
3) c = (20)
4) c = circle
Задача 13: Создание 2D-элипса
Какая команда создаёт 2D-эллипс?
1) c = circle(10) cc = c.scale([1,2])
2) 0 = oval()
3) cc = c.scale([1,2])
4) c = circle(10)
Задача 14: Вычитание фигур
Какой оператор позволяет вычитать одну фигуру из другой?
1) diff = difference()
2) fusion = union()
3) union()
4) difference()
Задача 15: Пересечение фигур
Какой оператор создаёт пересечение двух фигур?
1) inter = .intersection()
2) m = merge()
3) b = blend()
4) u = union()
Задача 16: объединение фигур
Какой оператор объединяет несколько объектов?
1) fusion = union()
2) diff = .difference()
3) inter = .intersection()
4) b = blend()
Модуль 3: Операции над объектами
Объединение (
union
) в
PythonSCAD
(
OpenSCAD
)
В PythonSCAD(OpenSCAD) оператор union() используется для объединения двух или более геометрических объектов в один. Это часть булевых операций, которые позволяют комбинировать, вычитать и пересекать 3D-объекты.
Синтаксис
union() {
объект1;
объект2;
…
}
Все объекты внутри union() объединяются в единое целое.
Оператор union() можно не писать явно, так как OpenSCAD по умолчанию соединяет объекты, если они расположены внутри одного блока {}.
Примеры использования
Листинг 1:Простое объединение куба и цилиндра
union() {
cube([10, 10, 10]);
translate([5,5,10])
cylinder(10, 5);
}

Рис.1. Простое объединение куба и цилиндра
Куб 10×10×10 и цилиндр высотой 10 и радиусом 5 объединяются в единое целое.
Цилиндр сдвинут в точку [5,5,0], чтобы частично пересекаться с кубом.
Листинг 2:Объединение без union() (неявное объединение)
cube([10,10,10]);
translate([5,5,10])
cylinder(10, 5);

Рис.2. Объединение без union() (неявное объединение)
OpenSCAD по умолчанию объединяет пересекающиеся объекты, даже без union().
Листинг 3:Объединение нескольких объектов
union() {
cube([10, 10, 10]);
translate([5,5,20])
cylinder(10, 5);
translate([5,5,15])
sphere(5);
}

Рис.3. Объединение нескольких объектов
Две сферы и куб объединяются в один сложный объект.
Листинг 4:Объединение с difference()
Можно комбинировать union() с difference() для создания сложных форм:
difference() {
union() {
cube([20,20,10]);
translate([5,5,0]) cylinder(h=10, r=10);
}
translate([10,10,-1]) cylinder(h=12, r=5);
}

Рис.4. Объединение с difference()
Объединяем куб и цилиндр.
Вычитаем из них второй цилиндр.
Заключение
union() помогает создавать сложные объекты путем объединения простых примитивов. Его можно не писать, если просто размещать объекты внутри {}. Работает в комбинации с difference() и intersection().
Объединение (union) в PythonSCAD(Python)
В PythonSCAD(Python) оператор union() используется для объединения двух или более геометрических объектов в один. Это часть булевых операций, которые позволяют комбинировать, вычитать и пересекать 3D-объекты.
Синтаксис
from openscad import *
x = обьект1
y = обьект2
fusion = union([x,y])
show(fusion)
Все объекты внутри union() объединяются в единое целое.
Оператор union() можно не писать явно, так как OpenSCAD по умолчанию соединяет объекты, если они расположены внутри одного блока {}.
Примеры использования
Листинг 1:Простое объединение куба и цилиндра
from openscad import *
cu = cube(10)
cy = cylinder(10, 5)
fusion = union([cu,cy])
show(fusion)

Рис. 5. Простое объединение куба и цилиндра
Куб 10×10×10 и цилиндр высотой 10 и радиусом 5 объединяются в единое целое.
Листинг 2:Объединение без union() (неявное объединение)
from openscad import *
cu = cube(10)
cy = cylinder(12, 5)
cy = cy.translate([5, 5, 0])
show([cu, cy])

Рис. 6. Объединение без union() (неявное объединение)
OpenSCAD по умолчанию объединяет пересекающиеся объекты, даже без union().
Листинг 3:Объединение нескольких объектов
from openscad import *
sp = sphere(5)
cu = cube(10)
cy = cylinder(20)
fusion = union([cu,cy,sp])
show(fusion)

Рис. 7. Объединение нескольких объектов
Цилиндр, сфера и куб объединяются в один сложный объект.
Листинг
4:
Объединение
с
difference()
from openscad import *
cu = cube([20, 20, 10])
cy = cylinder(10, 10)
cy2 = cylinder(12, 5)
cu = cu.translate([5,5,0])
cy = cy.translate([10,10,0])
cy2 = cy2.translate([10,10,-1])
fusion = union([cu, cy])
diff = fusion.difference(cy2)
show(diff)

Рис. 8. Объединение с difference()
Заключение
union() помогает создавать сложные объекты путем объединения простых примитивов. Его можно не писать, если просто размещать объекты внутри {}. Работает в комбинации с difference() и intersection().
Вычитание
(difference)
в
PythonSCAD(OpenSCAD)
Оператор difference() в OpenSCAD используется для вычитания одного или нескольких объектов из базовой формы. Это одна из булевых операций (Boolean operations), которая позволяет создавать сложные 3D-модели путем удаления частей из объемных фигур.
Синтаксис
difference() {
объект_основание;
объект_для_вычитания1;
объект_для_вычитания2;
…
}
Первый объект в блоке difference() является основным.
Все последующие объекты вычитаются из него.
Примеры использования
Листинг 1:Отверстие в кубе
difference() {
cube([20, 20, 10]); // Основа: куб 20×20×10
translate([10,10,-1]) // Сдвигаем цилиндр вниз, чтобы было сквозное отверстие
cylinder(h=12, r=5); // Вычитаем цилиндр высотой 12 и радиусом 5
}

Рис. 9. Отверстие в кубе
Из куба вырезается цилиндр, создавая сквозное отверстие.
Листинг 2:Вычитание нескольких объектов
difference() {
cube([30, 30, 10]); // Основной куб
translate([10,10,-1]) cylinder(h=12, r=5); // Первое отверстие
translate([20,20,-1]) cylinder(h=12, r=5); // Второе отверстие
}

Рис. 10. Вычитание нескольких объектов
Куб 30×30×10 с двумя вырезанными отверстиями.
Листинг 3:Создание рамки путем вычитания внутреннего куба
difference() {
cube([30, 30, 10], center=true); // Внешний куб (большой)
cube([20, 20, 12], center=true); // Внутренний куб (меньший) вырезается
}

Рис. 11. Создание рамки путем вычитания внутреннего куба
Создает рамку из куба, вычитая из него меньший куб.
Заключение
difference() позволяет вычитать объекты, создавая сложные формы. Важно помнить, что первый объект остается, а остальные удаляются. Работает отлично в сочетании с union() и intersection().
Вычитание
(difference)
в
PythonSCAD(Python)
Оператор difference() в OpenSCAD используется для вычитания одного или нескольких объектов из базовой формы. Это одна из булевых операций (Boolean operations), которая позволяет создавать сложные 3D-модели путем удаления частей из объемных фигур.
Синтаксис
from openscad import *
x = обьект1
y = обьект2
diff = x.difference(y)
show(diff)
Первый объект в блоке difference() является основным.
Все последующие объекты вычитаются из него.
Примеры использования
Листинг 1:Отверстие в кубе
from openscad import *
cu = cube([3, 3, 2]) // создаём куб размерами 3x3x2
cy = cylinder(4, 1) // создаём цилиндр для создания отверстия
cy = cy.translate([1.5 , 1.5 , -1]) // перемещаем цилиндр для создания отверстия
diff = cu.difference(cy) // создаем отверстия путем вырезание ранее сделанного цилиндра
show(diff)

Рис. 12. Отверстие в кубе
Из куба вырезается цилиндр, создавая сквозное отверстие.
Листинг 2:Вычитание нескольких объектов
from openscad import *
cu = cube([3, 7, 2]) // создаём куб
cy = cylinder(4, 1) // создаём цилиндр
cy = cy.translate([1.5 , 1.5 , -1]) // перемещаем первый цилиндр
cy2 = cylinder(4, 1) // создаём второй цилиндр
cy2 = cy2.translate([1.5 , 5 , -1]) // перемещаем второй цилиндр
diff = cu.difference([cy, cy2]) // вырезаем два цилиндра в кубе для создания фигуры
show(diff)

Рис. 13. Вычитание нескольких объектов
Листинг 3:Создание рамки путем вычитания внутреннего куба
from openscad import *
x = cube([3, 3, 1]) // Внешний куб (большой)
y = cube([2, 2, 1.2]) // Внутренний куб (меньший) вырезается
y = y.translate([0.5 , 0.5 , 0.1]) // перемещение второго куба
diff = x.difference(y) // булевая операция
show(diff)

Рис. 14. Создание рамки путем вычитания внутреннего куба
Создает рамку из куба, вычитая из него меньший куб.
Заключение
difference() позволяет вычитать объекты, создавая сложные формы. Важно помнить, что первый объект остается, а остальные удаляются.
Пересечение
(intersection)
в
PyhtonSCAD(OpenSCAD)
Оператор intersection() используется для нахождения общей (пересекающейся) части между двумя или более объектами. Это одна из булевых операций (Boolean operations), которая позволяет выделять общую область у нескольких фигур.
Синтаксис
intersection() {
объект1;
объект2;
…
}
Пересекающиеся части объектов остаются.
Все области, которые не пересекаются, удаляются.
Примеры использования
Листинг 1:Пересечение куба и сферы
intersection() {
cube([20, 20, 20], center=true); // Куб 20x20x20
sphere(r=15); // Сфера радиусом 15
}

Рис. 15. Пересечение куба и сферы
Остается только область, где пересекаются куб и сфера.
Листинг 2:Пересечение цилиндра и куба
intersection() {
cylinder(h=30, r=10); // Вертикальный цилиндр
cube([20, 20, 15], center=true); // Куб (центрированный)
}

Рис. 16. Пересечение цилиндра и куба
Остается часть цилиндра, которая внутри куба.
Листинг 3:Пересечение нескольких объектов
intersection() {
cube([30,30,10]); // Основание – куб
translate([10,10,0]) sphere(15); // Пересекающаяся сфера
translate([15,0,0]) cylinder(h=10, r=10); // Пересекающийся цилиндр
}

Рис. 17. Пересечение нескольких объектов
Только общая часть всех трех объектов останется.
Листинг 4:Пересечение с difference()
Можно использовать intersection() совместно с difference(), чтобы вырезать общую часть из другой фигуры:
intersection() {
difference() {
cube([30,30,10]);
translate([5,5,-1]) cylinder(h=12, r=10);
}
translate([10,10,0]) sphere(15);
}

Рис. 18. Пересечение с difference()
Сначала из куба вырезается цилиндр.
Потом остается только пересечение с сферой.
Заключение
intersection() оставляет только общие области всех входящих объектов. Можно использовать для создания сложных деталей. Работает в комбинации с union() и difference().
Пересечение
(intersection)
в
PyhtonSCAD(Python)
Оператор intersection() используется для нахождения общей (пересекающейся) части между двумя или более объектами. Это одна из булевых операций (Boolean operations), которая позволяет выделять общую область у нескольких фигур.
Синтаксис
from openscad import *
x = обьект1
y = обьект2
inter = x.intersection(y)
show(inter)
Пересекающиеся части объектов остаются.
Все области, которые не пересекаются, удаляются.
Примеры использования
Листинг 1:Пересечение куба и сферы
from openscad import *
cu = cube(20)
sp = sphere(15)
inter = cu.intersection(sp)
show(inter)

Рис. 19. Пересечение куба и сферы
Остается только область, где пересекаются куб и сфера.
Листинг 2:Пересечение цилиндра и куба
from openscad import *
cu = cube([20, 20, 15])
cy = cylinder(30, 10)
inter = cu.intersection(cy)
show(inter)

Рис. 20. Пересечение цилиндра и куба
Остается часть цилиндра, которая внутри куба.
Листинг 3:Пересечение нескольких объектов
from openscad import *
cu = cube([30,30,10])
sp = sphere(15)
cu = cu.translate([10,10,0])
cy = cylinder(10, 10)
cy = cy.translate([15,0,0])
inter = sp.intersection([cy, cu])
show(inter)

Рис. 21. Пересечение нескольких объектов
Только общая часть всех трех объектов останется.
Листинг 4:Пересечение с difference()
Можно использовать intersection() совместно с difference(), чтобы вырезать общую часть из другой фигуры:
from openscad import *
cu = cube([30,30,10])
sp = sphere(15)
cy = cylinder(12, 10)
cy = cy.translate([15,0,-1])
sp = sp.translate([10,10,0])
diff = cu.difference(cy)
inter = diff.intersection(sp)
show(inter)

Рис. 22. Пересечение с difference()
Сначала из куба вырезается цилиндр.
Потом остается только пересечение с сферой.
Заключение
intersection() оставляет только общие области всех входящих объектов. Можно использовать для создания сложных деталей. Работает в комбинации с union() и difference().
Задача 1:Создание примитивов
Какой оператор используется для создания сферы?
1) sphere()
2) circle()
3) ball()
4) round()
Задача 2:Сфера
Какой параметр отвечает за радиус сферы?
1) r
2) d
3) radius
4) length
Задача 3:Создание примитивов
Какая команда создаёт куб?
1) cube()
2) rectangle()
3) block()
4) square()
5) box()
Задача 4:Куб
Как задать размеры куба 10x20x30?
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) scale
3) d1, d2
4) radius_top, radius_bottom
5) trunc
Задача 7:Цилиндр
Какая команда создаёт конус?
1) cylinder(r1=10, r2=0, h=20)f
2) trapezoid()
3) cone()
4) pyramid()
5) cylinder(10,0,20)
Задача 8:Создание примитивов
Какой примитив создаёт 2D-прямоугольник?
1) square()
2) rectangle()
3) box2D()
4) shape()
5) plane()
Задача 9:Прямоугольник
Как создать прямоугольник 15x25?
1) square([15,25])
2) square(15,25)
3) rect([15,25])
4) square({15,25})
5) square<15,25>
Задача 10:Создание примитивов
Как создать трёхмерный многогранник?
1) polyhedron()
2) polygon()
3) polyhedron(points, faces)
4) mesh()
5) shape3D()
Задача 11:Создание примитивов
Какой оператор создаёт 2D-круг?
1) circle()
2) sphere()
3) round()
4) ellipse()
5) disc()
Задача 12: 2D-круг

