Расчет объема и массы 3D объекта в Blender 2.56
Никогда раньше не приходилось писать скрипты под Blender — как-то обходился имеющимися в наборе инструментарием… В лучшем случае качал нужный скрипт из сети.
Однако возникла задача: при моделировании ювелирных изделий для их последующего «выращивания» необходимо вычислять массу смоделированного 3D изделия — думаю, понятно зачем. Нужен был инструмент для вычисления, как минимум, объема виртуального объекта.
Я порылся в сети и нашел только пару старых плагинов под Blender 2.4x. Учитывая, что и API, и версия Python'а в 2.5x поменялись, я даже не стал пробовать эти скрипты. В итоге, не найдя ничего подходящего, я решил написать свой — он стал первым в моей жизни скриптом для Blender. Хочется верить, что этот блинчик не очень комкастый. =)
Скрипт добавляет свою панель на страницу настроек Object Data
Панель “Volume & Mass Calc” появляется под панелью “Properties”. Данный скриншот сделан для тестовой сцены, изображенной в конце заметки (пусть вас не удивляет примитивность тестовых объектов — это единственные формы, объем которых я смог посчитать математически, чтобы проконтролировать правильность работы скрипта… а большой шар внутри, между прочим, содержит несколько примитивов как полости). =D
Скрипт очень прост в использовании: необходимо выбрать объект, чью массу и объем вы хотите посчитать. Важнейшим условием является то, что сетка объекта обязательно должна состоять из треугольников! Вероятно в будущих версиях объем будет рассчитываться для любых граней, но пока дела обстоят именно так.
Как только объект выбран, в панели скрипта появляется имя объекта и имя инфоблока-сетки, для которой будет вычислен объем.
Предупреждение еще раз напоминает вам, что необходимо разбить все грани на треугольники — вполне логичный ход для таких расчетов сделать дубликат объекта, перейти в режим редактирования, выбрать все грани (A) и нажать Ctrl+T, затем выйти из режима редактирования. В поле Material Density необходимо ввести плотность материала, из которого «изготовлен» объект (таблиц плотностей — великое множество по всему интернету, так что я не буду приводить здесь каких-либо ссылок на конкретные ресурсы — их несложно найти самостоятельно).
И в самом низу панели расположены два скромных информационных поля, показывающих объем (Volume) и массу (Mass), рассчитанные для данного объекта.
Итак, чтобы подытожить, необходимые условия работы скрипта:
- все грани должны быть треугольными (настоятельно рекомендуется выделить все грани и использовать заклинание Ctrl+T)
- поверхность объекта должна быть закрытой (не должно быть «дыр»)
- нормали всех граней должны быть ориентированы наружу (рекомендуется (не)лишний раз нажать Ctrl+N при выделенных гранях)
Скрипт тестировался в Blender 2.56.2 r35367 и r35382 64(bit), Mac OS X. Данных о работе в других билдах и на других операционных системах пока что нет, но я буду благодарен, если вы мне их сообщите. Также я буду благодарен за любые предложения и пожелания в отношении данного скрипта. В случае, если вы вдруг нашли ошибку, убедительная просьба: обязательно напишите мне об этом и с вашей помощью я быстро выпущу исправленную версию. =)
Сам скрипт можно скачать по ссылке http://artdds.ru/toolbox/vol_and_mass_calc.py (версия от 7.03.2011). Официальная страница проекта — на нашем сайте.