用python个给maya写了个重命名插件

本文介绍了一款基于Maya的Python脚本,用于实现批量重命名功能。该工具提供了直观的用户界面,允许用户设置前缀、后缀、数字补位等参数,方便地对选择的对象进行重命名。代码中包含了窗口创建、输入处理和重命名逻辑,适用于Maya场景中大量对象的快速管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先看效果
在这里插入图片描述
代码如下

def gui():
    windowName = 'renameScriptWindow'
    windowTitle = '重命名1.0'
    
    try:
        cmds.deleteUI(windowName)
    except:
        pass
        
    cmds.window(windowName,title=windowTitle)
    
    cmds.columnLayout(adj=True)
    
    cmds.rowLayout(numberOfColumns=2,columnWidth2=(75,150),adj=2)
    cmds.text(l='name:')
    
    
    
    cmds.textField('renameTF')
    
    
    cmds.setParent('..')
    
    cmds.rowLayout(numberOfColumns=1,columnWidth3=(100,100,100))

    cmds.text(l="+:开头加前缀,+:结尾加后缀,+后缀*:加后缀和数字",backgroundColor=[0.4, 0.8, 0.9])
    cmds.setParent('..')
    
    
    cmds.rowLayout(numberOfColumns=2,columnWidth3=(75,100,100))
    cmds.text(l='Start&Pad:')
    cmds.textField('paddingTF',tx='1,3')
    cmds.setParent('..')
    cmds.rowLayout(numberOfColumns=1,columnWidth3=(100,100,100))

    cmds.text(l='start:从数字几开始    pad:使用几个数字来补位。',backgroundColor=[0.4, 0.8, 0.9])
    cmds.setParent('..')
    
    
    
    cmds.button(l='重命名吧',h=50,c='renewName()',backgroundColor=[0.4, 0.8, 0.1])
    
    cmds.window(windowName,e=True,w=300,h=1)
    cmds.showWindow(windowName)
    
def renewName():
    list_sel = cmds.ls(sl=True)
    str_input = cmds.textField('renameTF',q=True,tx=True)
    
    str_padding = cmds.textField('paddingTF',q=True,tx=True)
    str_starting,str_padding = str_padding.split(',')

    str_number = str_starting.zfill(int(str_padding))

    for name_l in list_sel:
        
        name_s = name_l
        if '|' in name_l:
            name_s = name_l.rsplit('|',1)[1]
            
        str_editer = str_input
        new_number = str_number
        if '*' in str_input:
            import string
            name_s = name_s.rstrip(string.digits)
            str_editer = str_input.replace('*',str_number)
            new_number = ''

        
        if ',' in str_input:
            search,replace = str_editer.split(',')
            if search in name_s:
                new_name = name_s.replace(search,replace)
                cmds.rename(name_l,new_name)
                
        elif '+' in str_input:
            buffer = str_editer.split('+')
            if buffer[0] == '':
                new_name = name_s + buffer[1]
            elif buffer[1] == '':
                new_name = buffer[0] + name_s
            cmds.rename(name_l,new_name)

        else:
            cmds.rename(name_l,str_editer + new_number)
            
        str_number = str(int(str_number)+1).zfill(int(str_padding))
gui()
renewName()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值