Yea, your version was problematic for me when I tested it, because each
time the decorator is used, it would run the last command again. Not ideal.
Best to keep them separated. One is a decorator. One is a private function
that runs the last cached command.

On Tue, May 26, 2015 at 12:04 AM Rémi Deletrain <[email protected]>
wrote:

> I deliberately remove the possibility of catche an exception to see the
> various error. The problem of try / except it is difficult to debug with
> that.
>
> If I understand what you say. The problem in my code is to combine repeat
> and callback into a single function.
> So if I repeated my command I also repeated the decorator. I am wrong?
>
> If that's right, I did a test with a print in my wrapper. When I apply my
> command once it print correctly. But when I apply the repeat (G key) my
> print is not enabled.
> So I guess it does not raise the decorator but just my command.
>
>
>
> This will be useful for repeated small script like that one. It's not my
> script completely, just a tip for you to try:
>
>
> import pymel.core as pmc
> from path import yourDecorator
>
> class MyClass():
>
>     #   Snap Position
>     @classmethod
>     @decorator.undo_chunk
>     @decorator.repeat_command()
>     def snap_position(cls, driver=None, driven=None, position=True,
> rotation=True, space='world'):
>
>         #   Get Selection
>         if driver is None:
>             driver = pmc.selected()[0]
>         if driven is None:
>             driven = pmc.selected()[1:]
>
>
>         #   Get Position
>         world_position = driver.getTranslation(space=space)
>         world_rotation = driver.getRotation(space=space)
>
>
>         #   Set
>         for MNode in driven:
>
>             if position is True:
>                 MNode.setTranslation(world_position, space=space)
>
>             if rotation is True:
>                 MNode.setRotation(world_rotation, space=space)
>
>
>
> I did not even try on large script. But he'll have to do it to see if it
> still works properly or not.
>
> --
> 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/8c4690d9-7689-474c-92dc-89db526034b9%40googlegroups.com
> <https://groups.google.com/d/msgid/python_inside_maya/8c4690d9-7689-474c-92dc-89db526034b9%40googlegroups.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/CAPGFgA2gnF8KxuwCx27sJPgW-yft2FL2XfWnG2M5A4tg4Tbd1A%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to