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.


  • Content count

  • Joined

  • Last visited

  • Days Won


Community Reputation

69 Excellent


About Stalkerx777

  • Rank
  • Birthday 03/02/1984

Contact Methods

  • Skype alexx_houdini

Personal Information

  • Name Alex Rusev
  • Location Vancouver, Canada

Recent Profile Visitors

6,227 profile views
  1. Make sure the path is writeable Do not concatenate path strings manually, use os.path.join Maybe Houdini has a hard time writing to NAS drive. A quick workaround: save to a temp file, and then copy the file with Python (shutil module)
  2. 1. I've tried many times, but couldn't make it work. Need to ask SESI support how to use ACTION_ICONBUTTON gadget. 2. Yes: # Find the dialog by name ui = huilib.findDialog('test') if ui: # If found you can show(), hide(), and close() it ui.close() will close and delete the dialog ui = TestDialog(name='test', title='Test UI') ui.show()
  3. That is a long-standing "bug", if you didn't put import hou in hou.session module, it will work until first error (any python exception), once you get an error, hou module gets lost for some reason. So, just always do import hou.
  4. If you open Display Properties you can find there Visible objects field (Optimize Tab). The script above just puts the selected object names into this field with a help of Hscript function. If you want to hide primitives you have to play with visibility sop, there is no way to do that other than in sop context.
  5. Isolate Selection I wrote this many many years ago, still works Can put it on a hotkey or new radial menu. It's a toggle. When nothing is selected - it shows everything. import os def isolate(): sel = hou.selectedNodes() if not sel: sel_string = "*" else: sel_string = " ".join([n.name() for n in sel]) try: if hou.os.environ['CUR_ISOLATE'] == sel_string: sel_string = "*" except: pass hou.hscript('viewdisplay -G "%s" `run("viewls -n")`' % sel_string) os.environ['CUR_ISOLATE'] = sel_string
  6. Glad i could help
  7. I've tried some approaches, and this one seems to work reasonably fine: https://bitbucket.org/snippets/alexxbb/rnExn
  8. You have many options here, none of them are ideal though since not everything in Houdini is Qt yet: 1. To all your nodes in a scene add hou.Node.addEventCallback ( AppearanceChanged event type may work, or may not, I don't know). Pass your function or QWidget there, and hope this will work. A better approach would be to post a custom QEvent from there with QApplication::postEvent() and catch this event in your QWidget. Not that trivial, but definitely possible to do (at least in normal Qt app) 2. QApplication::installEventFilter. Put your filter there and see if you can catch something from Houdini. 3. hou.ui.addEventLoopCallback() poll your hou.selectedNodes() and see if selection changed. 4. Should be other ways...
  9. http://www.sidefx.com/docs/houdini16.0/hom/hou/Node setCurrent is there. hou.Parm.pressButton() if you want just fire up parameter callback. hou.Parm.parmTemplate().scriptCallback() to get callback string. hou.Node.type().hdaModule() to get python module object for that type.
  10. Seems like you have a layout problem somewhere. ScrollArea relies on its widget sizeHint(), read here: http://doc.qt.io/qt-4.8/qscrollarea.html#details
  11. I believe you need to add $HFS/houdini/python2.7libs to system's PATH variable if you're on Windows.
  12. It should be possible to do using Qt event system if you familiar with it. What you need to do is to install eventFilter to Houdini's QApplication instance, and catch QMouseEvent there. Quick untested code from the top of my head: app = QApplication.instance() class Filter(QObject): def eventFilter(self, event, **kwargs): if isinstance(QMouseEvent, event): if event.button() == Qt.RightButton: # DO stuff return super(Filter, self).eventFilter(event, **kwargs) app.installEventFilter(Filter())
  13. Python interpreter runs in the main Houdini thread, so anything you do in python will freeze Houidini UI. Depending on what are you trying to achieve, try Mouse CHOP Also, see hdefereval module which ships with Houdini.
  14. If you really need to run c++ callback you can try this: #include <HOM/HOM_Module> HOM_Module &hom = HOM(); HOM_playber &playbar = hom.playbar(); playbar.addEventCallback(...); P.S. Should work in theory, haven't tested it.