Apparently the 3rd dimension of the MD Slider in Grasshopper is non-functional. Does anyone know of a plug-in that would allow me to set 3 values from one control?
thanks,
Joe
Thanks, but Iām looking for something with one knob. I could do it with a color picker but with that Iāve got the similar problem as your solution where I have to grab two things to get three. Unless somebody knows a trick with the color picker.
Something along the lines ofā¦?
Split the argb output of the color picker, set it to be mapped 0-1 and then just think of R for X, G for Y, and B for Z axis. Ignore the Alpha.
That gives you a 3 dimensional slider you can set with one click sort of.
How exactly do you want to/expect to engage with the 3D āknobā / control?
The color picker lets you select āXYā dimension and then you could āslide back in the Z dimensionā by using the upper left hue grip I guess?
The key here is just mapping the color values output to whatever kind of domains you are after for a ā3D MD sliderā
But what @Joseph_Oster proposed is easier to control, less components and even if you used the color picker you would need to do 2 clicks anywaysā¦ 1 for XY and 1 for the 3rd dimension
Same is true with the airplane controls that use pedals to rotate the rudder. You need a āknobā you can move left-right, forward-back and twist. Good luck.
Ideally, I would engage with the knob in some sort of 3d space similar to the color picker or what I expected in a 3d MD slider. One thing that can move in 3 dimensions to give 3 values. Iām working with a program to parametrically generate helixes and scrolls and other curves for iron sculptures. I want to control position and rotation in all 3 axes. Iām doing that now with 3 sliders for each. Iām just trying to condense the number of controls. Grasshopper programs get big enough as it is and Iāve got lots of variables to input. This isnāt stopping me from doing my task, Iām just wishing for a better way.
Itās tricky to do a 3D widget in 2D screen space with as few controls/inputs as possible.
One suggestion I have is an axonimetric or isometric cube/bounding box widget.
You could calculate where the āZā falls by how close to the front left of the iso cube you are (0) or how close you are to the back face of the cube (1) and the XY falls within the current āframe sliceā at the cube depth you are currently at.
You have to do some funny positional gymnastics and sometimes because of ISO itās actually difficult to tell āwhere you areā in depth but it could work theoretically.
Though honestly this sounds like it would benefit more from a hardware input device that allows one to pan and zoom simultaneously like a space mouse.
Or keyboard events like a single MD slider āwindowā with a 3D volume / room / space behind it in which the mouse controls the XY MD slider location and a keyboard key like the up or down arrow controls the Z depth. So simultaneously you can be moving in/out of space while also in XY screen space at that spatial reference frame.
Or think WASD/EQgaming controls.
Let E be forward into the scene depth aka Z-depth, Q back up in scene depth, AD for left right aka X horizontal axis and WSfor Y vertical axis
Yes, I realize it is not trivial to do. Iām not sure Iām up to building it, but I was thinking somewhat along the lines you mention.
I realized that I donāt necessarily need to be able to move all 3 coordinate values at the same time. What I really would like is just one control but be able to switch which axis it operates on with a keyboard key. Better than a slider would be something that might look like the gumball with 3 arrows coming out of it. If you press the āXā key then the X arrow would highlight and when you moved the thing it would move in the X direction. It would need some sort of bounding box to limit movement.
Actually, Iām going to switch horses and do things completely differently. So we can close this thread unless somebody has a better idea.
Iāve got lots of variables besides the location and rotation and Iād like to be able to save the values and reload them whenever. Since I can get Grasshopper to input a text file, Iāll make a Windows program to input values and save them to a text file. It wonāt give me the 3D-oneknob thingy but I can have more control, or easier control, of how I input things and maintain a record.
what if you evaluated a point from rhino inside a unit box? that would let you use the gumball in rhino and the plane hints would let you control in what plane the point moves.
no bounding box limit though, unless you have a conditional in grasshopper to replace values under or over the limit with 0 or 1.
Thatās an interesting idea. Trying to make sure Iāve got the concept. Iāve done a lot with Rhino and Grasshopper but I donāt pretend to know everything.
I would make a box and I would have to put a point inside it which would get assigned to a point component in Grasshopper. Then if I grabbed the point and moved it in Rhino with the gumball, the point coordinates would move in the Grasshopper component. Maybe I donāt need a box? Just deconstruct the point to get the values. Iāll play a little. Must be a catch.
Hey, hey. I just tried it and I think that might be the solution. Itās not really a GH component but it basically works for what I need and the gumball is easy to locate.
Thanks.
Joe
thatās the idea. youāre right about the the box. likely optional, but it might be helpful as a graphic reference as to where you are in parameter space. plus if you are dialing in one variable, you can use the edges to lock an axis when you use move to move the point
oh cool