(MEL) attrFieldSliderGrp -step flag doesnt fully work

(MEL) attrFieldSliderGrp -step flag doesnt fully work

absoluteKelvin
Collaborator Collaborator
1,043 Views
4 Replies
Message 1 of 5

(MEL) attrFieldSliderGrp -step flag doesnt fully work

absoluteKelvin
Collaborator
Collaborator

 

window -title "Attr Field Slider Groups";
    string $objName[] = `sphere`;
    columnLayout;
    attrFieldSliderGrp -min -10 -max 10 -step 2 -at ($objName[0]+".tx");
showWindow;

 

 

using the mel example from doc with -step flag set to 2 increments. Only works when ctrl + middle click is held. just dragging the slider doesn't increment at 2.

 

According to documentation this is suppose to work.

https://help.autodesk.com/cloudhelp/2020/ENU/Maya-Tech-Docs/Commands/attrFieldSliderGrp.html 

 

-step(-s)           float                C Q E

Sets the increment for both the slider and float field.

https://www.artstation.com/kelvintam
0 Likes
Accepted solutions (1)
1,044 Views
4 Replies
Replies (4)
Message 2 of 5

absoluteKelvin
Collaborator
Collaborator

i have been searching and found a workaround. but cant seem to get it to run properly

 

{
   string $window = `window -title "intSliderGrp Example"`;
   string $slider = ($window + "Slider");
   int $step=3;
   columnLayout -columnAlign "right";
      intSliderGrp -l "Even" -f 1 -step $step -fs $step
         -cc ("intSliderGrp -e -v ((intSliderGrp -q -v "+$slider+") - (fmod(float(intSliderGrp -q -v "+$slider+"), "+$step+"))) " + $slider)
         $slider;
   showWindow;
}
// Error: Line 1.53: Invalid use of Maya object "v". // 

 

any ideas?

https://www.artstation.com/kelvintam
0 Likes
Message 3 of 5

Rourker27
Contributor
Contributor

Well you are using fmod here and you are using an intSliderGrp. You won't need to cast your ints as floats to use fmod with if you use an integer modulo (%). I did look at the -step flag, and as you say, it isn't working properly.

This is a pretty hacky work around for it and it is similar to what you are trying to do:

string $window = `window -title "intSliderGrp Example"`;
string $slider = ($window + "Slider");

proc stepChange()
{
    int $step=3;
    int $changeNum;
    $sliderVal = `intSliderGrp -q -v slider`;
    print($sliderVal);
    if ($sliderVal % $step != 0)
    {
        $changeNum = $sliderVal - $sliderVal % $step;
        intSliderGrp -e -v $changeNum slider;
    }
}

columnLayout -columnAlign "right";
   intSliderGrp -l "Even" -f 1 -step $step -fs $step -cc stepChange slider;
showWindow;



Message 4 of 5

absoluteKelvin
Collaborator
Collaborator
Accepted solution

thanks for that. Rourker27.

end up with this using your suggestion.

{
string $window = `window -title "intSliderGrp Example"`;
global string $slider;
$slider = ($window + "Slider");

proc stepChange()
{
    int $changeNum;
    $sliderVal = `intSliderGrp -q -v $slider`;
    //print($sliderVal);
    if ($sliderVal % 2 != 0)
    {
        $changeNum = $sliderVal + ($sliderVal % 2);
        intSliderGrp -e -v $changeNum $slider;
    }
}

columnLayout -columnAlign "right";
   intSliderGrp -l "Even" -f 1 -step 2 -fs 2 -cc stepChange $slider;
showWindow;
}

 

https://www.artstation.com/kelvintam
0 Likes
Message 5 of 5

Rourker27
Contributor
Contributor

Looks good to me, I doubt you need the -step and -fs flags, but they aren't doing anything anyway so no harm I guess. I hope this gets a proper fix at some point.

0 Likes