Here I am!

I adjusted my script, and I'd like for you to give it a go. It is a set of 
tools for node renaming purposes. It has a Help section which should cover 
all the information needed to use it. The short version of it is that it 
works on the assumption of having a parent_child naming convention and aims 
to rename all the nodes in the hierarchy using such rule.

If you have the time, I'd like for you to test it out and give me some 
feedback regarding the UI, the tools and the overall usefulness. It would 
be really appreciated! It is kind of long, so don't waste too much time on 
the coding part.

You'll find it here: http://pastebin.ubuntu.com/7814931/

Cheers!




On Tuesday, 15 July 2014 17:54:27 UTC+2, Gabriele Bartoli wrote:
>
> Hello there.
>
> This is what I'd like to achieve: let's say I have a script that I saved 
> as testScript.py, and it is located in the scripts folder, so that Maya can 
> find it. I want to add an icon to my custom shelf which, instead of running 
> the code of script, "loads" the script file and runs it. This would allow 
> me to edit the script and avoid substituting the code inside the custom 
> shelf icon.
> Here is a code example:
> # Load maya commands module
> import maya.cmds as mc
>
> # This prevents multiple windows to pop up
> if mc.window("myWindow", ex=True):
>     mc.deleteUI("myWindow", window=True)
>
> # Window set-up
> mc.window("myWindow",title="Test Window", s=False, wh=(300,100))
> mc.columnLayout(adj=True)
> toggle_test = mc.checkBox(label = 'Toggle me!', value = False)
> mc.button(l="Press to print the value of the checkbox below", w=300, h=100
> ,
>           command = 'printIt()'
>           )
> mc.showWindow("myWindow")    
>     
>
> # Print the value
> def printIt():    
>     
>     # Query toggle status
>     var = mc.checkBox(toggle_test, query = True, value = True )
>     
>     # Print the status
>     print "Checkbox's status is:", var
>
> The code runs fine if selected and executed in the script editor. I 
> created a shelf button with the following code:
> import testScript
>
> reload (testScript)
>
> After restarting maya, or deleting the global instance of the printIt 
> function, if I click on the shelf button the script runs and the UI is 
> shown. If I then click on the UI button, I get the following error:
>
> # Error: NameError: file <maya console> line 1: name 'printIt' is not 
> defined #
>
> Ok, I get what is happening. The button press is running the code 
> 'printIt()', but the function has not been imported in global space (I 
> might be throwing wrong terms around a bit, please correct me if that 
> happens) and it can't be found.
>
> I am willing to edit the script, but I want it to work both by importing 
> it or running it from the script editor. First option is to edit the shelf 
> button code to:
> from testScript_01 import *
>
> import testScript
>
> reload (testScript)
>
> This seems to work fine, but as I understand is not the suggested way of 
> solving the problem.
>
> I could also edit 
> command = 'printIt()'
> to
> command = 'testScript.printIt()'
>
> but this would have to side effects: first, if the script file is renamed 
> or imported as something else, the function would not work anymore. Second, 
> running the code inside the script editor would not work anymore.
>
> So, any idea on how I could fix this issue? Is there a way I could feed 
> the proper filename to the code?
>
> Something like:
>
> import testScript
>
> reload (testScript)
> # Add a line of code that feeds the string 'testScript' to the imported 
> module
> that then could be used inside the script as:
> # Declare var for fed string
>
> input_string = #fed string
>
> ...
>
> command = input_string + '.printIt()'
>
> Hopefully I managed to explain the issue properly :P
>
> Thanks in advance!
>

-- 
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/d857e3a5-c027-4a79-b67d-b15ad2ac1a9b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to