Creating Polygonal 2D Joints from Frame

Hi everyone,

I am dealing with the joints of a polygonal frame. I need to create the 4 joints between the beams.
My only input is the two boundary curves of the frame (inner and external).
The difficulty lies in that the beams must always be orthogonal pieces, thus the joints need to absorb the angle.

I was able to get really close with my current definition. And I say really close because the top left joint is actually a little larger than what it should be (yellow last picture). Besides that, I consider my almost working attempt mediocre or dirty.

My procedure, basically, was to:
1- explode both curves of the frames
2- group the edges by proximity to each other, extend them and loft them.
3- use region intersection to find a first draft of my joints (polyline).
4- I then created all perpendicular lines from each draft by evaluating the midpoint of each segment and created a 4 edged surface from these lines.
5- Finally I performed a region intersection between these 4 edge surfaces and my draft joints polylines. This is the final result.

Maybe someone can help me with a more elegant approach?

joints (33.5 KB)

Could be done in more elegant manner probably, but… :sleeping:

joints (54.7 KB)

EDIT: I am more happy with this one. :slight_smile: (61.2 KB)

1 Like

If this is an AEC issue (most notably: related with structural wood joints) see attached:

AEC_STR_CWOOD_HIST_USA_2004-08.pdf (9.9 MB)



I was actually learning from this one.
Still own it in paper form, not able to attach it.
Most of forum members would not understand the language anyway. :slight_smile:

1 Like

Thats wonderfully simple @Jakinta. Thank you!

1 Like

Hi, sadly all good things come to an end… the design changed so… oh well…
My new frame has actually 3 inner curves instead of being a simple frame with 1 outer curve and 1 inner curve.

new (16.8 KB)

For now I wasn’t able to figure it out. As a last resort I am thinking about dividing the frame into 2 parts…
Like so:

But I would really like do avoid this if possible. That’s why I’m taking a shot at one of you guys having another brilliant idea.

image (30.5 KB)

Hi @Jakinta

I apologize for the late reply. Thank you very much for your help. I have been working on this and I believe I have made some progress.
I drastically changed my initial approach, and instead of commencing from joints I am starting from the beams to then get to the joints.

It was my mistake to never mention that ideally a solution should be able to accept the first frame as well as the last one I showed. I apologize. Here I added even another version.

It is a somewhat extensive script that I think is overdoing some stuff here and there, but it works for now. It can surely be optimized. I upload the def for anyone interested, would greatly appreciate any feedback and shortcut options.

I tried to keep it tidy and organized, documenting what each section is meant to do. Certain sections will change to orange as empty data is passed thorough them given the different conditions of the frames. (49.3 KB)