3D Model of a Table
Описание проекта: Модель стола
Цель проекта
Создание 3D-модели стола с заданными параметрами, используя язык программирования OpenSCAD. Проект направлен на изучение основ 3D-моделирования и программирования в OpenSCAD, а также на практическое применение геометрических преобразований и модульного подхода.
Исходные данные
Для создания модели стола были определены следующие параметры:
- Длина стола: 120 см
- Ширина стола: 60 см
- Высота стола: 75 см
- Толщина ножек: 5 см
- Высота ножек: 70 см (высота стола минус 5 см)
Структура проекта
Проект состоит из нескольких модулей, каждый из которых отвечает за определённую часть стола:
-
Основная поверхность стола (
table_top
):- Создаётся прямоугольная поверхность с заданными длиной и шириной, расположенная на высоте ножек.
-
Ножка стола (
table_leg
):- Модуль, создающий куб, представляющий ножку стола с заданной толщиной и высотой.
-
Расположение ножек (
table_legs
):- Модуль, который размещает четыре ножки стола в углах основной поверхности. Ножки располагаются с учетом их толщины, чтобы они не выходили за пределы стола.
-
Сборка стола (
table
):- Основной модуль, который объединяет все компоненты стола: поверхность и ножки.
Реализация
Код написан на языке OpenSCAD и включает в себя вызов основного модуля table
, который генерирует полную модель стола. Модель может быть визуализирована и экспортирована для дальнейшего использования, например, для 3D-печати или в качестве основы для более сложных проектов.
Заключение
Данный проект является отличным примером применения программирования для создания 3D-объектов. Он позволяет не только изучить основы OpenSCAD, но и развить навыки работы с геометрическими формами и их трансформациями. Модель стола может быть использована как основа для дальнейших экспериментов с дизайном мебели и 3D-моделированием.
// Параметры стола
table_length = 120; // Длина стола
table_width = 60; // Ширина стола
table_height = 75; // Высота стола
leg_thickness = 5; // Толщина ножек
leg_height = table_height - 5; // Высота ножек
// Основная поверхность стола
module table_top() {
translate([0, 0, leg_height]) {
cube([table_length, table_width, 5]);
}
}
// Ножка стола
module table_leg() {
cube([leg_thickness, leg_thickness, leg_height]);
}
// Расположение ножек
module table_legs() {
translate([0, 0, 0]) table_leg();
translate([table_length - leg_thickness, 0, 0]) table_leg();
translate([0, table_width - leg_thickness, 0]) table_leg();
translate([table_length - leg_thickness, table_width - leg_thickness, 0]) table_leg();
}
// Сборка стола
module table() {
table_top();
table_legs();
}
// Вызов модуля стола
table();