Recreating this phone stand

I’ve been working on a woodworking project which was lots of fun, however now I want to do it right :slightly_smiling_face: I’m trying to recreate this shape and directly improve a couple of flaws in this design. I have to brush up my rhino/grasshopper skills a bit and hopefully someone can point me into the right directions.

I would like to create a grasshopper based design as I want to create this phone stand by using different wood which means I have to take different thickness into account that influences the angles of the design. I might use different wood for the front, base and support planes.

Besides a woodworking project this is directly a nice practical way to brush up my grasshopper skills. I’m starting with the base and wondering how to create a shape like that, where I can use a number slider to define the angle (see point 1, bottom right)? Once I’ve got that shape I would like to continue with the “Front” side.

At the moment I’ve got this basic grasshopper:

all you need to do is make an offset of the lower line that is as large as phone thickness (D)
The rest is simply a cut triangle.

First begin with parameters
Phone angle,
phone height
phone thickness
Max front height
Support depth

For the algorithm , there are many ways to design this, you need some Grasshopper skill but from my point of view some basic Maths trigonometry could help a lot. Draw by hand the lines, thickness … and solve the Math. If you don’t want to use that I’ll use curve boolean.

Wow that was amazingly fast, thanks.

However to get the information I need to saw the wood correctly, I need to be able to have a bit more control like the thickness of each of the planes/planks. I also would like to be able to change the height of the support plane (left one, against which the phone rests), etc.

Thanks Laurent! That’s the approach I have taken first. I’ve started calculating the angles based on the thickness of the wood, preferred height of the support plane, thickness of the phone, etc. I’m lacking some Grasshopper skills and trying to figure out what nodes to use along the way.

Currently I’m trying to rotate the plane against which the front panel/plank is attached, which need a bit more work as I’m not sure how to rotate a plane (yet):

I think you want to go to fast on 3d. Stay on 2d, then at the end extrude.
You can keep rectangle and then use some region boolean using some cutting tools (like in real life) .
I’ll begin in XZ plane, by Make the front with a rectangle, rotate it with one of its corner (you’ll cut it after with XY plane).
Make a long enough base rectangle…

1 Like

Thanks, the reason why I go for 3D is because I have “some” experience with Grasshopper and 3D. I’ll check out some of the 2D components and experiment with that.

Thanks to the help of @Gijs I got a bit further.

I’ve found the line plane intersection and I was wondering if there is a way to determine when a Line SDL intersects with a plane if hte Line SDL would have infinite length?

For intersection purposes, lines do have infinite length. PLX (Line | Plane)


Based on your input, I’ve something working. I’m sure there are better solutions and I would to hear what/how I can improve things. I’ve uploaded a video which shows me changing the parameters.

I’ve attached the Grasshopper file and would love to hear what I can improve. (26.2 KB)

But you ignored good advice from @laurent_delrieu so - no.

As the old saying goes…

You can lead a horse to water, but you can’t make them drink

Complex :exclamation:

What do you mean I ignored the advice from @laurent_delrieu as I did switch from 3D to 2D.

Yes, the graph consists out of quite a bit of nodes but how/what can I improve there? As an example I’ve recreated part of the graph where I create the base shape and the “device”. Creating a parallel line from an existing line requires several nodes which makes the graph complex. Maybe there is a better/less complex solution to that.

Please bear in mind that I’m a newb and trying to learn; it would be great if you can share some usable info.

I’ve attached the grasshopper file that I’m using to experiment / learn. (12.7 KB)


Another attempt; I guess I can clean things up a bit more by using clusters. (37.3 KB)

Good, welcome to Grasshopper.
I just think you must add the phone thickness and so shift all right points along X by a value of phoneThickness / Sin(angle)

Baselength is not independent of angle in your Grasshoper definition.

Edit: nevermind. It’s the length of the base piece, not the total depth of the device.

He accomodated for it with the back piece.