たまーにこんなのが残りつづけることあるんですよね。
maya再起動すれば消えるんですがー
これviewPortの孤立表示用のobjectSetなのですが、
何かの拍子にviewPortがなくなりobjectSetだけが居残ってしまってる感じです。
削除したい
ただ面倒なのが選択してdeleteしようとすると
Non-deletable node 'modelPanel8ViewSelectedSet' cannot be deleted.
このように拒否されます。
さてここで、気になるのが このobjectSetが属するviewportはどこ行った? ということですね。
聞いてみましょう。
modelPanel -q -exists modelPanel8;
// Result: 1 //
なるほど、見えていないだけでどこかには居ますね。
細かいことを気にしないのであれば・・・・ このパネルを削除してしまいますか。
deleteUI modelPanel8;
一応道連れにされて、modelPanel8ViewSelectedSet も消えました。
ですが、若干の不安と気持ち悪さが残ります。
案の定、他のviewPortを使うとちょろちょろワーニングが出ます。
もし 親windowなどが生きてるなら、それを表示させてしまえば・・・・
cmds.modelEditor("modelPanel8",q=True,p = True)
なにも帰って来ません。
であれば、いっそのこと windowを作り直し そこに modelPanelを乗せなおし、そのうえで孤立表示をoffにしてwindowごと削除してしまえばいいのでは?
import maya.cmds as cmds
def deleteModelPanelSet(panel):
if cmds.modelEditor(panel,exists = True) == False:
return
if cmds.modelEditor(panel,q=True,parent = True) != None:
return
if cmds.window('tmpWindow',exists =True):
cmds.deleteUI('tmpWindow')
window = cmds.window('tmpWindow')
mainLayout = cmds.formLayout(window)
cmds.modelEditor(panel,e=True,p = mainLayout)
cmds.formLayout(mainLayout, e=True,
attachForm=[(panel, "top", 0),(panel, "left", 0),
(panel, "bottom", 0), (panel, "right", 0)])
cmds.showWindow(window)
cmds.isolateSelect(panel,state = True)
cmds.isolateSelect(panel,state = False)
cmds.deleteUI(window)
deleteModelPanelSet("modelPanel8ViewSelectedSet".replace("ViewSelectedSet",""))
一瞬windowが表示されて消えました。modelPanel8ViewSelectedSetも消えてくれました。
window表示させていきなり cmds.isolateSelect(panel,state = False) でいけるかなと思ったんですが、
cmds.isolateSelect(panel,state = True) で一回明示的にONにした上で 改めてOFFにしないとダメでした。
