Продвинутые пользователи могут расширять возможности языка OpenSCAD используя специальную конструкцию под названием МОДУЛЬ. Модуль позволяет группировать части кода для легкого повторного использования его с разными значениями.
В OpenSCAD модули состоят из:
Определения модуля, где прописывается его название, аргументы, которые он принимает и код, который выполняется при запуске этого модуля. Само определение модуля ещё не отображает объект на рабочем поле.
Вызова модуля, который позволяет отобразить на рабочем поле объект, записанный в модуле с определённым именем и заданными параметрами.
Код модуля выглядит так:
module name ( parameters ) {
команды модуля, в которых используются указанные в скобках параметры-переменные
}
name( значения parameters ) #вызов модуля
Давайте создадим свой модуль. Для этого используем код, представленный ниже:
x=60;
y=0.4;
r=7;
cylinder(x, r, r, , $fn=100); //цилиндр
translate([0,0,x])
cylinder(r*3, r, 0, , $fn=100); //конус
for (i=[0:120:360]){
rotate([0,0,i])
translate([r,0,0])
scale([y+0.2,y+0.2,y]){
cylinder(x, r, r, , $fn=100);
translate([0,0,x])
cylinder(r*3, r, 0, , $fn=100);
}
}
}
Создайте модуль с именем rocket и параметрами x, y, r, содержащий указанный выше код.
Вызовите модуль rocket , как указано в примере выше, чтобы на экране появилась модель как на рис.1.
Разместите на рабочем поле 3 ракеты, трижды произведя вызов модуля rocket с разными параметрами (не забудьте передвинуть 2 из них, чтобы они не накладывались друг на друга, см. рис.2).
Рассмотрим, как используются циклы применительно к модулям.
Цикл - это программная конструкция, заставляющая какой-то код (находящийся в теле цикла) повторяться несколько раз. Простейшая циклическая конструкция представлена циклом for: