Thanks Marcus! On Mon, Nov 24, 2014 at 11:58 AM, Marcus Ottosson <[email protected]> wrote:
> You would typically employ a scriptJob > <http://help.autodesk.com/cloudhelp/2015/ENU/Maya-Tech-Docs/CommandsPython/scriptJob.html>; > which is the Maya way of providing arbitrary callbacks to supported events, > such as selecting a node. > > From the documentation, MEL > > // Set up a job that runs for the life of the application.// This job cannot > be deleted with the "kill" command no matter what. > scriptJob -e "SelectionChanged" "print \"Annoying Message!\\n\"" -permanent; > > Though scriptJob is often looked down upon and should be used with > caution, primarily due to the added overhead of using it. You should be > okay as long as the amount of scriptJobs you use are within reasonable > bounds. For example, activating upon entering your tool, and deactivating > afterwards is a good example of reasonable bounds, whereas monitoring 6 000 > attribute changes would probably be considered a bit much. (You should test > for performance for your situation) > > Based on your question, I take it you’re looking to listen for when your > animators select any of your controls, and might think to attach a > scriptJob to each controller. This can be done, but I’d try not to attach > it to each and every one, and instead try to focus them on where you really > need it. > > There are alternatives of course, with various pros and cons - such > querying cmds.ls(selection=True) at a fixed interval and determining > whether it has changed since last query. > > A more common approach, than listening for events, would be to instead let > your users tell your tool when they’ve got something of interest selected, > upon which your tool would simply call cmds.ls(selection=True). > > > On 24 November 2014 at 16:36, Dillon B <[email protected]> wrote: > >> For example, say that I was to select a curve (functioning as a >> controller) and I was to broadcast a message or emit an event every time it >> is selected. How would I go about programming this elegantly? >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Python Programming for Autodesk Maya" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/python_inside_maya/dbbda77d-ab18-492c-9636-008f44394b2e%40googlegroups.com >> <https://groups.google.com/d/msgid/python_inside_maya/dbbda77d-ab18-492c-9636-008f44394b2e%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> For more options, visit https://groups.google.com/d/optout. >> > > > > -- > *Marcus Ottosson* > [email protected] > > -- > You received this message because you are subscribed to the Google Groups > "Python Programming for Autodesk Maya" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/python_inside_maya/CAFRtmOB9dfaDrd8m8GMO-PcAV7iVXy1iY7-fXs4yqE0AAFMupQ%40mail.gmail.com > <https://groups.google.com/d/msgid/python_inside_maya/CAFRtmOB9dfaDrd8m8GMO-PcAV7iVXy1iY7-fXs4yqE0AAFMupQ%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Python Programming for Autodesk Maya" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/python_inside_maya/CAAaXfNot70mCbxKnbWKCeWMyJVSRf6hTU%2B6qsae8iSpOzy-Cgw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
