我正在重命名腳本,但我遇到了一些麻煩,我的 搜索和替換功能。重命名失敗重複對象
實際上,只要層次結構中沒有同一對象的重複,該功能就可以工作。例如,如在附接所描繪的,locator1 和locator2從頭創建的,而locator3是從 locator2
一個複製如果我在它們的短名稱,以顯示它們,它是如下: locator1 locator2 locator2 | locator3
所以如前所述,當我試圖詞「定位」替換爲「點」,在 重命名適用於定位器1和2,但是當涉及到locator3,我得到了 錯誤RuntimeError: No object matches name
因此,我在想,如果有對我來說,重新編寫一個更好的辦法,事業 情況下,像在建模,其中的藝術家複製的對象並再次 過或使用實例..
我知道這是因爲短名本身,但是有可能繞過嗎?
def searchReplace(self):
wordSearch = str(self.searchTxt.text())
wordReplace = str(self.replaceTxt.text())
objCnt = cmds.ls(sl=True, sn=True)
if len(objCnt) == 0:
self.searchTxt.clear()
self.replaceTxt.clear()
cmds.warning('Nothing is selected')
else:
for wordString in sorted(objCnt):
if wordSearch in wordString:
newWordString = wordString.replace(wordSearch, wordReplace)
cmds.rename(wordString, newWordString)
self.searchTxt.clear()
self.replaceTxt.clear()
print '%s' %wordString + " has changed to : " + "%s" %newWordString
我認爲詞法排序是足夠這種情況下,對長名稱進行排序(objCnt,reverse = True)應該具有相同的效果。 OP的長名 – theodox
上的wordString.split(「|」)[ - 1]可以得到短名稱,你是絕對正確的。編輯 – mhlester