algorithmic modeling for Rhino

I am making a 3D panel by moving 1 corner of a quad in the Z and then creasing it along the diagonal.  What I am trying to figure out is the relationship between the height and the crease angle between the two triangle faces.  

I want to do this so that I can limit the crease angles to something regular (90, 105, 120, etc.)  

I can calculate all edge lengths and using right triangles but cant seem to figure out the crease angle.  Any insight would be appreciated.


Views: 745

Replies to This Discussion

Here is one way to solve it geometrically. You give it a specific fold angle and will output the geometry you are after. It is a little messy, but it should do the trick.


And since I'm (maybe presumptuously) assuming you are going to be making a grid of these things, here is a way to do that.


Interesting solution.  I should have specified my grid is skewed though so it doesn't seem to work.  I've internalized example geometry.    I'm assuming this is because each face is not exactly half of the crease angle when bisected with a perpendicular frame.  I'm wondering if it would be easier to treat it as two tetrahedra to be able to specify height.


Posting code and/or geometry ALWAYS goes a very long way toward clarifying a question and making it easier for others to respond without wasting time.

Almost always.  You didn't internalize your 'Crv' parameter:

Internalized here but this is just Brian's script with a skewed base like my diagram.  Wasn't really a code question.  More of a generic trig/theory question.


Cool, so it looks like you got it working with the skewed geometry right?

Edit: ah i see it doesn't work, or at least the angle you put it isn't what you get out

It would seem the solution space for a rhomboid geometry in plan is dependent on the inclination and rotation of a 3D parallelogram (whatever that's called).  I think that's the reverse engineering way to look at it.


Not sure how to get there from first principles...


I think the problem is that with skewed geometry, you don't have enough information to outright solve the trig. You basically have a scalene triangle with an angle and an opposite side known.

You can make it an optimization problem, where you have grasshopper try a bunch of solutions and pick the one that gives you an angle closest to what you want.

Does that make sense?

here would be my solution to that


A brute force optimization method would make sense.






  • Add Photos
  • View All


  • Add Videos
  • View All

© 2022   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service