Резюме.
Двигаемся дальше, добавляем ещё немного удобства...
Этот инструмент основан на последней версии виртуальной машины OpenScad, в которую добавлены несколько удобных функций:
CUBE(размер, центр);
ЦИЛИНДР(r1, r2, h, центр);
SPHERE(r);
И пару для операций CSG тоже:
UNION(части);
РАЗНИЦА (часть 1, часть 2);
Я также изменил название модуля 'CSG' на 'EXEC', что кажется более подходящим.
Итак, теперь вы можете сделать это:
EXEC(UNION([CUBE([10,10,10]), CYLINDER(r1=6, r2=5, h=12)]);
Это в значительной степени заставляет его выглядеть более похожим на то, что вы написали бы в обычном OpenScad. Так зачем утруждаться? Это более прямое, или "императивное". Этот стиль может больше соответствовать стилю некоторых людей, чем строго иерархический способ ведения дел.
Если вы хотите углубиться в технические подробности, этот стиль похож на функциональное программирование. Поскольку почти всё, за исключением EXEC(), является функцией без побочных эффектов, эти "функции" можно легко передавать в качестве параметров другим функциям и модулям.
У меня до сих пор нет каких-либо переменных, циклов и тому подобного, но разве это может быть так уж сложно ;-)
Кроме того, довольно легко создавать отдельные части в виде простых массивов и просто использовать их.
В любом случае, взгляните на файл 'test_openscad_vm.scad', поскольку он показывает, как смешивать и сочетать разные вещи. Функция 'target()' использует все новые элементы. Функция 'wheel()' выполняет смешение и сочетание стилей.
Всё это может стать более очевидным и понятным после ещё пары версий.
Инструкции.
1) Скачайте файлы.
2) Поиграйте с 'test_openscad_vm.scad'.
3) Радуйтесь!