Worked without any problems on another version of Nuke. Thanks :).

2012/5/3 Simon Björk <[email protected]>

> Thanks for taking a look at it Nathan, I will see if I can give it a try
> in a newer version. Thanks for the code clean-up as well, great help.
>
> 2012/5/2 Nathan Rusch <[email protected]>
>
>>   Hmm, I still can’t get it to crash...
>>
>> Is there any way you can try this with the latest version of Nuke to see
>> if it’s possibly related to a past bug?
>>
>> As far as your code goes, it works fine. The only changes I would be sure
>> to make (without getting too picky) are some order-of-operations things and
>> some re-use of variables.
>>
>>
>> from __future__ import with_statement
>> import re
>> import nuke
>>
>> blurPrefix = 'sg_blur'
>> mergePrefix = 'sg_merge'
>> nameRE = re.compile('^(%s|%s)' % (blurPrefix, mergePrefix))
>>
>> def test():
>>     tn = nuke.thisNode()
>>
>>     for name, knob in tn.knobs().iteritems():
>>         if nameRE.search(name):
>>             tn.removeKnob(knob)
>>
>>     with tn:
>>         for a in nuke.allNodes('Blur') + nuke.allNodes('Merge2'):
>>             if nameRE.search(a.name()):
>>                 nuke.delete(a)
>>
>>         for i in range(1, tn['number'].value() + 1):
>>             blurName = '%s%d' % (blurPrefix, i + 100)
>>             nuke.createNode('Blur', 'name %s' % blurName, inpanel=False)
>>
>>             k = nuke.Link_Knob('%s%d' % (blurPrefix, i), 'blur %d' % i)
>>             k.makeLink(blurName, 'size')
>>             tn.addKnob(k)
>>
>>             mergeName = '%s%d' % (mergePrefix, i + 100)
>>             nuke.createNode("Merge2", 'name %s' % mergeName,
>> inpanel=False)
>>
>>             k = nuke.Link_Knob('%s%d' % (mergePrefix, i), 'merge %d' % i)
>>             k.makeLink(mergeName, 'mix')
>>             tn.addKnob(k)
>>
>>
>> -Nathan
>>
>>
>>  *From:* Simon Björk <[email protected]>
>> *Sent:* Wednesday, May 02, 2012 1:08 PM
>> *To:* Nuke Python discussion <[email protected]>
>> *Subject:* Re: [Nuke-python] Re: Adding/Removing knobs and crashing
>>
>> Hi Nathan,
>>
>> attached is a Nuke script that contains a group node with a python button
>> and a sticky-note that contains the Python script. Just save it in your
>> Nuke path.
>>
>> This seems to work a little bit better than my full script, but it still
>> crashes a lot. It crashes for example if I set it above 10 and also often
>> when I set it back to 1. In my full script I have a couple of more loops
>> that does other things (set inputs, moves node around to x,y pos). I'm
>> pretty new to Python so I would very much appreciate a nod in the right
>> direction on this (the only reason I got this far is because of this list).
>> Thanks.
>>
>>  #! C:/Program Files/Nuke6.3v2/Nuke6.3.exe -nx
>> version 6.3 v2
>> define_window_layout_xml {<?xml version="1.0" encoding="UTF-8"?>
>> <layout version="1.0">
>>     <window x="0" y="22" w="1680" h="1024" screen="0">
>>         <splitter orientation="1">
>>             <split size="1052"/>
>>             <splitter orientation="1">
>>                 <split size="40"/>
>>                 <dock id="" hideTitles="1" activePageId="Toolbar.1">
>>                     <page id="Toolbar.1"/>
>>                 </dock>
>>                 <split size="1008"/>
>>                 <splitter orientation="2">
>>                     <split size="480"/>
>>                     <dock id="" activePageId="Viewer.1">
>>                         <page id="Viewer.1"/>
>>                     </dock>
>>                     <split size="479"/>
>>                     <dock id="" activePageId="DAG.1">
>>                         <page id="DAG.1"/>
>>                         <page id="Curve Editor.1"/>
>>                         <page id="DopeSheet.1"/>
>>                     </dock>
>>                 </splitter>
>>             </splitter>
>>             <split size="608"/>
>>             <dock id="" activePageId="Properties.1">
>>                 <page id="Properties.1"/>
>>                 <page id="Script Editor.1"/>
>>             </dock>
>>         </splitter>
>>     </window>
>> </layout>
>> }
>> Root {
>> inputs 0
>> name C:/Users/Simon/Desktop/to_nuke_list.nk
>> fps 25
>> format "1920 1080 0 0 1920 1080 1 HD"
>> proxy_type scale
>> proxy_format "1024 778 0 0 1024 778 1 1K_Super_35(full-ap)"
>> }
>> StickyNote {
>> inputs 0
>> name StickyNote1
>> label "from __future__ import with_statement\nimport os\nimport
>> nuke\nimport nukescripts\nimport re\n\ndef test():\n\n    n =
>> nuke.thisNode()\n    blur_name = \"sg_blur\"\n    merge_name =
>> \"sg_merge\"\n    blur_reg = re.compile(blur_name)\n    merge_reg =
>> re.compile(merge_name)\n\n    # Delete knobs\n    for b in
>> n.knobs():\n        if blur_reg.match(b) or
>> merge_reg.match(b):\n            n\[b].setValue(0)\n
>> nuke.message( str(n\[b].value()) )\n
>> n.removeKnob(n.knobs()\[b])\n\n    # Access nodes inside group:\n    with
>> n:\n\n        # Delete old nodes.\n        for a in
>> nuke.allNodes():\n            old_name = a\[\"name\"].value()\n
>> if blur_reg.match(old_name) or merge_reg.match(old_name):\n
>> if a.Class() == \"Merge2\" or a.Class() == \"Blur\":\n
>> nuke.delete(a)\n\n        # Set up values.\n        num =
>> n\[\"number\"].value()\n\n        for i in range(num):\n\n            #
>> Create blur\n            b = nuke.createNode(\"Blur\")\n
>> b\[\"name\"].setValue(blur_name + str(i + 100)) \n\n            # Create
>> blur knobs\n            k = nuke.Link_Knob( blur_name + str(i + 1)
>> )\n            k.makeLink(str(b\[\"name\"].value()), \"size\"
>> )\n            k.setLabel( \"blur\" + str(i + 1) )\n
>> n.addKnob(k)\n\n            #Create merge node.\n            m =
>> nuke.createNode(\"Merge2\")\n            m\[\"name\"].setValue(merge_name +
>> str(i + 100))\n\n            # Create merge knobs\n            e =
>> nuke.Link_Knob( merge_name + str(i + 1) )\n
>> e.makeLink(str(m\[\"name\"].value()), \"mix\" )\n            e.setLabel(
>> \"merge\" + str(i + 1) )\n            n.addKnob(e)\n            "
>> xpos 216
>> ypos -253
>> }
>> Group {
>> inputs 0
>> name Group1
>> xpos -32
>> ypos 7
>> addUserKnob {20 User}
>> addUserKnob {3 number l "number of loops"}
>> number 3
>> addUserKnob {22 run_script l "run script" T "import
>> to_nuke_list\n\nto_nuke_list.test()" +STARTLINE}
>> }
>> Input {
>>   inputs 0
>>   name Input1
>>   xpos 132
>>   ypos -89
>> }
>> NoOp {
>>   name NoOp1
>>   xpos 132
>>   ypos -49
>> }
>> Output {
>>   name Output1
>>   xpos 132
>>   ypos 51
>> }
>> Blur {
>>   inputs 0
>>   name sg_blur100
>> }
>> push 0
>> Merge2 {
>>   inputs 2
>>   name sg_merge100
>> }
>> Blur {
>>   name sg_blur101
>> }
>> push 0
>> Merge2 {
>>   inputs 2
>>   name sg_merge101
>> }
>> Blur {
>>   name sg_blur102
>> }
>> push 0
>> Merge2 {
>>   inputs 2
>>   name sg_merge102
>>   selected true
>> }
>> end_group
>> Viewer {
>> frame 1
>> viewerProcess rec709
>> input_process false
>> name Viewer1
>> xpos -107
>> ypos 430
>> }
>> StickyNote {
>> inputs 0
>> name StickyNote2
>> label "Save this script in your Nuke-path. Name: to_nuke_list.py"
>> note_font_size 21
>> xpos 128
>> ypos -327
>> }
>>
>>
>> _______________________________________________
>> Nuke-python mailing list
>> [email protected], http://forums.thefoundry.co.uk/
>> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
>>
>>
>
_______________________________________________
Nuke-python mailing list
[email protected], http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python

Reply via email to