Multi select in the curve SOP for 2018... please?

   3121   9   5
User Avatar
Member
517 posts
Joined: Dec. 2013
Offline
Hi SideFX!

It would be really nice if it was possible to multi select in the curve sop. Is there any chance something like that could make it into a future release of Houdini? It's just that when you are laying down a curve for modelling it's sometimes handy to be able to grab a bunch of points and move them around.
Say if you created a curve then wanted to move the whole thing up a little, at the moment you can either select each point individually and to the same transform (crazy) or add an edit sop but, that stops you from being able to add points to the original curve so if you get 90% of the way there but then realise you have to add a point, you have to start over again.

It would just be really handy.

Thanks,
Pete
User Avatar
Member
146 posts
Joined: Sept. 2011
Offline
Agreed. It's a pain at the moment. Have you logged this as an RFE? If not –> https://www.sidefx.com/bugs/submit/ [www.sidefx.com]
User Avatar
Member
555 posts
Joined: Feb. 2017
Offline
but………….you can do it at the moment…am I missing something here ?

ahh…ok, it's got an Edit node added…
Edited by vusta - Jan. 8, 2018 18:34:08
User Avatar
Member
7726 posts
Joined: Sept. 2011
Offline
I wouldn't get your hopes up. Moving the points is part of the nodes state, which doesn't use a selection. Selecting points won't do anything since the state is only capable of moving one point at a time. A more probable tool would be to ask for a way to add points to a curve interactively after an edit, or to even do this with an edit node.
User Avatar
Member
517 posts
Joined: Dec. 2013
Offline
I'd be cool with that!
At the moment there just isn't really a flexible workflow for it and I think putting down a curve to work with shouldn't require too much planning
User Avatar
Member
897 posts
Joined: July 2018
Offline
A insert point node would be nice regardless! But it asks a question on how we select a point on a curve in the viewport that insert point should use? Failing this and people might stay with the current aproach.
B.Henriksson, DICE
User Avatar
Member
620 posts
Joined: Nov. 2013
Online
2019… please?
User Avatar
Member
517 posts
Joined: Dec. 2013
Offline
C'mon SideFX!
Even if it's a long way off, I'd love to know if this is on their radar.
Just give us some hope that future generations will be able to manipulate curves without a massive amount of planning
User Avatar
Member
648 posts
Joined: July 2005
Offline
yeah had this experience recently:

draw curves in curve multiple curve sops,
merge curves,
edit using edit sop to get multiselect,
skin,
notice I need extra detail somewhere,
delete edit sop, add the points in curve sops,
add new edit sop and redo all the editing.

I could use carve to insert points and append another edit, but that feels wrong; I want to be able to alter things at their source without breaking anything downstream.
Ideally I should be able to create multiple curves and multi-select in the curve sop… confine destructive modelling to the one source node.
User Avatar
Member
132 posts
Joined: July 2007
Offline
This is a poor substitute for a true fully-functional-multi-select Curve sop….
But below is a python script (“Curvify Edits”) I wrote that you can copy-paste into a shelf tool that is meant to be run when you're editing curves.
If you've multi-selected and are now editing your curve via an Edit SOP, it will copy all the point changes back into the Curve sop above it and delete the Edit SOP. Hit enter to insert or modify points or “s” to start selecting multiples again, laying down another Edit…which you can then Curvify later. I've bound it to a keyboard shortcut which makes it a decently smooth workflow.
It assumes you have a Curve sop followed by an Edit. It's nothing fancy, but it works for me and has alleviated much aggravation from my life.

def curvifyEdits(selectedNodes):
    if len(selectedNodes) < 1:
        return
    editNode = selectedNodes[0]
    selectedType = editNode.type().name()
    if selectedType != "edit" or len(editNode.inputs()) < 1:
        return 
    curveNode = editNode.inputs()[0]
    newPts = editNode.geometry().points()
    parmString = ""
    for pt in newPts:
        parmString += "%f, %f, %f "%(pt.position()[0], pt.position()[1], pt.position()[2])
    curveNode.parm("coords").set(parmString)
    editNode.destroy()
    curveNode.setCurrent(True, clear_all_selected=True)
  
curvifyEdits(hou.selectedNodes())
Edited by Len - July 20, 2020 23:42:57
  • Quick Links