Thanks very much for that.
Yes, that makes sense. In Geordie's original it says about the wildcard, I 
hadn't understood that bit but it makes sense now.
Thanks for pointing out the resetting error too
 

On Wednesday, August 8, 2012 2:17:48 PM UTC-5, Justin Israel wrote:
>
> What is probably happening is that the example assumes where will be a 
> wildcard * character in the name to replace.
> If there is not, such as name == "name", then it will always resolve to: 
>  "name" (nothing to replace).
> So each time it does the rename to the same thing, maya is incrementing 
> the name to something unique for you.
>
> Also, in your modified version, you are initializing your counter in the 
> same scope and resetting it each time. You probably wanted:
>
> num=1
> for s in sel:
>   newName = name + str(num)
>   s.rename(newName)
>   num+=1
>
>
> On Wed, Aug 8, 2012 at 10:33 AM, j00ey <[email protected] <javascript:>>wrote:
>
>> ps this is what I've come up with, seems to work, though it's a bit more 
>> long winded than your version
>>
>> def renamer(sel=None):
>> sel = sel or ls(sl=1)
>>  if not sel:
>>  informBox('ERROR','Nothing selected','OK')
>> return
>> else:
>>  name = promptBox('Renamer','Enter new name','OK','Cancel')
>> if not name:
>> return
>>  else:
>> for s in sel:
>> num=1
>> newName = name + str(num)
>>  s.rename(newName)
>> num+=1
>>
>> On Wednesday, August 8, 2012 1:20:38 AM UTC-5, Geordie Martinez wrote:
>>
>>> whoops change this line of code:
>>>
>>> FROM:
>>> name = promptForName()
>>> TO:
>>> name =  pm.promptBox('Enter Naming Scheme', "Enter:", "Okay" , "Cancel")
>>>
>>> On Tue, Aug 7, 2012 at 11:18 PM, Geordie Martinez 
>>> <[email protected]>wrote:
>>>
>>>>  Here is a pymel version of what you're trying to do. Maybe this can 
>>>> help you.
>>>>
>>>> import pymel.core as pm
>>>> def renameChain(items=None):
>>>>     """renames a joint chain based on asterisk as a wildCard """
>>>>     items = items or pm.selected()
>>>>     name = promptForName()
>>>>     if not name:
>>>>         return
>>>>     
>>>>     num = 1
>>>>     for item in items:
>>>>         newName = name.replace("*","%s"%num)
>>>>         pm.rename(item, newName)
>>>>         num += 1
>>>>
>>>>
>>>> On Tue, Aug 7, 2012 at 3:48 PM, j00ey <[email protected]> wrote:
>>>>
>>>>> Hi
>>>>>
>>>>> I'm learning some python, coming from a MEL background [though I'm no 
>>>>> expert in that either] and I'm trying to write a simple script to rename 
>>>>> a 
>>>>> number of objects according to a user input name. I've got it to work but 
>>>>> I 
>>>>> want it to test if there is no user input and if not [and the user didn't 
>>>>> press the cancel button] loop back and re-prompt for input.
>>>>>
>>>>> I was thinking something along the lines of this : 
>>>>> 1 - declare a procedure to do the renaming
>>>>> 2 - prompt dialog
>>>>> 3 - if the input is valid run the procedure, if not pop up a message 
>>>>> and ask whether to retry or cancel
>>>>> 4 - if retry, run the procedure again
>>>>>
>>>>> but I came unstuck and I can't find anything to do with declaring a 
>>>>> procedure in pymel. Can anyone help? Here's what I've written so far. 
>>>>> Thanks in advance
>>>>>
>>>>> ##############################**##############################**
>>>>> ##############################**####################
>>>>>
>>>>> #get selection
>>>>>
>>>>> sel=ls(sl=1)
>>>>>
>>>>> #get user input
>>>>> input = promptDialog(t='New 
>>>>> Name',b=['OK','Cancel'],db='**OK',cb='Cancel',ds='no 
>>>>> input')
>>>>>
>>>>> #set base number to 1
>>>>>
>>>>> x=1
>>>>>
>>>>> #test user input and if not empty string, rename selected objects
>>>>>
>>>>> if input=='OK':
>>>>> name=promptDialog(q=1, t=1)
>>>>>  if len(name) != 0:
>>>>> for s in sel:
>>>>> s.rename(name + str(x))
>>>>>  x+=1
>>>>> else:
>>>>> #if user has not input a valid string prompt to retry
>>>>>  message = confirmDialog(message ='Please enter a 
>>>>> name',b=['Retry','Cancel'],db=**'Retry',cb='Cancel',ds='**Cancel')
>>>>>  
>>>>> ##############################**##############################**
>>>>> ##############################**#################### 
>>>>>
>>>>>  -- 
>>>>> view archives: 
>>>>> http://groups.google.com/**group/python_inside_maya<http://groups.google.com/group/python_inside_maya>
>>>>> change your subscription settings: http://groups.google.com/**
>>>>> group/python_inside_maya/**subscribe<http://groups.google.com/group/python_inside_maya/subscribe>
>>>>>
>>>>
>>>>
>>>  -- 
>> view archives: http://groups.google.com/group/python_inside_maya
>> change your subscription settings: 
>> http://groups.google.com/group/python_inside_maya/subscribe
>>
>
>

-- 
view archives: http://groups.google.com/group/python_inside_maya
change your subscription settings: 
http://groups.google.com/group/python_inside_maya/subscribe

Reply via email to