Скрипты для Rhinoceros
Фантастические твари и где они обитают
Розита Каширцева
07.12.2019
Время чтения: 10 мин
Расширить возможности Rhino в работе с формой и подготовке модели к производству можно не только с помощью разнообразных плагинов, но и за счёт использования скриптов.
Розита Каширцева, архитектор бюро MAD Architects, рассказывает о разнице двух подходов и о том, какие возможности для архитектора открывает базовое программирование в среде Rhino.
Плагины и скрипты — это два разных способа расширить функционал Rhino. Но работают они по-разному, и для повторяющихся задач скрипты иногда оказываются эффективнее.
Плагин — это программа (или приложение) с собственным интерфейсом, которая добавляет к возможностям Rhino дополнительный набор функций и требует отдельной установки, но работает лишь внутри самой программы.
Скрипт — это текстовый файл с кодом дополнительных команд, который написан на одном из языков программирования. Его достаточно подгрузить в Rhino, и новые команды, содержащиеся в скрипте, можно будет вызывать через командную строку программы или с помощью панели иконок в интерфейсе. При желании из кода скрипта можно собрать плагин.
Создавать скрипты самостоятельно не так легко, как пользоваться уже готовыми: для разработки необходимо владеть хотя бы одним из языков программирования (VBScript1, Python2). Чтобы освоить скриптинг, мы рекомендуем начать с изучения Grasshopper, перейти к основам Python, а затем проштудировать официальный гайд Rhino.Python.
Некоторые известные архитектурные бюро используют возможность создания скриптов максимально эффективно — например, команда голландского бюро UNStudio собрала даже собственную закрытую библиотеку. В других бюро появляются собственные отделы разработки и скриптинга, сотрудники которых работают с разными языками программирования — так делают в Zaha Hadid Architects и MAD Architects.
Мы попросили архитектора Илью Переяславцева (Mospace), работавшего в отделе CODE в Zaha Hadid Architects с 2015 по 2016 год, рассказать, как возможности скриптинга используются в бюро:
Наиболее популярный инструмент в отделе CODE — Grasshopper (GH). Но важно отметить, что GH используется в основном как среда для скриптинга, в которой есть понятные методы для работы с геометрией. Инструментарий, алгоритмы и системы оптимизации для него мы писали на C#3 внутри GH или создавали отдельную подключаемую библиотеку.
Мы использовали GH для автоматизации простых решений и создания небольших декоративных элементов уже на финальной стадии проекта. А ещё для создания производственных моделей и для взаимодействия с производителями и инженерами.
Внутри нашей команды также активно использовался C++4 для написания плагинов и дополнений к Maya5, а также как инструмент для работы с OpenGL, поиска форм и решений — и просто как инструмент для creative coding.
Ну и наконец, в офисе широко использовался MEL Script6, чтобы быстро создавать и тестировать в Maya дизайн-идеи.
Возможность создания собственных скриптов делает среду Rhino более гибким инструментом и позволяет трансформировать программу под задачи конкретных проектов и команд.
В открытом доступе уже существует достаточное число библиотек со скриптами, например, библиотеки McNeel и наборы, которые создал Паскаль Голэй (Pascal Golay) — скачать их может каждый, а некоторые уже официально добавили в Rhino 6 или планируют внедрить в будущие версии программы. Вот самые популярные из скриптов Голэй:
Sprinkler
Позволяет задать плоскость и произвольно распределить объекты по ней (Surface, Polysurface, Mesh), задавая угол поворота и изменяя масштабы объектов. Команда идеально подходит, например, для быстрого копирования деревьев или людей в модели.
ClippingPlaneCurves
Позволяет создать кривые на пересечение объекта с режущей плоскостью (Clipping Plane). Так, с помощью скрипта можно в один клик создать план этажа или сечение детали — без него пришлось бы создавать отдельную поверхность и использовать команду Intersection — то есть идти гораздо более утомительным путём.
PopUpPlanes
Пригодится, если вы активно пользуетесь CPlane (Construction Plane): список CPlane будет появляться под курсором мышки и больше не нужно будет искать нужные функции в отдельных вкладках.
Ещё один полезный набор скриптов разработан Питером Харрисом (Peter Harris), он также находится в открытом доступе. Эти скрипты можно разделить на 4 категории: свойства объекта, создание и редактирование геометрии, работа с файлом, дополнения. Вот самые полезные из скриптов Харриса:
JoinCurvesByClosestEnds
Проводит отрезок между двумя ближайшими точками, лежащими на разных линиях. К сожалению, встроенная в Rhino команда CloseCrv на такое не способна.
MagicCap
Создает плоскую поверхность из любых линий или граней. В отличие от стандартной команды Rhino, которая использует для создания плоскости только кривые (линии и полигинии), используя MagicCap можно выбрать грани объекта или использовать смешанный выбор (линии + грани).
SetX, SetZ, SetY
Выравнивает точки относительно координат XYZ — позволяет поддерживать в файле порядок, чтобы моделировать объекты качественно.
OpenSelectedInNewWorkspace
Позволяет открыть выделенные объекты в новом файле, то есть делает работу с ними быстрее и удобнее.
И напоследок — ещё два скрипта от Марко Траверсо (Marco Traverso), которые могут пригодиться любителям организованной работы:
SaveLayers
Позволяет сохранить структуру слоёв из любого файла в текстовый документ.
LoadLayers
Подгружает названия всех слоёв и подслоёв, сохраняя их исходную структуру и цвета в новый файл.