How to make a trussesjoints all pinned or fixed?

Hi, I am new to Karamba and would like to know how to make the joints of a truss all pinned, and then fixed to see the difference in the dimensions. Can someone help me out, please?

truss.gh (56.7 KB)


Hi @WillyBilly,
there are two possibilities to make all connections pinned:

  1. Use truss elements (see here) which do not have any bending stiffness. When doing so make sure to add out-of-plane translational supports at the nodes - otherwise you truss is kinematic.
  2. Use beam elements (see here) and add joints at their end-points (see here or here) whith a hinge about the local Y-axis. Add a small rotational stifffness (e.g. 1) for Ry - otherwise one gets kinematic nodes which are free to rotate about the ttruss-plane normal when all connected beams have a hinge about that rotaitonal dof.

– Clemens

Hi Clemens Preisinger,

thank you so much for your response! Its great having the chance to receive help when things stop working. I tried to proceed with both versions, however, I received following errors -

Variant 1 - Truss Elements: There are 9 rigid bodies in the system, although the deformation preview looks right. Maybe the hinges overlap with the support, but I do not know how to make them not do so. The dimensioning of the bars seems not to work, the pipes are tiny.

Variante_1.gh (56.6 KB)

Variant 2: There is one rigid body in the system and the joint component gets an error. The dimensioning does not work properly.

Variante_2.gh (54.8 KB)

Thank you so much for your time … Wilhelm

Dear Wilhelm,
here are your two variants with remarks added:
Variante_1_cp.gh (71.6 KB)
Variante_2_cp.gh (61.2 KB)

They seem to work now.

– Clemens

Dear Clemens,
thank you so much - I appreciate your help. I was going with the ‘Variante 1’, since it employs the truss - component. I applied 5m bay span, resulting in a total span of 20m, 50kN at each node at the end of each bay. The resulting sizing of the structure through the cross-section range selector, however, seems to be under-dimensioned. The mass of the round profiles results in 1164kg and the one of the IPE in 1982kg. How can I size the truss correctly to withstand the load?

Thank you, Wilhelm


Dear Wilhelm,
sorry, I was too much focused on making the model displacements work and neglected the part with the cross section optimization.
Here are my updates to make it work. As a simplification I defined a buckling length of 40m for all elements which is double the length of the cantilever. This accounts for global buckling of the lower girder. The automatically generated values for the diagonals would be sufficient however.
Variante_1_cp_1.gh (75.8 KB)
Variante_2_cp_1.gh (64.9 KB)
– Clemens

I overlooked an issue in Variant_2:
Variante_2_cp_2.gh (77.7 KB)
The cross sections were fed into the Assemble-component and not into the “LineElement”-component. This is not per se wrong but can lead to unexpexcted results:

  • The recommended way to define cross sections is to feed them into the compponent which creates the elements.
  • In some cases it is more flexible to define the element cross sections by specifying the element or the element identifier (using e.g. regular expressions for the element names) on the cross section. So the cross sections now reference elements and get added to the element on model assembly. This is why in such a case the cross sections go into the Assemble-component directly.

In your case at the “Cross Section Range Selector”-component the first 16 cross sections were attached to the first 16 elements of your structure (‘A’ to ‘P’) and all other cross sections to element ‘J’ due to the longest list principle. Then I made the mistake to select the first of these cross sections and input it into the “Assemble”-component. This attached a CSH of the family “CHS(EN10210-2)” to element “A” but left all other elements with their default cross sections which are not part of the family “CHS(EN10210-2)” and thus did not get optimized.
Sorry for the lengthy explanation, but this was a case which surprised me. I think there needs to be additional information at the cross section optimizer’s “Info”-output.

Thanks for this interesting example.

– Clemens

1 Like

Thank you so much for your help and time!