Урок: создание параметрической модели цветочного горшка

По статистике одной из самых первых поделок для дома, создаваемых на 3D принтере является цветочный горшок. Изготовление цветочных горшков является увлекательным и творческим занятием, которое может приносить много удовольствия. В этой статье мы рассмотрим, как использовать программу OpenSCAD для создания простого цветочного горшка и создадим параметрический модуль цветочного горшка.

OpenSCAD – это мощное программное обеспечение для 3D-моделирования, которое позволяет создавать сложные детали и формы. Мы расскажем о шагах по созданию цветочного горшка в OpenSCAD, а также обсудим его возможности. Давайте начнем этот увлекательный процесс и посмотрим, как можно воплотить свои идеи в реальность с помощью OpenSCAD.

OpenSCAD: создание цветочного горшка

Для начала определимся с дизайном, для простоты решения возьмем горшок, у которого ширина нижней части, совпадает с верхней. Также мы сможем настраивать количество граней горшка от 3 до 360 ( т.е. полноценного круга). А также мы сможем управлять количеством дренажных отверстий в горшке.

Для начала рассмотрим параметры, используемые для настройки горшка. К настраиваемым параметрам мы отнесем: диаметр горшка, высоту, количество граней, ширину стенки горшка, количество дренажных отверстий.

// Модуль горшок
GDiamtr = 70;  // диаметр горшка, 
GHeight = 60;  // высота, 
GGranes = 8;   // количество граней, 
GWwidth = 2;   // ширина стенки,
GHoles  = 8;   // количество дренажных отверстий по периферии, не считая одного по центру

Следующим шагом напишем модуль для создания горшка.

Кстати, Вы знаете чем отличается модуль от функции в OpenScad? Если нет, то рекомендую ознакомиться с материалом: Разница между модулем и функцией в OpenSCAD

Из базовой формы цилиндра мы вычтем другой цилиндр, получим базовую форму горшка, а затем из нее вычтем “дырки”, описываемые за счет мелких циллиндров.

module Gorshok( Diametr, gHeight, gGranes, gWWidth, gHoles=8){

    difference(){
                // базовая форма горшка
                cylinder(gHeight, d=Diametr, $fn=gGranes);
        
                // вычитаем уменьшенный в размере цилиндр
                translate([0,0,gWWidth]) 
                    cylinder(gHeight, d=Diametr-2*gWWidth, $fn=gGranes);
                
                // создаем дырки в горшке
                $fn=36;

                // центральная дырка
                cylinder(gWWidth*2 ,d=5, center = true);

                // периферические дырки
                for (i= [0: 360/gHoles: 360]){
                    rotate( i, [0,0,1]){
                        translate([Diametr/4, 0, 0]) 
                            cylinder(gWWidth*2, d=3, center = true); //gWWidth
                    }   
                }
    }

}

Рассмотрим подробнее код модуля.

Шаг 1. Создание базовой формы

Для начала создадим базовую форму:

 cylinder(gHeight, d=Diametr, $fn=gGranes);

Функции цилиндр мы передаем параметры высоты, диаметра и количество граней, которое задается через специальную переменную $fn. В данном случае $fn=8, и мы получаем восьмиугольник.

Урок: создание параметрической модели цветочного горшка

Варианты фигур в зависимости от настройки параметра $fn:

  • $fn = 3 – треугольник
  • $fn = 4 – квадрат
  • $fn = 5 – пятиугольник
  • $fn = 6 – шестиугольник
  • $fn = 8 – восьмиугольник
  • $fn = ….
  • $fn = от180 до 360 – круг

Шаг 2. Создание собственно горшка

Для создания горшка, вычтем меньший по размеру цилиндр из базовой формы:

difference(){
                // базовая форма горшка
                cylinder(gHeight, d=Diametr, $fn=gGranes);
        
                // вычитаем уменьшенный в размере цилиндр
                translate([0,0,gWWidth]) 
                    cylinder(gHeight, d=Diametr-2*gWWidth, $fn=gGranes);
}

Обратите внимание, что вычитаемый цилиндр, мы смещаем вверх на высоту gWWidth – равную толщине стенки горшка:

translate([0,0,gWWidth]) 

Диаметр вычитаемого цилиндра у нас равен Diametr-2*gWWidth, т.е. диаметру базового горшка минус две толщины стенки горшка.

Таким образом, мы получаем базовую форму с толщиной стенки равной gWWidth :

Урок: создание параметрической модели цветочного горшка

Шаг 3. Создание дренажных отверстий

Для создания дренажных отверстий используем форму циллиндра, предварительно задав количество граней, равное 36 ($fn=36;) :

                // создаем дырки в горшке
                $fn=36;

                // центральная дырка
                cylinder(gWWidth*2 ,d=5, center = true);

                // периферические дырки
                for (i= [0: 360/gHoles: 360]){
                    rotate( i, [0,0,1]){
                        translate([Diametr/4, 0, 0]) 
                            cylinder(gWWidth*2, d=5, center = true); //gWWidth
                    }   
                }

Далее вычитаем центральную дырку, где высота gWWidth*2 ( в 2 раза больше толщины стенки горшка, чтобы гарантировано получить сквозное отверстие), диаметр дырки равен 5мм ( на мой взгляд оптимальный параметр для большинства горшков), а сам цилиндр отцентрован по центру:

 cylinder(gWWidth*2, d=5, center = true);

Следующий блок, описывает создание аналогичных цилиндров в цикле For:

// Определяем размер шага в градусах: 360 разделить на число дырок,
for (i= [0: 360/gHoles: 360]){
                    // поворачиваем по оси z [x,y,z] на количество градусов i* шаг
                    rotate( i, [0,0,1]){ 
                            // перемещаем дырку на 1/2 от радиуса горшка
                            translate([Diametr/4, 0, 0])
                                   cylinder(gWWidth*2, d=5, center = true); //gWWidth
                    }
}

Здесь в цикле мы определяем величину размера шага в градусах: 360 разделить число дырок, при значении в 6, шаг составит 60 градусов ( 360:6), таким образом i последовательно принимать значения : 0, 0, 60, 120, 180, 240, 300 пока не дойдет до конечных 360 (360=0).

Соответственно, каждый модуль цилиндра, аналогичный центральному подвергается двум модификациям:

  1. сначала при помощи модификатора translate() смещается по оси Х на расстояние равное половине радиуса горшка ( диаметр равен 2 радиусам, соотвенно половина радиуса – это 1\4 диаметра горшка),
  2. затем поворачивается по оси z [x,y,z] на количество градусов i* шаг, т.е. первый на 0, второй на 60 градусов и т.д.

Таким образом количество дырок у нас составляет gHoles+1.

Урок: создание параметрической модели цветочного горшка

Итоговый модуль цветочного горшка

Итоговый модуль цветочного горшка выглядит так:

// Модуль горшок
GDiamtr = 70;
GHeight = 60;
GGranes = 8;
GWwidth = 2;
GHoles  = 8;



module Gorshok( Diametr, gHeight, gGranes, gWWidth, gHoles=8){

    difference(){
                // базовая форма горшка
                cylinder(gHeight, d=Diametr, $fn=gGranes);
        
                // вычитаем уменьшенный в размере цилиндр
                translate([0,0,gWWidth]) 
                    cylinder(gHeight, d=Diametr-2*gWWidth, $fn=gGranes);
                
                // создаем дырки в горшке
                $fn=36;
        
                // центральная дырка
                cylinder(gWWidth*3,d=5, center = true);   
        
                // Определяем размер шага в градусах: 360 разделить на число дырок,
                for (i= [0: 360/gHoles: 360]){
                     // поворачиваем по оси z [x,y,z] на количество градусов i* шаг
                     rotate( i, [0,0,1]){ 
                         // перемещаем дырку на 1/2 от радиуса горшка
                         translate([Diametr/4, 0, 0])
                              cylinder(gWWidth*3, d=5, center = true); //gWWidth
                     }
                }

    }

}


Gorshok(GDiamtr, GHeight, 4, GWwidth, 4);
translate([- 70,0,0]) 
       Gorshok(GDiamtr, GHeight, 6, GWwidth, 6);
translate([ 70,0,0])
       Gorshok(GDiamtr, GHeight, 8, GWwidth, 8);
translate([ 140,0,0])
       Gorshok(GDiamtr, GHeight, 360, GWwidth, 8);
translate([ -140,0,0]) 
       Gorshok(GDiamtr, GHeight, 3, GWwidth, 3);
Урок: создание параметрической модели цветочного горшка

Заключение

В этой статье мы рассмотрели процесс создания цветочного горшка в программе OpenSCAD и обсудили ключевые возможности этого удивительного инструмента для 3D-моделирования. Созданный нами модуль можно дополнительно доработать, добавив параметры по умолчанию для дренажных отверстий, но оставим Вам данную работу для самостоятельного решения.

Благодаря OpenSCAD каждый может стать дизайнером собственного цветочного горшка и воплотить в жизнь свои творческие идеи. Надеемся, что эта статья поможет вам вдохновиться и начать создавать уникальные садовые украшения с помощью OpenSCAD!

Оцените статью
( 1 оценка, среднее 5 из 5 )
Добавить комментарии

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Урок: создание параметрической модели цветочного горшка
OpenScad - модель кружки
Урок: как сделать кружку в OpenScad