Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won


probiner last won the day on May 12 2019

probiner had the most liked content!

Community Reputation

80 Excellent


About probiner

  • Rank

Contact Methods

  • Website URL

Personal Information

  • Name
  • Location
    {0, 0, 0}

Recent Profile Visitors

2,154 profile views
  1. An expanded Merge SOP operation. Goes well with H18 "Copy to Points" to boot, but there's a lot of other small things that enables.
  2. One thing that throws me off the road with VEX is issues with operations not being overaloaded/able or not have the ability to drive the type cast of a variable. Kills abstractness and makes for some cumbersome code. I've used in the past a trick to get the variable assignment to be programmatically driven(float, vector...etc) instead of scooped in a sucession of else ifs that lead to duplicated code: if(caracteristic == 0){ float var = attrib(0,class, name, @elemnum) ; < code body> } else if(caracteristic == 1){ vector2 var = attrib(0,class, name, @elemnum) ; < code body> } else if(caracteristic == 2){ vector var = attrib(0,class, name, @elemnum) ; < code body> } .... .... .... Instead just have `chs("type")` var = attrib(0,class, name, @elemnum) ; < code body> Which will result in var being casted based on parameter, and also not being scoped and therefore no code duplication for each case. Now while seems great, I've noticed it takes way more time to cook than the else ifs way.- Therefore I was wondering if there is a way to do this driven variable assignment with preprocessors. The code still might look ugly but at least the execution part will be a single one for all types. #define var 100.0 This for example sets var as a float. But I wonder how I can inform it which variable type it should have. Thanks
  3. Loading Houdini Python modules into Code Issues

    You got this fixed? Adding "python.jediEnabled": false, And removing "python.autoComplete.preloadModules": ["hou"], Seemed to have fixed it for me. Cheers
  4. No, first I'm trying to figure out if there is already a way to mute them. If not then, yes, I shall RFE it.
  5. I would like to disable this prompt. Would be nice if warnings like this could be added to a info queue instead of halting operations. Thanks
  6. VOPs - output to @P.y.

    You could do a little asset Just connect P to Ramp and to the Y component. Only thing I don't see how to do is to have this setup support signatures for other data types, like vector2, matrix, etc. PRB_ReplaceComponent.hip
  7. Euler to orient-matrix inside dops.

    Bit corny, but cool
  8. There's ways to decompose/describe a vector - 3 coordinates (xyz) that scale the coordinate system unit vectors (ijk) and add them together: P = i*x + j*y + k*z. - direction (vector scaled to length 1) and legth/magnitude (distance from tail to head of the vector) - direction (two angles) and length And more... It's all about using the representation that is more sensible to the operation you are doing. For angular related calcs direction is handy, while for position calcs you want to deal with xyz, etc.
  9. @Atom I've been looking at Python in Houdini only recently, so I look forward to get more people's insight. Put it in any of the locations corresponding to $HOME, $HSITE, $HIP, $JOB inside a structure like {loocation}/{houdiniversion}/python2.7libs/ For example I have $HSITE at F:/HOUDINI/HSITE/ so I put the huilib.py in F:/HOUDINI/HSITE/houdini17.0/python2.7libs/ After this import huilib in the shelf tool Script field will be able to find it. As for running the examples, here I'm not so sure about the correct method, but what I've been doing is putting my scripts in a subfolder ../python2.7libs/PRB_HOM/ which contains an empty __init__.py and then call those scripts from the shelf with import. For example, I've put in said folder the example shipped with huilib, all_gadgets.py, while changing the script bottom part from: if __name__ == '__main__': ui = TestDialog(name = 'test', title = 'Test UI') ui.show() into def main(): ui = TestDialog(name = 'test', title = 'Test UI') ui.show() if __name__ == '__main__': main() And then in the shelf tool Script field I can do: from PRB_HOM import all_gadgets as tool reload(tool) tool.main() And this way it gets picked up. This is how I'm running my shelf tools in general, so I can store .py files in a repo and use an external editor and not have the scripts stored in the .shelf file. But I'm curious to know if this is "the proper" way to do it @Stalkerx777 or anyone! It would still be nice if we could work in the Parameter Editor and store that into a .ui file. Cheers PS: I failed to refresh the page and notice you guys already sorted it
  10. Thanks to @Stalkerx777 for his library: https://bitbucket.org/alexxbb/huilib/overview Really fits my needs here of having some simple options for something that is just to run once. @garf Indeed I'll go down that path for heavy lifting stuff. But atm that would be a rabbit hole for me. @kiryha Thanks for producing that! Sounds like it will be verbose for evolved things (maybe even more than what is being executed) and probably a good opportunity to get in to code generators.
  11. What't the easiest way to present a user with a set of options when running a python script from the shelf? Is there by chance a way to use the Parameter Interface Editor, save that, call it from the script commit, and use the information from it? I've used hou.ui.readInput for simple string inputs, but I don't want to make that pop one after the other for several options. Thanks
  12. Hi looking for any existing pointers about generating fibers to fill a volume and pushing things out. I'm wondering if I can avoid Vellum or sims. But seems unlikely at this point.. Cheers
  13. Change a curve basis in VEX?

    Thanks for the feedback @acey195 , I'm suspecting I'll have to RFE. Cheers