I made a small update for NGon 3.0.0 version for developing further wood-wood connections (Joint tab).
It is an update for the previous 2.4.5 joinery-solver version, that contains a better functionality, rewriting and structuring larger part of code. Most of the components employ Rhino 6 NGon mesh face grouping to build adjacency graphs and finding the right connection topology.
The images below come from the new components from Joint subcategory including some basic sample files. I am planning to make proper tutorials to make the introduction to joinery in beams and plates and post it in this thread. The code is developed as part of IBOIS, EPFL studies Laboratory for Timber Constructions ‐ EPFL
There are four different ways how joints could be displayed and cut from the element volume.
Polyline methods remains the fastest one, mesh boolean is the most robust when volumetric cutting is needed and BRep boolean is also optimized to perform cuts in a separate thread:
The overall idea in the Joinery Solver comes from Tiling method where a Unit connection is oriented to connection zone. There are more peculiarities how to this method was made more effective. I would like to thank @DanielPiker who showed the principle of ChangeBasis Rhino transformation that applies to larger than this timber joinery set. Interestingly, this idea extrapolates to timber plates not only beam elements in quite fast and efficient way.
Hello Petras,
great work, very interesting!
Is there a possibility to learn more about the graph model that you use to model the assembly? Do you store the shapes of parts and joins via attributes of the nodes/edges or is the model just the topology?
Thank you!
The joints is a list of indices pointing to each element. It has additional attributes of connection zones and joint geometry. So there are two main classes: elements and joints, and for sure each class groups a series of subclasses and properties for indexing (graph), 3D data for joints (Tiles), and fabrication tool-paths (Cuts). So I can work with a graph as nodes and edges, where the dual of the element-to-element graph is a joint graph. To answer the question, you can see it as a typical node-to-node graph with additional geometry attributes.
Hello!
I am looking into robotic production of wood-wood connections for my master thesis, and I am wondering if you, Petras, or someone else would be so kind to explain how the “Cut”- function works?
I would like to get the MillCut (toolpaths) out as a polyline, but I can’t access/display the output and it seems like it is defined as “Generic Data”.
Thank you! @Petras_Vestartas
I never knew there is a description of your work on Github. I have been trying to learn it with the examples you published along with version 3.1.
Thank you for the scripts and examples, looking forward to getting this working. On Rhino 7 getting an error when trying to install the outstanding plugins "IO generated 4 message - Grasshopper Archive messages
This document contains the messages that were recorded during the most recent Grasshopper® file read/write. Whenever a read/write operation fails or behaves unexpectedly, this summary will be compiled and put on display. If you experience problems saving or opening files, please include this log with any bug-report you file. You can use the Send… button to mail this report directly, or you can save the log and attach it to a personal email message. This log contains no personal information beyond what you supply, nor any other information that is not directly related to Grasshopper."
Normally it should be fine to pass these warning messages. Be aware that the development of this package has been moved to “compas_wood” development from the end of 2021 year. All the tutorials and instructions have been published on EdX under the funding of EPFL and NCCR DFAB ETHZ. If you want to jump directly on Rhino part, watch this section:
Digital architecture and advanced geometry processing
If you have any question please open an issue in the official GitHub repository so that I could reply quicker.
The software for Python, C++ and Rhino Grasshopper is available here: