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

Python scripting

Тема в разделе "Maya", создана пользователем Lemieux, 31 окт 2016.

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

    Andots Знаток

    С нами с:
    12.03.2009
    Сообщения:
    808
    Симпатии:
    160
    Баллы:
    48
    От спасибки есть такой <omp.h> Вообще еще подумывал через Cuda что то попробовать замутить ,если получится подключить, и как нить использовать по возможности MPxGPUDeformer.h , всетаки в итоге у меня деформер должен быть. Ну пока рано, учусь еще.
     
  2. Lemieux

    Lemieux Знаток

    С нами с:
    08.06.2011
    Сообщения:
    1.147
    Симпатии:
    133
    Баллы:
    58
    А с ч его ты взял, что сотый вертекс одного объекта будет лежать на минимальном растоянии от сотого вертекса другого? :) Может быть к сотому вертексу первого объекта ближе не сотый, а сто первый вертекс? :)
     
  3. Andots

    Andots Знаток

    С нами с:
    12.03.2009
    Сообщения:
    808
    Симпатии:
    160
    Баллы:
    48
    А разве я так сказал, что ближайший будет именно сотый а не стопервый? Этим мы просто на пару порядков сокращаем число ненужных итераций и находим зону максимального сближения, и уже потом в этой зоне начинаем считать каждый вертекс.
     
  4. 4i4ikov

    4i4ikov Знаток

    С нами с:
    07.04.2015
    Сообщения:
    268
    Симпатии:
    93
    Баллы:
    28
    Andots, вот кто знает как коллизию оптимизировать)))


    _.jpg
     
  5. Lemieux

    Lemieux Знаток

    С нами с:
    08.06.2011
    Сообщения:
    1.147
    Симпатии:
    133
    Баллы:
    58
    Есть вот такая простая функция:
    Код:
    def number(i):
        num_i=[i]
        return num_i

    Как сделать так, чтобы после вот таких действий:
    Код:
    number(0)
    
    print(num_0)

    она работала, а не писала
    Код:
    # Error: name 'num_0' is not defined
    # Traceback (most recent call last):
    #   File "<maya console>", line 1, in <module>
    # NameError: name 'num_0' is not defined # 
    Можно решить с помощью форматирования строк и eval, но вдруг кто знает решение изящней.
     
  6. Cyberika

    Cyberika Активный участник

    С нами с:
    17.02.2012
    Сообщения:
    129
    Симпатии:
    11
    Баллы:
    14
    Если ты хочеш, что бы питон распечатал то, что функция возвращает то так:
    Код:
    def number(i):
        num_i=[i]
        return num_i
    print number(0)
     
  7. Lemieux

    Lemieux Знаток

    С нами с:
    08.06.2011
    Сообщения:
    1.147
    Симпатии:
    133
    Баллы:
    58
    Почему такая штука не работает, окно не удаляется, а всегда создаётся новое.
    Код:
    import pymel.core as pm
    
    def lxWindow():
        try:
            win.delete()
            win = pm.window()
        except:
             win = pm.window()
        win.show()
    lxWindow()
    А вот такая работает
    Код:
    import pymel.core as pm
    
    try:
        win.delete()
        win = pm.window()
    except:
        win = pm.window()
    win.show()
     
  8. Александр Иванов

    Александр Иванов Активный участник

    С нами с:
    18.06.2013
    Сообщения:
    41
    Симпатии:
    5
    Баллы:
    7
    С пространством имён косяк, думаю. Посмотри имя окошка, которое хочешь удалить, и имя окошка, которое реально пытаешься удалить. По идее запуская скрипт повторно, ты заново инициализируешь функцию. И у неё нет доступа к переменным, которые были инициализированы в первом вызове. Правильнее давать готовое окошко, как аргумент функции. Которая уже проверит есть такое окошко, или нет, и сделает всё, что нужно.
     
    Последнее редактирование: 16 янв 2018
    Lemieux нравится это.
  9. Lemieux

    Lemieux Знаток

    С нами с:
    08.06.2011
    Сообщения:
    1.147
    Симпатии:
    133
    Баллы:
    58
    Хитрый финт ушами, подавать неизвестно что, даже не экземпляр класса, в аргумент функции.

    Код:
    import pymel.core as pm
    
    def lxWindow(win):
        try:
            win.delete()
            win = pm.window()
        except:
             win = pm.window()
        win.show()
    
    lxWindow(win)
     
    Александр Иванов нравится это.
Модераторы: Dark™, Skif

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