Node shifting makes me mad!

   1007   8   1
User Avatar
Member
28 posts
Joined: May 2014
Offline
I always try to keep my node network clear and snapped to the network grid, but every time when I create new node through a viewport it shifts all my nodes and makes a mess. As I suppose this occurs because the moveToGoodPosition() python function is launched. I can endure it no longer Is there any way to solve it? The option "Make Room for New Nodes" doesn't help
Edited by LuSkar - Oct. 9, 2023 10:35:09

Attachments:
image_2023-10-09_16-22-54.png (525.9 KB)

User Avatar
Member
172 posts
Joined: Aug. 2018
Offline
Is there any way to solve it?

Take a deep breath in. Hold it for a count of four. Breathe out slowly. Repeat. And consider the good parts of your day : )
User Avatar
Member
308 posts
Joined: Oct. 2016
Offline
Okay, I've tested this. Maybe just file a BUG/RFE.
Interested in character concepts, modeling, rigging, and animation. Related tool dev with Py and VEX.
User Avatar
Member
7537 posts
Joined: Sept. 2011
Offline
Hide the grid, problem solved
User Avatar
Member
308 posts
Joined: Oct. 2016
Offline
If you add your nodes from the Network Editor they don't move. However, when you add a node from the Scene View they move. It is a bug.

Edit: Well, I think it is intentional so not really a bug. However I do agree that it can be annoying. Sometime I’ve been wondering if my nodes are moving and now I know.
Edited by SWest - Oct. 10, 2023 02:26:20
Interested in character concepts, modeling, rigging, and animation. Related tool dev with Py and VEX.
User Avatar
Member
28 posts
Joined: May 2014
Offline
I do hope that the devs will notice that and fix with next Houdini version 🙃
User Avatar
Member
614 posts
Joined: Nov. 2013
Offline
You can disable MoveToGoodPosition():


import hou
def foo(obj,relative_to_inputs=True, move_inputs=True, move_outputs=True, move_unconnected=True):
    return

hou.session.__bak_moveToGoodPosition = hou.Node.moveToGoodPosition    
hou.Node.moveToGoodPosition = foo

If you want to restore:

import hou 
hou.Node.moveToGoodPosition = hou.session.__bak_moveToGoodPosition
User Avatar
Member
28 posts
Joined: May 2014
Offline
jerry7
You can disable MoveToGoodPosition():


import hou
def foo(obj,relative_to_inputs=True, move_inputs=True, move_outputs=True, move_unconnected=True):
    return

hou.session.__bak_moveToGoodPosition = hou.Node.moveToGoodPosition    
hou.Node.moveToGoodPosition = foo

If you want to restore:

import hou 
hou.Node.moveToGoodPosition = hou.session.__bak_moveToGoodPosition

Thanks a lot! It works properly!
User Avatar
Member
234 posts
Joined: July 2013
Offline
Instead of completely replacing it by an empty dummy function, you can also have the dummy function call the original one but with the move_unconnected / move_inputs arguments set to False. That way it should never move unconnected / upstream items.
More code, less clicks.
  • Quick Links