Blum hinge movement in gh

A while back I converted a model I downloaded from Blum into a working hinge in Solidworks. There it is quite easy to set up (I’ve attached the SW model as well). But now I want to see if I can make this work in gh. It works but not entirely, and I have no clue if and how this can be solved. It looks that because the arms are both moving in 2 different directions during the movement, I somehow need to find this point where the movement switches direction. Right now the beginning is ok and the end of the movement is ok, but when you move the hinge, you can see it fail. Also it would be nice if, just like in the SW model, I could drive this with angles rather than the curve parameter. (1.0 MB) (2.3 MB)


It looks like this is a 4 bar linkage, so it comes down to finding the intersections of a pair of circles.
The trickiest part is making sure you choose between the 2 intersection points in a consistent way, so it doesn’t suddenly flip at certain angles.
Here’s one way - checking the angle (in a reference plane, so you can distinguish direction) with a vector (choosing a direction the movement will not cross), and sorting the intersections by this: (12.4 KB)
Then just orient the geometry to planes defined by these lines


@DanielPiker your example is much simpler it seems, because the arms both keep turning in the same direction. You’ll notice that in the blum hinge, the arms move in multiple directions during the movement:


It’s still just a 4 bar linkage
hinge_ (1.0 MB)


For such a simple mechanism, the possible motions for a 4 bar linkage as the arm lengths are varied is surprisingly varied


Ah, that’s pretty close, but can I be picky? In the SW model, I can still move it slightly more open, like an overstretched elbow, which kind of locks the hinge in open position. If I do this with this system, it collapses. Is there a way to solve that?
your solution opens up until about 175°:

original model where you see the arms are crossing:

Ah yes, I see what you mean. That’s one potential downside of this sort of intersecting circles method.
There’s probably a way to rearrange the dependencies to allow this kinematic bifurcation.
Much simpler though to just use a constraint solver, and not have to worry about deciding in advance which part is driver and which is driven:
hinge2 (1.0 MB)


Can you add collision detection to that?

For such a simple movement I wouldn’t try and do actual collision between the solids, as finding intersections of complex solids introduces a lot of calculation for what is essentially just one fixed limit on 1 degree of freedom.
I would rather find that limit geometrically then include it with a ClampAngle.
Alternatively, if finding the limit geometrically was too complex, we could at least use CurveCollision, since the motion is planar, and 2D collision is simpler and more reliable.


The video shows a paper model of a seven hinge point linkage system to connect two parts of a mini skate ramp, optimized in grasshopper with kangaroo. The configuration in kangaroo was complicated. If I had the option to do this in solidworks, I would have done it in SW. Sometimes things end up being a challenge like „but can I maybe do that with Grasshopper“ so I did it with Grasshopper and kangaroo and it solved the problem.

Since this was for a skateboard ramp, the hinge could not be a simple hinge with the axis where the two parts join. However it had to be offset to the back side of the ramp.

1 Like

Nice. With the tools now it hopefully is less complicated to set up something like this- (9.2 KB)
Though I’d always like for it to be simpler.

Just a try


Would This be easy to set up ?