Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

Community Reputation

2 Neutral

About DannioMaundinio

  • Rank

Personal Information

  • Name
  • Location
  1. Gas Repeat Solver DOP

    This is great, thanks! I'm a little wary of it because I don't really understand why it works. The fact that it's doing extra substeps I figured is no problem as long as they are all sourced at the same time value... so I set these two expression on the timedelay and timeoffset parms, in order to offset the time back based on the repeat solver iteration number. $TIMESTEP/<number of sources> -ch("timedelay")*dopfield($DOPNET, $OBJID, "SolverParms/SolvePass", "Options", 0, "switch") Hopefully by doing that they'll all be sourced at the exact same time value, despite being in different substeps. Something else I noticed that seems odd is that it only does the first iteration of the repeat solver if 'solve on creation frame' is on, and the smoke object is being created on the first frame of the sim. Thanks for your help! Dan
  2. Gas Repeat Solver DOP

    Hi! I'm experimenting with the Gas Repeat Solver DOP and trying to use the SwitchValue data it gives to change some attributes upstream of it. I've attached a simple example to show. In the example I expect to get three spheres sourced using only one sourceVolume DOP. I'm printing the attributes that are hooked up to the dopfield data, and the shell shows that the attributes are changing correctly... however the sourceVolume only seems to be acting on the first sphere. Has anyone done this kind of thing before, am I missing something obvious that would stop this working? Cheers! Dan simpleExample_v001_t01.hip
  3. SopNode object is not iterable - python

    The extend function expects an iterable as it's argument. myBoxes[0] returns the SopNode object, rather than an iterable. You either need to change it to something like this: toDel.extend([myBoxes[0]]) or probably better to use this: toDel.append(myBoxes[0]) https://docs.python.org/2/tutorial/datastructures.html
  4. Updating menu items with python

    Thanks for your reply. I believe that paired list solution applies to the "Menu Script" for the parameter, as far as I can tell the .setMenuItems() function in python sets both the labels and item values unless labels are separately set with .setMenuLabels(). My problem was more to do with rebuilding menus to have different entries depending on the choice made in a separate parm. I tried to build a demo scene at home, but my machine wasn't playing ball. I did some more reading of the docs and found this on the ParmTemplateGroup page: So I guess I was approaching it in the wrong way. My method is now to build the menu parms as spare parms, rather than attempting to modify an existing asset parm, and that seems to be a happy solution... if a bit messy. Thanks! Dan
  5. Updating menu items with python

    Hi! I'm trying to find a way to read a config when a button is pressed, and update the available items in a menu parameter. I've tried a couple of methods, but haven't managed to get anything to work yet. First Attempt: target_menu_items = ["a", "b", "c"] menu_parm = node.parm("menu_parm") template = menu_parm.parmTemplate() template.setMenuItems(target_menu_items) The interface remains unchanged. Reading the docs that is understandable: So I tried what the docs recommended without any luck: ptg = node.parmTemplateGroup() menu_parm = node.parm("menu_parm") template = menu_parm.parmTemplate() template.setMenuItems(target_menu_items) ptg.replace("menu_parm", template) node.setParmTemplateGroup(ptg) I had some success by adding a line, but this isn't really a solution. template.setName("bahhumbug") I assume it's failing to replace the template if the name of the replacement template matches that of the existing one. I don't understand why that would be a problem though. I've had a thorough Google and can't find any examples of this... so I'm worried I'm approaching it the wrong way. Can anyone explain where I'm going wrong? Many many thanks in advance, Dan