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

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

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

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

Как задать диаметр у 2D-круга?

1) circle(d=20)

2) circle(radius=20)

3) circle(r=20)

4) circle(diameter=20)

5) circle(20)

Задача 14:Вычитание

Какой оператор позволяет вычитать одну фигуру из другой?

1) difference()

2) union()

3) intersect()

4) add()

5) subtract()

Задача 15:Пересечение

Какой оператор создаёт пересечение двух фигур?

1) intersection()

2) merge()

3) blend()

4) unite()

5) overlap()

Задача 16:Объединение

Какой оператор объединяет несколько объектов?

1) union()

2) merge()

3) sum()

4) group()

5) combine()

Задача 1:Создание примитивов

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

1) sp = sphere(r)

2) r = round()

3) x = cube()

4) l = coil()

Задача 2:Сфера

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

1) r

2) x

3) v

4) w

Задача 3:Создание примитивов

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

1) cu = cube()

2) sp = sphere()

3) cy = cylinder()

4) tr = trasnparent()

Задача 4:Куб

Как задать размеры куба 10x20x30?

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

2) cu = cube(10, 20, 30)

3) sp = sphere([10, 20, 30])

4) cy = cylinder(10, 20, 30)

Задача 5:Создание примитивов

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

1) cy = cylinder(50, 10)

2) cy = cube(50, 10)

3) cy = sphere(50, 10)

4) r = round(5)

Задача 6:Цилиндр

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

1) r1, r2

2) v1, v2

3) h

4) g

Задача 7:Цилиндр

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

1) cy =cylinder(10, 5 ,0)

2) cy =cylinder(10, 0 ,5)

3) cy =cylinder(10, 5)

4) cy =cylinder(10, 5 ,5)

Задача 8:Операторы

Можно ли использовать несколько операторов в одном коде?

1) Да

2) Нет

Задача 9:Операторы

Какой код совмещает два оператора?

1) diff = fusion.difference(.....)

2) fusion = union([diff, x])

3) diff = x.difference(.....)

4) c = coil()

Задача 10:Операторы

Какой код соединяет куб и сферу?

1) fusion = union([cu, sp])

2) diff = sp.difference()cu

3) inter = sp.intersection(cu)

4) c = cu.coil(sp)

Задача 11:Операторы

Какой код соединяет цилиндр и сферу?

1) fusion = union([cy, sp])

2) inter = cy.intersection(cu, sp)

3) diff = cy.difference(cu)

4) c = cu.coil(sp)

Задача 12:Операторы

Какой код вырезает цилиндр и куб?

1) diff = cy.difference(cu)

2) c = coil()

3) fusion = union([cy, sp])

4) inter = cy.intersection(cu, sp)

Задача 13:Операторы

Какой код пересекает цилиндр, куб и сферу?

1) inter = cy.intersection(cu, sp)

2) fusion = union([cy, sp])

3) c = coil()

4) diff = cy.difference(cu)

Задача 14:Вычитание

Какой оператор позволяет вычитать одну фигуру из другой?

1) diff = .difference()

2) fusion = union([])

3) inter = .intersection()

4) c = coil()

Задача 15:Пересечение

Какой оператор создаёт пересечение двух фигур?

1) inter = intersection()

2) c = coil()

3) diff = difference()

4) fusion = union()

Задача 16:Объединение

Какой оператор объединяет несколько объектов?

1) fusion = union()

2) c = coil()

3) diff = difference()

4) inter = intersection()

Модуль 4: Трансформации объектов

Повороты

(rotate)

в

PythonSCAD(OpenSCAD)

Оператор rotate() используется для поворота объектов вокруг одной или нескольких осей (X, Y, Z). Он позволяет изменять ориентацию объектов в 3D-пространстве.

Синтаксис

rotate([угол_X, угол_Y, угол_Z]) объект;

угол_X – поворот вокруг оси X (горизонтальная ось).

угол_Y – поворот вокруг оси Y (вертикальная ось, направлена вглубь экрана).

угол_Z – поворот вокруг оси Z (перпендикулярна экрану).

Угол задается в градусах (°) и может быть положительным (по часовой стрелке) или отрицательным (против часовой стрелки).

Также можно использовать альтернативный синтаксис с одной осью:

rotate(угол, [x, y, z]) объект;

Здесь [x, y, z] – вектор направления оси вращения (1 – ось активна, 0 – нет).

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

Листинг 1:Поворот вокруг оси Z

rotate([0, 0, 45]) cube([10, 20, 5]);


Рис. 1. Поворот вокруг оси Z

Куб повернется на 45° вокруг оси Z.

Листинг 2:Поворот вокруг нескольких осей

rotate([30, 45, 0]) cylinder(h=20, r=5);

Рис. 2. Поворот вокруг нескольких осей

Цилиндр наклонится на 30° по X и на 45° по Y.

Листинг 3:Поворот вокруг произвольной оси

rotate(60, [1, 1, 0]) cube([10, 10, 10]);


Рис. 3. Поворот вокруг произвольной оси

Куб повернется на 60° вокруг диагонали XY.

Листинг 4:Комбинация с translate()

Поворот выполняется относительно начала координат, поэтому перед вращением можно переместить объект:

translate([10, 0, 0])

rotate([0, 0, 45]) cube([10, 10, 10]);

Рис. 4. Комбинация с translate()

Куб сначала сдвинется, а потом повернется.

Если порядок команд поменять (rotate() → translate()), то объект сначала повернется в исходной точке, а потом сместится.

Листинг 5: Вращение в цикле (for)

for (i = [0:30:360]) {

rotate([0, 0, i]) translate([20, 0, 0]) sphere(2);

}

Рис. 5. Вращение в цикле (for)

Создает кольцо сфер, расположенных каждые 30° вокруг центра.

Заключение

rotate([x, y, z]) поворачивает объект вокруг одной или нескольких осей. Важно учитывать порядок операций, особенно при использовании translate(). Можно использовать for, чтобы создавать повторяющиеся структуры.

Повороты

(rotate)

в

PythonSCAD(Python)

Оператор rotate() используется для поворота объектов вокруг одной или нескольких осей (X, Y, Z). Он позволяет изменять ориентацию объектов в 3D-пространстве.

Синтаксис

rotated=объект.rotate([угол_X, угол_Y, угол_Z])

угол_X – поворот вокруг оси X (горизонтальная ось).

угол_Y – поворот вокруг оси Y (вертикальная ось, направлена вглубь экрана).

угол_Z – поворот вокруг оси Z (перпендикулярна экрану).

Угол задается в градусах (°) и может быть положительным (по часовой стрелке) или отрицательным (против часовой стрелки).

Здесь [x, y, z] – вектор направления оси вращения (1 – ось активна, 0 – нет).

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

Листинг 1:Поворот вокруг оси Z

from openscad import *

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

rotated = cu.rotate([0, 0, 45])

show(rotated)

Рис. 6. Поворот вокруг оси Z

Куб повернется на 45° вокруг оси Z.

Листинг 2:Поворот вокруг нескольких осей

cy = cylinder(20, 5)

rotated = cy.rotate([30, 45, 0])

show(rotated)

Рис. 7. Поворот вокруг нескольких осей

Цилиндр наклонится на 30° по X и на 45° по Y.

Листинг 3:Поворот вокруг произвольной оси

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

rotated = cu.rotate(60, [1, 1, 0])

show(rotated)


Рис.8. Поворот вокруг произвольной оси

Куб повернется на 60° вокруг диагонали XY.

Листинг 5:Комбинация с

translate

()

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

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

rotated = cu.rotate([0, 0, 45])

show(rotated)

Рис. 9. Комбинация с translate()

Куб сначала сдвинется, а потом повернется.

Если порядок команд поменять (rotate() → translate()), то объект сначала повернется в исходной точке, а потом сместится.

Заключение

rotate([x, y, z]) поворачивает объект вокруг одной или нескольких осей. Важно учитывать порядок операций, особенно при использовании translate(). Можно использовать for, чтобы создавать повторяющиеся структуры.


Смещения

(translate)

в

PythonSCAD(OpenSCAD)

Оператор translate() используется для перемещения объектов в 3D-пространстве вдоль осей X, Y и Z.

Синтаксис

translate([X, Y, Z]) объект;


X – сдвиг вдоль оси X (вправо – положительные значения, влево – отрицательные).

Y – сдвиг вдоль оси Y (вперед – положительные значения, назад – отрицательные).

Z – сдвиг вдоль оси Z (вверх – положительные значения, вниз – отрицательные).

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

Листинг 1:Простое смещение куба

translate([10, 20, 5]) cube([10, 10, 10]);


Рис. 10. Простое смещение куба

Куб размером 10×10×10 сдвигается на 10 единиц вправо, 20 вперед и 5 вверх.

Листинг 2:Смещение сферы вверх

translate([0, 0, 15]) sphere(10);

Рис. 11. Смещение сферы вверх

Сфера радиусом 10 поднимается на 15 единиц вверх.

Листинг

3:

Комбинация

translate()

и

rotate()

translate([20, 0, 0])

rotate([0, 0, 45]) cube([10, 10, 10]);

Рис. 12. Комбинация translate() и rotate()

Куб сначала сдвигается, затем поворачивается.

Если поменять порядок команд (rotate() → translate()), результат будет другим!

Листинг 4:Размещение нескольких объектов в

for

-цикле

for (i = [0:20:60]) {

translate([i, 0, 0]) sphere(5);

}

Рис. 13. Размещение нескольких объектов в for-цикле

Создает ряд сфер, сдвинутых вдоль оси X на 0, 20 и 40 единиц.

Листинг

5:

Вложенные

Translate()

translate([10, 0, 0]) {

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

}

Рис. 14. Вложенные Translate()

Сначала объект смещается на 10 единиц по X,

Потом внутри блока – на 20 по Y.

Заключение

translate([X, Y, Z]) перемещает объект в 3D-пространстве. Важно учитывать порядок операций при сочетании с rotate(). Используется в циклах for для создания повторяющихся структур.


Смещения

(translate)

в

PythonSCAD(Python)

Оператор translate() используется для перемещения объектов в 3D-пространстве вдоль осей X, Y и Z.

Синтаксис

x = обьект.translate([x, y, z])

X – сдвиг вдоль оси X (вправо – положительные значения, влево – отрицательные).

Y – сдвиг вдоль оси Y (вперед – положительные значения, назад – отрицательные).

Z – сдвиг вдоль оси Z (вверх – положительные значения, вниз – отрицательные).

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

Листинг 1:Простое смещение куба

from openscad import *

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

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

show(tr)

Рис. 15. Простое смещение куба

Куб размером 10×10×10 сдвигается на 10 единиц вправо, 20 вперед и 5 вверх.

Листинг 2:Смещение сферы вверх

from openscad import *

sp = sphere(10)

tr = sp.translate([0, 0, 15])

show(tr)

Рис. 16. Смещение сферы вверх

Сфера радиусом 10 поднимается на 15 единиц вверх.

Листинг

3:

Комбинация

translate()

и

rotate()

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

tr = cu.translate([20, 0, 0])

rotated = tr.rotate([0, 0, 45])

show([rotated])

Рис. 17. Комбинация translate() и rotate()

Куб сначала сдвигается, затем поворачивается.

Если поменять порядок команд (rotate() → translate()), результат будет другим!

Листинг 4:Размещение нескольких объектов в for

цикле

from openscad import *

sp = sphere(5)

result = sp

for i in range(1, 4):

result = result | sp.translate([15 * i, 0, 0])

show(result)

Рис. 18. Размещение нескольких объектов в for-цикле

Листинг

5:

Вложенные

translate()

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

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

tr2 = tr.translate([10, 0, 0])

show(tr2)

Рис. 19. Вложенные translate()

Сначала объект смещается на 10 единиц по X,

Потом внутри блока – на 20 по Y.

Заключение

translate([X, Y, Z]) перемещает объект в 3D-пространстве. Важно учитывать порядок операций при сочетании с rotate(). Используется в циклах for для создания повторяющихся структур.


Масштабирование

(scale)

в

PythonSCAD(OpenSCAD)

Оператор scale() используется для изменения размеров объекта по осям X, Y и Z. Это позволяет увеличивать или уменьшать модель в нужных направлениях.

Синтаксис

scale([Sx, Sy, Sz]) объект;

Sx – масштабирование по оси X (ширина).

Sy – масштабирование по оси Y (глубина).

Sz – масштабирование по оси Z (высота).

Если Sx, Sy, Sz < 1 – объект уменьшается.

Если Sx, Sy, Sz > 1 – объект увеличивается.

Если Sx, Sy, Sz = 1 – объект остается без изменений.

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

Листинг 1:Увеличение размера объекта в 2 раза

scale([2, 2, 2]) cube([10, 10, 10]);

Рис. 20. Увеличение размера объекта в 2 раза

Исходный куб 10×10×10 увеличится до 20×20×20.

Листинг 2:Растяжение по одной оси

scale([2, 1, 1]) cylinder(h=10, r=5);

Рис. 21. Растяжение по одной оси

Цилиндр растянется в 2 раза по X, а другие оси останутся без изменений.

Листинг 3:Уменьшение по высоте

scale([1, 1, 0.5]) sphere(10);

Рис. 22. Уменьшение по высоте

Сфера сожмется в 2 раза по высоте, превращаясь в сплюснутую форму.

Листинг 4:Симметричное отражение (отрицательный масштаб)

scale([-1, 1, 1]) cube([10, 10, 10]);

Рис. 23. Симметричное отражение (отрицательный масштаб)

Куб отразится относительно оси X (зеркальное отражение).

Если поставить -1 по другой оси, произойдет отражение по соответствующему направлению.

Листинг 5:Масштабирование в цикле

for (i = [1:0.5:2]) {

scale([i, i, i]) sphere(10);

}

Рис. 24. Масштабирование в цикле

Создаст несколько сфер разного размера, увеличивающихся от 10 до 20 единиц.

Заключение

scale([X, Y, Z]) изменяет размер объекта по каждой оси отдельно. Можно увеличивать, уменьшать и отражать объекты. Используется в сочетании с translate() и rotate() для сложных конструкций.


Масштабирование (scale) в PythonSCAD(Python)

Оператор scale() используется для изменения размеров объекта по осям X, Y и Z. Это позволяет увеличивать или уменьшать модель в нужных направлениях.

Синтаксис

scale = Обьект * ([Sx, Sy, Sz])

Sx – масштабирование по оси X (ширина).

Sy – масштабирование по оси Y (глубина).

Sz – масштабирование по оси Z (высота).

Если Sx, Sy, Sz < 1 – объект уменьшается.

Если Sx, Sy, Sz > 1 – объект увеличивается.

Если Sx, Sy, Sz = 1 – объект остается без изменений.

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

Листинг 1:Увеличение размера объекта в 2 раза

from openscad import *

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

scale = cu * ([2, 2, 2])

show(scale)

Рис. 25. Увеличение размера объекта в 2 раза

Исходный куб 10×10×10 увеличится до 20×20×20.

Листинг 2:Растяжение по одной оси

from openscad import *

cy = cylinder(h=10, r=5)

scale = cy * ([2, 1, 1])

show(scale)

Рис. 26. Растяжение по одной оси

Цилиндр растянется в 2 раза по X, а другие оси останутся без изменений.

Листинг 3:Уменьшение по высоте

from openscad import *

sp = sphere(10)

scale = sp * ([1, 1, 0.5])

show(scale)

Рис. 27. Уменьшение по высоте

Сфера сожмется в 2 раза по высоте, превращаясь в сплюснутую форму.

Листинг 4:Симметричное отражение (отрицательный масштаб)

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

scale = cu * ([-1, 1, 1])

show(scale)

Рис. 28. Симметричное отражение (отрицательный масштаб)

Куб отразится относительно оси X (зеркальное отражение).

Если поставить -1 по другой оси, произойдет отражение по соответствующему направлению.


Задача 1:Команды

Какая команда выполняет перемещение объекта в заданную точку?

1) translate()

2) position()

3) moveTo()

4) displace()

5) offset()

Задача 2:Передвижение кодом

Какой код сдвинет объект на 15 по X, -10 по Y и 5 по Z?

1) translate([15, -10, 5])

2) shift([15, -10, 5])

3) translate(15, -10, 5)

4) move([15, -10, 5])

5) position(15, -10, 5)

Задача 3:Масштабирование

Какая команда выполняет масштабирование объекта?

1) scale()

2) zoom()

3) expand()

4) stretch()

5) resize()

Задача 4:Масштабирование

Как уменьшить объект в 2 раза по всем осям?

1) scale([0.5, 0.5, 0.5])

2) scale(0.5, 0.5, 0.5)

3) scale([0.5])

4) resize([0.5, 0.5, 0.5])

5) shrink(0.5)

Задача 5:Смещение

Как задать поворот объекта на 90 градусов вокруг оси Y?

1) rotate([0,90,0])

2) rotate(a=90, v=[0,1,0])

3) rotateY(90)

4) turn([0,90,0])

5) spin(90, [0,1,0])

Задача 6:Отзеркаливание

Как выполнить зеркальное отражение объекта относительно плоскости XY?

1) mirror([0,0,1])

2) reflect([1,1,0])

3) mirror([0,1,0])

4) flip([0,1,0])

5) invert([0,0,1])

Задача 7:Задать размер объекта

Какая команда позволяет задать конкретные размеры объекта, а не масштабировать его?

1) resize()

2) stretch()

3) scale()

4) expand()

5) adjustSize()

Задача 8:Полупрозрачный объект

Как сделать объект полупрозрачным?

1) % cube([10,10,10])

2) transparency(0.5)

3) opacity(50)

4) fade(50)

5) alpha(0.5)

Задача 9:Невидимый объект

Как сделать объект невидимым, но оставшимся в коде?

1) *cube([10,10,10])

2) hide()

3) invisible()

4) disable()

5) remove()

Задача 10:Линейное Выдавливание

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

1) linear_extrude()

2) push()

3) extrude()

4) stretch_extrude()

5) height_extrude()

Задача 11:Линейное Выдавливание

Как выдавить 2D-объект на 20 единиц вверх?

1) linear_extrude(height=20)

2) extrude(20)

3) push(20)

4) stretch(20)

5) lift(20)

Задача 12:Вращательное Выдавливание

Как сделать вращательное выдавливание 2D-объекта?

1) rotate_extrude()

2) twist_extrude()

3) spin_extrude()

4) circular_extrude()

5) revolve()

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