[Closed] Script Request: Double Click to select Edge Loop/Ring
Hi people
I´m not sure if this one exists, but since it is a cool feature of Modo i think this should be on 3dsmax. It is simple as a pencil, just double click on an edge to select its associated edge loop. Do not know if modo does this too, but for example, Ctrl+double click could select edgering instead of edgeloop.
Of course, shift+double click adds the selection to the previous one
Can this be maxscripted?
Thanks!!!
This shouldn’t be too hard to do… just requires some timing of the mousePoint function.
I don’t think you can make a “passive” script like this, ie. A script that is always running, then when you double click an edge it does it’s thing.
It can be made into an “active” script though, where you press a shortcut key and then you enter a “Double-Click-EdgeLoop-Mode”, which kind of defeats the purpose.
I see that the “editable poly” plugin is available for editing in the sdk, so it may be possible to make a modification to it to add this functionality.
I may be able to implement this soon, it seems straight forward enough (he said expecting all hell to break loose 😈 )
Watch this space.
Edit: Not as simple as I thought, but I’ll keep on trying
Hey Wahooney, if you can’t do it, then it is impossible
Thanks a lot for Spline Cagify and Renamify, i use both a lot
Please stop, my ego is already on the verge of popping :surprised I didn’t have a chance to look at it last night but I’ll try again.
It is possible to do.
But it would be somewhat cpu intense, so could cause trouble.
I have some ideas for similar tools, that could work with double click etc, what more tools woulde be useful that would work in similar ways like this?
/Andreas
Sort of scriptable. Double-click is tricky for many reasons.
Single-click with SHIFT key pressed for example is much much easier to implement.
Unfortunately, getting both EdgeRing and EdgeLoop into the same setup is not so easy, as the Control and Alt key are already used by Max during edge selection, so the only key left is SHIFT.
Here is a quick prototype:
fn defineShiftLoopCallbacks theObject =
(
deleteAllChangeHandlers id:#SHIFTedgeLoop
if theObject != undefined then
(
when select theObject changes id:#SHIFTedgeLoop do
(
if selection.count == 1 and subObjectLevel == 2 then
(
if keyboard.SHIFTpressed do
(
if keyboard.ALTpressed then
try((modPanel.getCurrentObject()).buttonOp #SelectEdgeRing)catch()
else
try((modPanel.getCurrentObject()).buttonOp #SelectEdgeLoop)catch()
)
)
)
)
)
callbacks.removeScripts id:#SHIFTedgeLoop
callbacks.addScript #selectionSetChanged "defineShiftLoopCallbacks $" id:#SHIFTedgeLoop
*Copy this script into a new script file and save it under Scripts/Startup so it gets loaded when you launch Max.
*Launch Max.
*Create some objects, convert to EditablePoly
*Select on of the objects, for example a Sphere
*Go into Edge mode
*Click or Ctrl-Click an Edge – should work as usual
*Hold down SHIFT and Click an edge – the whole Loop should be selected
*Click another edge with SHIFT pressed – the previous will be deselected, the new one will be selected
*Press both Ctrl and SHIFT and click yet another edge – the old and the new Loops should be selected, and you can keep on adding loops
*Press both Alt and SHIFT and click one of the already selected edges – EdgeRing should be executed for the current selection
*Release SHIFT and keep on working as before.
*Go out of Edge SO level, select another object, go to SO Level.
*You can use the tool in that object now.
LIMITATIONS:
*Does not work with Edit_Poly. It looks like changing selection in Edit_Poly does not trigger the callback… Looking into it.
*If you created a SINGLE EdgeLoop and SHIFT+ALT+Click one of the selected edges, the EdgeRing created will be missing that segment for obvious reasons. The solution is to either select TWO parallel Loops before doing the Ring (the second one will take care of the missing segment); or do SHIFT+Click to select one Loop, SHIFT+Alt to select Ring wihtout a segment, SHIFT+Ctrl+Click the missing segment to close all loops; or simply press the Ring button in the Modifier panel!