Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won


Stalkerx777 last won the day on July 16 2018

Stalkerx777 had the most liked content!

Community Reputation

111 Excellent


About Stalkerx777

Contact Methods

  • Skype

Personal Information

  • Name
    Alex Rusev
  • Location
    Vancouver, Canada

Recent Profile Visitors

8,448 profile views
  1. H17 Introduced a new Python API for the viewport (Python states), this is a way to go if you need viewport interaction. If you want to catch an event in the whole Houdini app, then the trick I posted above should work, however, keep in mind, it must run in the main thread. Pretty much every place from which you can start Python code in Houdini will put it in the main thread, EXCEPT the Python shell - it runs in its own thread.
  2. I've done something similar recently. You've picked the right way - by implementing an HScript command. The UI part is much simpler to implement with Qt though.
  3. Detecting incomplete node definitions in python

    Try to get a definition instance (node.type().definition()) and call some methods of it. I'm pretty sure you'll get an exception somewhere and so try-except would be your answer. As for auto detect, see 456.py startup file, where you could iterate over all node types and check their definitions (see hou.hda.loadedFiles() example in the docs).
  4. [PYTHON] Getting current frame over network using rpyc

    I work with hrpyc every day and haven't seen such a problem before. Consider this as a bug and report to SideFx. As a workaround try hou.hscript("fcur").
  5. Beginner's problem in compiling

    If you don't have skills and experience in c++ compilation and build systems such as Make or Cmake, just stick to hcustom, it's there for a reason.
  6. Seems like what you want is a semi-dynamic menu, which gets updated on request. You can do something along those lines: In the menu script: return hou.phm().my_menu_values(kwargs['node']) In your PythonModule: LIST_DIR = False def my_menu_values(node): if not node.cachedUserData('menu_values'): node.setCachedUserData('menu_values', read_dir_or_something()) if LIST_DIR: node.setCachedUserData('menu_values', read_dir_or_something()) return node.cachedUserData('menu_values') Then in your button callback: kwargs['node'].phm().LIST_DIR = True # force menu to cook kwargs['node'].parm('my_menu').menuItems() kwargs['node'].phm().LIST_DIR = False P.S. Untested
  7. Without looking into that classes, I would assume that UT_JSONValueMap->append() takes ownership of its contents and deleting rootMap also deletes the floatV data, and so you're getting a "double free" error. See if UT_JSONValueMap owns the values and if so, you don't need to delete floatV yourself.
  8. Force python sop NOT to cook

    How about just adding a control parm to the node and set it to True when you want it to cook. Or use hou.Node.userData for that matter. if node.evalParm('cook?'): # Yes please
  9. HOM from shell in macOS

    Don't complicate life, just use the Hython interpreter unless you absolutely must stick to system's Python.
  10. access menu item

    No there is no way to do that unless you build XML files with Python before Houdini initialize.
  11. Creating ALIAS for launching houdini

    alias houdini_run='cd /opt/hfs16.5.595; source houdini_setup >> /dev/null; cd - >> /dev/null; env PATH=/home/jim/yt-conda/bin:/home/jim/yt-conda/sbin:$PATH houdini'
  12. PySide to PySyde2 UI

    It's true that official release does not provide Python2.7 binaries for windows: https://download.qt.io/official_releases/QtForPython/pyside2/
  13. PySide to PySyde2 UI

  14. Progress Bar in a User's Property Page

    What is a "user defined property page"?
  15. Set Script to Existing Button

    Right, here is a working solution: n = hou.node('/obj/geo1') ptg = n.parmTemplateGroup() pt = ptg.find('myParm') pt.setScriptCallback('print 123') pt.setScriptCallbackLanguage(hou.scriptLanguage.Python) ptg.replace('myParm', pt) n.setParmTemplateGroup(ptg)