Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
The Force Diagram is the dual of the Form Diagram, in the sense that both diagrams have the same number of edges and that vertices in one diagram correspond to faces in the other, and vice versa.
Initially, the Force Diagram is created as the "centroidal dual" of the Form Diagram. This means that the geometry of the Force Diagram is defined by placing its vertices at the centroids of their corresponding faces in the Form Diagram.
In order for the Form and Force Diagram to describe the distribution of horizontal thrust in a three-dimensional network of compression forces in equilibrium with vertical loads applied to its nodes, they need to be not only dual, but also reciprocal.
Two diagrams are reciprocal if they are dual, and if their corresponding edges are at a constant angle with each other. Typically, corresponding edges are required to be parallel, or perpendicular, but any other constant angle is sufficient as well.
In RV2, the Form and Force Diagram are considered reciprocal if corresponding edges are perpendicular.
Once the Form and Force Diagram are reciprocal they describe the horizontal equilibrium of the corresponding three-dimensional force network. The edges of the Form Diagram define the directions and points of application of the forces, whereas the edges of the Force Diagram define the distribution of force magnitudes along those directions.
The magnitudes of horizontal forces are equal to the lengths of the edges in the Force Diagram, multiplied with a scaling factor.
Modifying and controlling the geometry of force diagrams
The third tutorial session presents how to create a force diagram from a form diagram. The initial force diagram is a topologically dual diagram of the form diagram, and the horizontal equilibrium solver is needed to make the corresponding edges of the two diagrams perpendicular to each other, making the two diagrams dual and reciprocal. Additionally, how to modify and constrain the geometry of the force diagram is shown in this tutorial session.
What is covered in this tutorial session:
Creating force diagrams from a form diagram
Horizontal equilibrium solver and its parameters
How to modify and constrain the geometry of the force diagram
Here is the RV2 rui file including an updated toolbar with RV2file_open
and RV2file_save_as
commands, and a few Pattern
s that we generated together in Tutorial 2:
In RV2, horizontal equilibrium is computed by parallelising the edges of the Form and Force Diagram to corresponding target vectors. These target vectors are defined as the weighted average of the vectors of corresponding edge pairs. Therefore, the most important parameter for the calculation of horizontal equilibrium in RV2 is alpha
, which is the weighting factor for the calculation of the target vectors.
If alpha = 100
, the target vectors are completely defined by the vectors of the edges of the Form Diagram. This means that only the geometry of the Force Diagram will be updated to achieve horizontal equilibrium. This is the default.
If alpha = 0
, the target vectors are completely defined by the edges of the force diagram. Therefore only the Form Diagram will be updated.
For all other values, the target vectors are calculated using the following formula:
Note that using alpha
efficiently requires a bit of practice and experience. Since the Form Diagram defines the intended layout of horizontal forces and RV2 has many tools for designing force layouts that provide a good starting point for form finding explorations, it is usually a good idea to start with alpha = 100
. However, once you have the horizontal equilibrium under control, playing around with lower alpha
values can have a significant influence on finding nicely balanced force distributions.
Computing horizontal equilibrium is an iterative process. The default number of iterations is 100
. For sensible force layouts, this value should go a long way. However, there are many cases in which more iterations are required. For example, if the Form Diagram has multiple open/unsupported edges, and especially if those edges have a low "sag" value, more iterations will typically be required to reduce all angle deviations between corresponding edges to less than 5 degrees.
Computing horizontal equilibrium is quite fast. Therefore, don't hesitate to set the number of iterations to 1000
or more if the need arises. However, don't go completely overboard either (10000
iterations is quite excessive in most cases), because the calculation has no stoppage criterion, since it tends to be more computationally expensive to check for convergence than to just run all the requested iterations.
Furthermore, resolving all angle deviations is not an absolute requirement, and is in many cases unnecessary. For example, the angle deviations between very short edges tend to be quite persistent as they are dominated by edges with (much) longer lengths during the calculation process. Since short edges in the Force Diagram also represent (relatively) small horizontal forces, these deviations can often be ignored.
The iterations of the horizontal equilibrium calculation process is dynamically visualised. The rate at which the diagrams are updated is controlled by the refreshrate. The default value is 10
, which means that the diagrams are updated every 10 iterations.
For large diagrams the dynamic visualisation slows down the calculations a little bit. In these cases, and/or for high numbers of iterations (> 1000
), it is therefore advisable to set the refreshrate to a higher value. For example, if the number of iterations is 1000
, then a refresh rate of 100
seems more appropriate.
Force distributions can be manipulated by moving around selections of vertices of the Force Diagram to stretch or compact parts of the Force Diagram. For example, to reduce the amount of thrust in an open edge
Alternatively, the lower and upper bounds for the length of the edges of the force diagram can be defined explicitly through Modify ForceDiagram
> Edges Attributes
. Next time horizontal equilibrium is executed, the solver will redistribute the forces such that the edges with explicitly defined bounds are shortened or elongated based on the defined minimum and maximum lengths.
Once the Form and Force Diagrams have been created and horizontal equilibrium has been established through parallelisation, the distribution of horizontal forces in the system is fixed. The actual magnitude of the horizontal forces depends on a scale factor and will determine the depth of the final thrust diagram. A higher scale factor results in higher horizontal forces and therefore a shallower three-dimensional shape. Vice versa, a lower scale factor results in lower horizontal thrust and thus a deeper solution.
The meaning of the scale factor and the magnitude of horizontal forces is related to the magnitude of the loads, which in turn are related to the self-weight of the resulting three-dimensional geometry.
Rather than asking you to "guess" the scale factor to get the three-dimensional shape you want, RV2 will determine the scale for you based on the desired height of the final solution.
The default value for the target height is 25% of the length of the diagonal of the bounding box of the Form Diagram (essentially of the bounding box of the footprint of your shell). This value tends to produce well-proportioned geometries.
The minimum value for the target height is 10% of the length of the diagonal. Currently this is hard-coded and can't be changed through the UI.
1) Create pattern: "From Surface":
Rectangular or square planar surface:
Use the Rhino command: "Rectangular plane: corner to corner".
2) Define boundary conditions:
Supports:
Make continuous linear supports on two opposite sides. (RV2>Define Boundary Conditions>Identify Supports>Select>ByContinuousEdges).
Openings:
No need to assign openings. This step has to be skipped and the openings on the two other sides will be automatically defined by RV2.
Explanation: since we have to constrain the forces to be almost 0 along the edges perpendicular to the openings, if we use the sag function (even only 5%), it will try to put some forces in that edges, so we skip this step.
2) Form Diagram: "Create Form Diagram".
3) Constrain force values in the edges of the form diagram:
The structural behaviour of a barrel vault can be approximated by a series of 2D arches put side by side. This means that the forces flow only along the edges parallel to the arches. In the other direction, perpendicular to the arches and parallel to the support lines, forces can be constrained to zero (hmax and hmin equal to 0.00001). In constraining the amount of forces in the edges corresponding to the arches, attention needs to be paid between the edges in the first and last arch, (hmax and hmin equal to 1.0), and the remaining ones in the middle of the vault, (hmax and hmin equal to 2.0). In the form diagram, a tributary area is assigned to each node and the load applied to the node is proportional to the amplitude of that area. The nodes in the first and last arch have a tributary area that is half of the one assigned to the nodes in the middle of the vault. For this reason, the force value in that edges is half (1.0), and the force assigned in the other edges is 2.0.
Select continuous edges perpendicular to the support, in the arch directions excluding the first and the last (RV2>ModifyFormDiagram>ModifyEdgesAttributes>Continuous):
In the pop-up window assign 2.0 as hmax and hmin of the edges.
Repeat the same procedure for the other edges as described below.
Select the first and last continuous edges perpendicular to the supports (RV2>ModifyFormDiagram>ModifyEdgesAttributes>Continuous):
In the pop-up window assign 1.0 as hmax and hmin of the edges.
Select continuous edges parallel to the support sides (RV2>ModifyFormDiagram>ModifyEdgesAttributes>Continuous):
In the pop-up window assign 0.00001 as hmax and hmin of the edges.
4) Force Diagram: "Create Force Diagram".
5) run Horizontal Equilibrium:
Click on Horizontal Equilibrium>alpha>form100>enter
If the equilibrium is not found, change the number of iterations to 1000.
6) run Vertical Equilibrium
Click on Vertical Equilibrium>target_height
Input as target height half of the length of the side with an opening and then press enter.
7) Extra: change target height to 1/4 of the length of the side with an opening, and compare the components of the resultant forces with those obtained before.
In a cross vault the force distribution is more complex than in a barrel vault. Since you will manually constrain the forces in the vault, we use a square base to reduce the complexity and get help from the symmetry.
1) Create pattern: "From Lines":
A cross vault is supported in four points at the corners. The form diagram, that represents the horizontal projection of how the forces flow in the structure, should allow forces to end up in the corners. For this reason, in this case, our form diagram should look like the one in the picture below, with two diagonals added to the square pattern.
To build this form diagram, let's first create a square surface with the Rhino command "Rectangular Plane: Corner to Corner", typing in two times the length of the side.
Go to Create Pattern in the RV2 menu and use "from surface" to create the pattern. At this point, you will see a square pattern without diagonals.
Select the pattern and type the Rhino command "Ungroup" and press enter.
In Rhino, create a new layer called "Lines".
In Rhino, type "SelLine" and move all the selected lines to the layer "Lines" you just created.
Now type "SelPt" and delete all the points in the viewport.
In Rhino, select the command "Polyline" and draw the two diagonals from one corner to the other.
The edges in the form diagram should always be split at the point where they cross each other. For this reason, type the command "Split", select the two diagonals, press "Enter", and then select all the lines of the square pattern and press "Enter" again.
At the end of the previous step, you will see a pattern similar to the one in the picture above, with single lines.
Now you can click on Create pattern in the RV2 menu and use "from Lines".
2) Define boundary conditions:
Supports:
The supports of the cross vault are in the four corners (RV2>Define Boundary Conditions>Identify Supports>Select>Manual).
Openings:
No need to assign openings. This step has to be skipped and the openings on the four sides will be automatically defined by RV2.
Explanation: since we have to constrain the forces to be 0 along the edges perpendicular to the openings, if we use the sag function (even only 5%), it will try to put some forces in that edges.
2) Form Diagram: "Create Form Diagram".
3) Constrain force values in the edges of the form diagram:
In a cross vault, one possible way for the forces to flow within the structure is along the arches spanning between the diagonals and then from the diagonals directly to the supports. So, the edges perpendicular to the openings will carry zero forces. The arches on the boundaries will carry half of the load compared to the arches in the middle of the vault, due to the different tributary areas, as explained in the barrel vault example. So we will set the force for the arches on the boundaries equal to 1.0 and for the rest equal to 2.0. To avoid the collapse of the edges at the end of the diagonals, in the middle of the vault, we fix their force value equal to 1.0.
Select edges perpendicular to the openings (RV2>ModifyFormDiagram>ModifyEdgesAttributes>Manual):
In the pop-up window assign 0.000001 as hmax and hmin of the edges.
Select all the edges on the boundaries (RV2>ModifyFormDiagram>ModifyEdgesAttributes>Continuous):
In the pop-up window assign 1.0 as hmax and hmin of the edges.
Select the edges parallel to the openings and spanning between the diagonals, leaving the edges on the boundaries (RV2>ModifyFormDiagram>ModifyEdgesAttributes>Manual):
In the pop-up window assign 2.0 as hmax and hmin of the edges.
Select the four edges at the end of the diagonals meeting in the center of the vault (RV2>ModifyFormDiagram>ModifyEdgesAttributes>Manual):
In the pop-up window assign 1.0 as hmax and hmin of the edges.
4) Force Diagram: "Create Force Diagram".
5) run Horizontal Equilibrium:
Click on Horizontal Equilibrium>alpha>form100>enter
If equilibrium is not reached, change the number of iterations and run again.
6) run Vertical Equilibrium
Click on Vertical Equilibrium>target_height
Input as target height half of the length of the side with an opening.