创建自定义菜单

  m = nuke.menu('Viewer')

  myMenu = m.addMenu('MyStuff')


  给菜单添加icon

  m = nuke.menu('Viewer')

  myMenu = m.addMenu('MyStuff', icon = 'ohu_icon.png' )



  创建自定义工具栏

  myToolbar = nuke.toolbar('My nodes')



  给toolbar添加item和给menu添加一样

  myToolbar.addCommand(‘My Gizmo’, lambda: nuke.createNode(‘NoOp’ ) )

  如果没给item指定toolbar,那将成为一个按钮:



  否则,item作为菜单项( 像默认工具栏那样):

  myToolbar.addCommand( 'My other Tools/tool A', lambda: nuke.createNode( 'NoOp') ) myToolbar.addCommand(' My Other tools/tool B', lambda: nuke.createNode('NoOp') )



  给menu添加icon,那就在创建前明确指定。

  myMenu = myToolbar.addMenu(‘My Gizmo’, icon= ‘ohu_icon.png’ )

  myMenu.addCommand( ‘tool A’, lambda: nuke.createNode(‘NoOp’))

  myMenu.addCommand(‘ tool B’, lambda: nuke.createNode(‘NoOp’))



  创建自定义菜单项

  给菜单添加自定义入口,请用menu.addCommand():

  nuke.menu(‘Nuke’).addCommand(‘MyMenu/my tool 1’, lambda:nuke.message(‘yay, it works’ ))

  注意:上面的例子中,我们创建了叫MyMenu的菜单



  利用lambda表达式创建的匿名函数要在菜单项调用时才执行,你可以将需要的命令打包进一个字符串:

  nuke.menu(‘Nuke’).addCommand(‘MyMenu/my tool 2’, “nuke.message(‘yay, it works too’)” )



  要设置菜单项的位置请使用index参数:

  nuke.menu(‘Nuke’).addCommand(‘MyMenu/my tool 1.5’, “nuke.message(‘yay, it works too’)”, index = 1 )



  通过名字找到菜单,并在前面添加一个分割线:

  m = nuke.menu('Nuke').findItem('MyMenu')

  m.addSeparator()

  nuke.menu('Nuke').addCommand('MyMenu/my tool 3', "nuke.message('yay, it works too')")



  找到已存在的menu 项,并运行其函数:

  m = nuke.menu(‘Nuke’).findItem(‘Edit/Node/Filename/Show’)

  m.invoke()

  停用菜单项:

  m = nuke.menu(‘Nuke’).findItem(‘Redner/Proxy Mode’)

  m.setEnable( False )



  注意,菜单虽然禁止了,但快捷键依然可用。

  绑定快捷键

  给已存在菜单绑定快捷键,你可以有效地取代整个菜单项

  给Axis2节点绑定快捷键。这个节点在Nodes菜单里(那就是,toolbar),在3D子菜单,其子项叫Axis。

  nuke.menu(‘Nodes’).addCommand(‘3D/Axis’, lambda:nuke.createNode(‘Axis2’ ), ‘a’ )

  现在键盘上的a就能创建Axis节点。



  当绑定快捷键时也可以修改. 用ctrl( mac上的 cmd) 作为修改:

  ctrl + 后跟键

  ~ 后跟键

  例如:

  nuke.menu('Nodes').addCommand('3D/Axis', "nuke.createNode('Axis2')", "ctrl+a')

  nuke.menu('Nodes').addCommand('3D/Axis', "nuke.createNode('Axis2')", "`a')

  用alt作为修改:

  alt+键

  # + 键

  nuke.menu( 'Nodes' ).addCommand( '3D/Axis', "nuke.createNode( 'Axis2' )", 'alt+a')

  nuke.menu( 'Nodes' ).addCommand( '3D/Axis', "nuke.createNode( 'Axis2' )", '#a')

  用shift作为修改:

  shift + 键

  + 后跟键

  nuke.menu( 'Nodes' ).addCommand( '3D/Axis', "nuke.createNode( 'Axis2' )", 'shift+a')

  nuke.menu( 'Nodes' ).addCommand( '3D/Axis', "nuke.createNode( 'Axis2' )", '+a')


  定义默认knob

  修改默认knob值,请使用nuke.knobDefault()

  nuke.knobDefalut('Blur.size', '77' )

  上面的代码将所有blur节点的size控制默认值设置为77

  当跳过节点类,新的默认值会应用到所有给定的控制上

  nuke.knobDefault( 'channels', 'rgba')

  上面的代码在节点创建时设置所有的channel为rgba。



,nuke教程,nuke技巧