Welcome to od|forum

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.

DannioMaundinio

Members
  • Content count

    5
  • Joined

  • Last visited

Community Reputation

2 Neutral

About DannioMaundinio

  • Rank
    Peon

Personal Information

  • Name
    Dan
  • Location
    London
  1. 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. 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. 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. 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. 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