1. Пользоваться форумом на планшетах и телефонах стало удобнее благодаря Tapatalk

MEL? Python? PyMel?

Тема в разделе "Maya", создана пользователем 3rr0r, 7 окт 2012.

Модераторы: Dark™, Skif
  1. 3rr0r

    3rr0r Знаток

    С нами с:
    14.09.2006
    Сообщения:
    201
    Симпатии:
    7
    Баллы:
    28
    Итак.
    0) Объясните мне в чем отличие простого питона в майе от pymel'a? В чем отличие использования:
    import random as rand
    randomize = rand.uniform(0, 1)
    и
    from pymel.core import *
    randomize = rand(0, 1)

    1) Выполняется быстрее mel или питон?
    2) Как сделать выполение скрипта с фидбэком? То есть, например, я создаю в рандомных позициях 1000 сфер и хочу наблюдать процесс их появления во вьюпорте. Если на меле делать, то всё подвисает до появления конечного результата.
    3) Существует 2 способа писать гуи: Qt дизайнером форм создавать ui файл и вручную в коде создавать форму (это всё PyQt?). Верно?

    Обновление сообщения автором
    08.10.2012 в 00:58
    0) Пояснение: в чем разница использования "import maya.cmds as cmds" и "from pymel.core import * "
     
  2. Dark™ vip

    Dark™ Administrator Команда форума

    С нами с:
    28.10.2001
    Сообщения:
    3.110
    Симпатии:
    217
    Баллы:
    1.520
    PyMel это более верная структурная реализация функций Mel'а в питоне. Например, в то время, как в обычном модуле maya.cmds недостаточно функций и многие команды приходится запускать через eval в виде строчных аргументов, в PyMel же все команды имеют свои классовые, объектно-ориентированные представления. Это напрямую сказывается на гибкости применения, а так же на то, что кода становится значительно меньше - его легче читать и использовать. В идеале Mel так и должен быть представлен Python'ом в исходной сборке Maya.

    Это пример использования нативного модуля для самого питона.

    А тут rand не правильно вызван. Надо: mel.rand(0,1). Это равносильно этому:
    Код:
    import maya.mel as mel
    mel.eval("rand 0 1")
    
    Т.е. PyMel это просто другой подход для взаимодействия с майским Api.

    Обычно mel быстрее. Но, думаю, можно найти случай, когда python быстрее будет в задачах, не связанных с вызовом maya api.

    Есть команда refresh.
     
  3. 3rr0r

    3rr0r Знаток

    С нами с:
    14.09.2006
    Сообщения:
    201
    Симпатии:
    7
    Баллы:
    28
    Спасибо за разъяснения!
    Refresh работает. как и ожидалось, Время исполнения скрипта заметно увеличилось. Почти в 3 раза. 6.5 секунд против 16 с рефрешем.
    Осталось переписать его на PyMel и замерить снова
     
Модераторы: Dark™, Skif

Поделиться этой страницей