Вземете MDagPath към създадения възел в postConstructor (Maya Python API)

Когато използвам API на maya python за създаване на нов тип възел, трябва да изпълня "maya.cmds.getAttr" на атрибут веднага след създаването на възела.

Какъв е правилният начин да получите dagPath към възела, който току-що създадохте в метода postConstructor?


person stowaway    schedule 20.08.2015    source източник
comment
Използвам API2, но едното (или и двете) би било полезно!   -  person stowaway    schedule 21.08.2015
comment
Само една бърза бележка тук: може да се прояви неочаквано поведение, понякога дори да остави Maya в нестабилно състояние, ако възел се опита да направи нещо с dagPath. Не знам дали запитването на dagPaths от възел също е добра практика. Нещо, което трябва да имате предвид. В идеалния случай възелът трябва да е в блажено неведение за своето място (или мястото на който и да е) в dagPath. За предпочитане е такива неща да бъдат кодирани в команди.   -  person kartikg3    schedule 21.08.2015
comment
Благодаря за бакшиша! В този конкретен случай трябва да изчисля входа от масив от вектори с предварително определен брой входни точки (8). Казаха ми, че единственият начин да се гарантира, че масивът има правилния брой елементи, е да се изпълни getAttr на индекса на масива, който искате да съществува. Знаете ли за по-чист начин?   -  person stowaway    schedule 21.08.2015


Отговори (1)


Когато сте в метода postConstrutor(), можете да използвате препратката 'thisMObject()' за достъп до екземпляра на възела. Оттам можете да създадете MDagPath и да го предадете на вашата команда getAttr. Но не е необходимо да правите това, защото вместо това можете да използвате API за достъп до атрибута. Например:

thisNode = self.thisMObject()
plug = om.MPlug( thisNode, footPrint.size )
sizeVal = plug.asMDistance()

thisMObject() -> MObject

Връща MObject, свързан с този дефиниран от потребителя възел. Това прави възможно използването на MFnDependencyNode или конструирането на плъги към атрибутите на този възел.

person cyrille    schedule 13.01.2016
comment
@stowaway, помогна ли? - person cyrille; 06.04.2016