compas_tna.equilibrium¶
Horizontal¶
Algorithms related to horizontal equilibrium of the form diagram and thus of the corresponding thrust network.
Horizontal equilibrium is established when the form and force diagram are reciprocal. Two diagrams are said to be reciprocal if they are each other’s dual and if all corresponding edges are at any specific constant angle.
Note that for legibility, the form and force diagrams in compas_tna
are drawn
such that corresponding edges of reciprocal diagrams are perpendicular.
However, the diagrams are made reciprocal by parallelising the corresponding edges.
The diagrams are thus rotated by 90 degrees and back at the beginning and end of
each of the horizontal equilibrium algorithms.
Compute horizontal equilibrium using a node-per-node approach. |
|
Compute horizontal equilibrium. |
|
Compute horizontal equilibrium using a node-per-node approach. |
Proxies¶
The _numpy
variants of the above functions can be used directly in Rhino using an RPC server proxy.
Note that whenever the original algorithm expects a diagram instance as parameter,
the corresponding proxy function will expect the data representing that diagram
instead. The data representing the diagram is stored in the data
attribute of the
diagram.
>>> tna = Proxy('compas_tna.equilibrium')
>>> horizontal = tna.horizontal_nodal_numpy_proxy
Once the proxy is created, it can be used like an actual function with the same signature.
>>> formdata, forcedata = horizontal(form.data, force.data)
>>> form.data = formdata
>>> force.data = forcedata
Vertical¶
For the given form and force diagram, compute the scale of the force diagram for which the highest point of the thrust network is equal to a specified value. |
|
Compute vertical equilibrium from the force densities of the independent edges. |