понедельник, 30 декабря 2019 г.

OpenSCAD. Фигуры на плоскости и экструзия

OpenSCAD включает в себя ряд команд, позволяющих строить двумерные объекты. И сами команды, и их параметры очень похожи на свои "трёхмерные аналоги", за тем исключением, что лежать они будут в плоскости XY. Рассмотрим некоторые возможности по созданию таких фигур и построению объёмных тел на их основе. 


Первой фигурой является прямоугольник, он же square(), где в качестве параметра заданы размеры в направлениях X и Y. Следующая фигура - круг, но так же как и в случае цилиндра, команда circle() может генерировать правильные многоугольники, число граней в который определяется параметром $fn. Если вам нужен более сложный многоугольник и вы знаете координаты его вершин, можно воспользоваться командой polygon(). В простейшем случае, в качестве аргумента передаётся последовательность точек, через которые и будет проходить контур фигуры. Если вершины нужно обойти не в той последовательности, в которой они были записаны, или требуется исключить какие-то из вершин, можно воспользоваться вторым аргументом paths. В общем случае, этот параметр позволяет задать "вырезы", т.е. первый указанный путь является основным, а остальные будут из него удалены (четвёртый пример). Наконец, для создания текста существует специальная команда text(), аргументами которой является отображаемая строка и ряд вспомогательных параметров, определяющих шрифт, размер и прочее. 


Кстати, при построении фигур с помощью команды polygon() может потребоваться указать параметр convexity, который определяет, сколько раз произвольная прямая будет пересечена при прохождении через заданную фигуру. В зависимости от формы и наличия внутренних полостей это число может варьироваться, но авторы программы рекомендуют ставить относительно большую величину, например, 10. 

Объёмный элемент в OpenSCAD может быть получен из плоского с помощью "выдавливания" (экструзии), либо в результате вращения вокруг оси Z. Экструзия осуществляется командой linear_extrude() и требует указания высоты создаваемого объекта, а также ряда опциональных параметров. Например, центральный объект закручивается на 50 градусов с помощью параметра twist. Геометрия правого объекта изменяется за счёт растяжения и сжатия вершины параметром scale. Тело вращения формируется с помощью команды rotate_extrude(), и хотя вращение будет происходить вокруг оси Z, а фигура отображается на плоскости XY, поворачивать её не нужно. Однако, необходимо убедится, что она не лежит в 4-х квадрантах одновременно, т.е. что при вращении не возникнет самопересечения. В качестве примера далее показано построение тора.
Для корректного отображения в приведённых примерах также может потребоваться указание параметра convexity.


 

Комментариев нет:

Отправить комментарий