Render.ru

Перенос выделения референсированного объе

SteadFast

Пользователь сайта
Рейтинг
2
#1
Столкнулся с проблемой большого количества рефов, но никак не выходит написать скрипт что бы он смотрел какой референсный объект я выделил во viewport или в outliner, открывал reference editor и выделял его там, и, если референс вложенный, раскрывал стрелочку.

Понимаю как открыть reference editor, взять выделенный объект через команду ls и как найти путь рефа через referenceQuery или его неймспейс.

Но как отправить в reference editor запрос на выделение в нем строки и раскрыть стрелочку вложенных референсов?

Обновление сообщения автором
16.08.2013 в 12:13
Разобрался как выделять:
sceneEditor -edit -selectItem 0 $gReferenceEditorPanel;

0 - это индекс референса. Соответственно, этой командой можно выделить только самую первую строчку. Если в первой строке есть вложенные рефы, то их выделить нельзя пока стрелка не развернута.

Остается вопрос в том как сделать проверку на вложенный реф, развернуть стрелочку и выяснить индекс всех референсов в сцене, например, если есть несколько референсов со вложенными в них рефами, т.е. две или больше таких ветвей. Если стрелка свернута, то у вложенных референсов нет индекса вообще и команда:
sceneEditor -edit -selectItem 1 $gReferenceEditorPanel; выдаст ошибку:

// Error: line 1: //
 

Dark™

Модератор форума
Команда форума
Рейтинг
431
#2
Во-первых, зачем это надо? Какая итоговая цель этого выделения?
 

SteadFast

Пользователь сайта
Рейтинг
2
#4
Для того, что бы быстро найти имя файла, откуда приходит конкретный референс, его путь, номер копии или сдублировать его и все остальное что быстро можно сделать в референс эдиторе. У меня в сцене рефов бывает больше 100, и частенько приходится тратить время на то что бы найти их в реф эдиторе. Я знаю что можно искать по имени, но опять же, если у несокльких рефов одинаковое имя, то нужно делать дополнительные действия для выяснения какой мне нужен файл.
 

Владимир Забелин

Активный участник
Рейтинг
17
#5
не убежден, что запрос на выделение можно вообще отправить в референс эдитор . все-таки выделение объекта в сцене и выделение строки в редакторе - это совершенно разные процедуры.
 

Dark™

Модератор форума
Команда форума
Рейтинг
431
#6
Вот с этих целей и надо было начинать тему.
что бы быстро найти имя файла, откуда приходит конкретный референс, его путь, номер копии
Для единичного выделения:
referenceQuery -filename `ls -sl`;

сдублировать его и все остальное что быстро можно сделать в референс эдиторе.
Код:
string $sels[] = `ls -sl`;
duplicateReference `referenceQuery -rfn $sels[0]` `referenceQuery -f $sels[0]`;
 

SteadFast

Пользователь сайта
Рейтинг
2
#7
Вот с этих целей и надо было начинать тему.
Для единичного выделения:
referenceQuery -filename `ls -sl`;

string $sels[] = `ls -sl`;
duplicateReference `referenceQuery -rfn $sels[0]` `referenceQuery -f $sels[0]`;
Я же в начале другую цель написал :) Цель не в том что бы выделить ноды, а что бы получить выделение строки в окне референс эдитора выделив ноду, во вью порте.

не убежден, что запрос на выделение можно вообще отправить в референс эдитор . все-таки выделение объекта в сцене и выделение строки в редакторе - это совершенно разные процедуры.
Выделение в референс эдиторе можно делать так:
sceneEditor -edit -selectItem 0 $gReferenceEditorPanel;
0 - это номер строки. НО если у этой строки есть вложенный реф (когда стрелочка слева от строки), то у того вложенного рефа нет индекса, что бы его выделить. Индекс появляется когда вручную кликаешь на стрелочку. Поэтому вопрос то собственно как и в 1 сообщении - как через мел, или, может, еще как то, сделать проверку есть ли такая стрелочка (т.е. получается есть ли индекс у рефа чью ноду во вью порте я выделил), открыть эту стрелочку, ну а выделить строку, если известен ее индекс уже понятно как.
 

Dark™

Модератор форума
Команда форума
Рейтинг
431
#8
Цель не в том что бы выделить ноды, а что бы получить выделение строки в окне референс эдитора выделив ноду, во вью порте.
Нафига это надо? Финальная цель не в самом выделении, а в итоговом результате, который хотите получить от этого выделения.
Любые действия с референсами можно осуществить через стандартные команды, а эти команды сохранить аккуратно на шелф и пользоваться ими. И свой GUI тоже можно создать.
 

SteadFast

Пользователь сайта
Рейтинг
2
#9
Нафига это надо? Финальная цель не в самом выделении, а в итоговом результате, который хотите получить от этого выделения.
Любые действия с референсами можно осуществить через стандартные команды, а эти команды сохранить аккуратно на шелф и пользоваться ими.
Если делать для каждого дейсвтия отдельнй скрипт, то получится еще один референс эдитор разбросанный по шелвам. А там и без этих скриптов навалом уже всего нужного. В референс эдиторе все удобно сделано, не вижу смысла переписывать эти команды еще раз в другом месте.
 
Сверху