Digital Fabrication - How do I attain CNC precision with this scheme?

Hmm I wonder if there is a way to map it onto that without changing the design too drastically.

Hi Toni,

I figured out how to map the solid blocks onto the surface without them warping in size. I did this using the orient component as you suggested. I started the process with the block in 2D space, where the intersections are perfectly symmetrical. However, when applying them to the barrel vault and mapping the intersections they seem to lose there spacing, as the blue and red circles (in the image) are not symmetrical. In order for this to work the members would need to be perfectly symmetrical. Any advice on using orient in a more accurate way?

Forum03.gh (33.3 KB)
Forum03.3dm (13.7 MB)

Will be adding that when I’m closer to the final result. First I need grasshopper to map the intersections rather than manually doing so for the sake of accuracy. Thanks for all your help.

I have the drive geometry so far, but I am still thinking about the joinery and how to create that all parametrically. I can see you had a few clashes at your joints.

I was planning on using solid intersection to define the joinery between basic blocks. If the geometry you have results in symmetrical intersections of each member were almost there..

It’s a weird old thing. I dug it up in the process of trying different methods to create a reciprocal structure from scratch.


Polygon_2025Jun25a.gh (8.4 KB)


Polygon_2025Jun25b.gh (15.6 KB)

Your code today still has the LunchBox Rebuild Surface component. Any reason for it?

And I still don’t see how these lines were created?

It’s a fascinating project, well done.

Hi, I’m sorry I do not have more time currently for this.

I simplified the script and used to evaluate surface for the curves’ center frames. This way, there will be minimal distorsion. Also replaced the brep to a block.


Forum03_TONI.gh (24.5 KB)
Forum03_TONI.3dm (2.7 MB)

If you want to solve it with half-lap joints, then you need two distinct parts, for both orientations. Which may be mirrored versions of each other..

I saved these two blocks in the file, so if you solve the intersections to these two, then the changes propagate to your entire model.

I do not know there the non-symmetry comes from, if it exists. Double check your lines, for instance.

There is something wrong with your arch surface. The UV-parameter space is not consistent.

With even distribution of points, there should be only on lenght.

Wish you had posted that code? Does the discrepancy have anything to do with the LunchBox Rebuild Surface component, which I notice is applied only to Map Srf?

P.S. Not the same but perhaps similar enough? (I don’t read icons)


barrel_srf_2025Jun25a.gh (10.5 KB)

P.P.S. Or maybe not significant.


barrel_srf_2025Jun25b.gh (18.7 KB)


I’ve adjusted the surface so it has consistent UV points now. Thanks for pointing that out. @Toni_Osterlund

Also, have I removed the rebuild surface component as you have been mentioning, and it did indeed help by reducing the warping that effects the lines. However, with rebuild surface the warping is smaller, and when plugging straight into map surface the warping is larger.

I wonder how I could achieve that barrel with the 2d lines without any warping. As then the script should work as intended if I could minimize the warping. (The removing of rebuild surface confirmed that)

That original pattern you asked about was generated by simply tracing this in rhino, and array.


The zollinger structure was one which I could understand how the connection would work so I gravitated towards that.

My approach is to try to eliminate the need for the warping. I have some basic drive geometry and hope to create the standard parts that can be moved into their correct location with the orient component. I have straight lines between the connection points. To create the centerline arc I offset the mid point to the surface. I have no idea if it will work since I typically am working with straight parts. It is fun to think thru the problem. My script far is below if interested.

JAKE_ROOF.3dm (167.1 KB)
JAKE_ROOF-FORUM.gh (36.0 KB)

Looking good but… Rhino file appears to be empty? That’s good :red_exclamation_mark: But why have it at all?

Hidden wires don’t work for me.

What’s next? Looks close to generating the whole structure. :+1:

What are you tracing? That does nothing to explain it for me.

I figured I might get a comment about the hidden wires. I prefer that over wires all over. I read that discussion not long ago.

Yes, the rhino file is empty. Just trying to follow the rules.

I was working on the part and had to stop to go to my job. I will finish that and then see if it fits. If I may cut a couple pieces myself. I have scrap MDF that will work well.

Faint wires are better than hidden wires but this is your code with default wires - looks fine to me, much better than hidden! Some of this code is useless!! (cosmetic, for display only)

There is no point to posting an empty Rhino file.

P.S. It looks like you have a “scale issue”, setting actual dimensions?

Wow this is incredible. Cool to see all the different ways to approach the same problem. Whereas your solution is much more based in parametric design.

I wonder how we can modify the script to enable that slight offset at the connection point in the middle. The joinery somewhat depends on that. Thanks for all your help!


Tracing the zollinger pattern attached in this image. As it is one of the many options for creating a reciprocal structure. Also, it was the precedent which I found most interesting. Sorry if I was not clear!

Oh dear :interrobang: No wonder you have some precision issues, it’s not parametric at all.

How so? I think the concept of a reciprocal structure as a whole is very parametric. The zollinger pattern is just one historic approach.

My idea is to create the standard part in the front plane. The node point shown below will define the location. The part will be offset to its correct location. I hope I can create the exact geometry at this point, but I have not wrapped my brain around the angles and offsets. When one starts offseting things with curves involved it is more complicated than I am used to.

Some of your diagrams seem more complicated unless it is okay for the parts to protrude above the boundary. Even my current path will result in parts outside the perimeter.