Модуль для создания полого овала
Описание проекта: Модуль для создания полого овала
Цель проекта
Создание 3D-модели полого овала с заданными параметрами, который может быть использован в различных приложениях, таких как архитектурное проектирование, промышленный дизайн или 3D-печать.
Описание модуля
Модуль hollow_oval
принимает три параметра:
length
(длина) — определяет общую длину овала.thickness
(толщина) — задает толщину стенок полого овала.height
(высота) — определяет высоту овала.
Алгоритм работы
-
Создание внешнего овала:
- Используется функция
cylinder
для создания цилиндрической формы, которая масштабируется по оси Y (высота) в 1.5 раза, чтобы получить овальную форму. Высота цилиндра равна заданному параметруheight
, а радиус равен половинеlength
.
- Используется функция
-
Создание внутреннего овала:
- Второй цилиндр создается аналогично первому, но с увеличенной высотой (на 2 единицы) и уменьшенным радиусом (на значение
thickness
). Это создает полость внутри овала.
- Второй цилиндр создается аналогично первому, но с увеличенной высотой (на 2 единицы) и уменьшенным радиусом (на значение
-
Разница между формами:
- Функция
difference
используется для вычитания внутреннего овала из внешнего, что приводит к созданию полого овала.
- Функция
Пример использования
Вызов hollow_oval(30, 2, 50)
создает полый овал с длиной 30 единиц, толщиной стенок 2 единицы и высотой 50 единиц. Это позволяет получить объект, который можно использовать в различных проектах, требующих овальных форм.
Применение
- Архитектурное проектирование: создание элементов интерьера или экстерьера.
- Промышленный дизайн: разработка уникальных деталей для продуктов.
- 3D-печать: подготовка моделей для печати, которые требуют легкости и прочности.
Заключение
Проект предоставляет простой и эффективный способ создания полых овальных форм, что может значительно упростить процесс моделирования в различных областях.
module hollow_oval(length, thickness, height) {
difference() {
scale([1, 1.5, 1])
cylinder(h = height, r = length / 2, center = true);
scale([1, 1.5, 1])
cylinder(h = height + 2, r = (length / 2) - thickness, center = true);
}
}
hollow_oval(30, 2, 50);