Возможно, это то, что вы хотите:
добавьте параметры отверстий в вектор и используйте этот вектор в цикле for в difference()
. Если вектор пустой, из модели ничего не вычитается, попробуйте четыре примера:
module model(l) {
cube(size = l, center = true);
}
module hole(pos, dim) {
translate(pos) cylinder(h = dim[0] + 0.1, r = dim[1], center = true);
}
// holes = [];
// holes = [[[0,0,0],[10, 1]]];
holes = [[[-2.5,-2.5,0],[10, 0.5]], [[0,0,0],[10, 1]], [[2.5,2.5,0],[10, 1.5]]];
// holes = [[[-2.5,-2.5,0],[10, 1]], [[-2.5,2.5,0],[10, 1]], [[2.5,2.5,0],[10, 1]], [[2.5,-2.5,0],[10, 1]], [[0,0,0],[10, 1]]];
difference() {
model(10);
for (h = holes) hole(h[0], h[1]);
}