Beams and truss don't connect in Z

There seems to be a bug where the connection between a T3D2 or T3D3 element and B31, B32, or B32R elements is not enforced in the Z direction. Happens in 2.17 and 2.19. Here’s an example. The horizontal and vertical members should be be connected but they come apart.

*NODE
1,0,0,0
2,0,0.625,0
3,0,0.875,0
4,0,0.5,0
5,0,0.125,0
6,0,0.75,0
7,0,0.375,0
8,0,1,0
9,0,1.125,0
10,0,0.25,0
11,-0.5,0.5,0
*ELEMENT,TYPE=B31,ELSET=1
1,5,1
2,10,5
3,9,8
4,8,3
5,3,6
6,6,2
8,7,10
9,2,4
10,4,7
*ELEMENT,TYPE=T3D2,ELSET=2
7,11,4
*MATERIAL,NAME=Material
*ELASTIC,TYPE=ISOTROPIC
200000000000,0
*BEAM SECTION,ELSET=1,MATERIAL=Material,SECTION=RECT
0.05,0.05
1,0,0
*SOLID SECTION,ELSET=2,MATERIAL=Material
0.0025
*BOUNDARY
1,1,3,0
9,1,3,0
11,1,3,0
*STEP
*STATIC
*CLOAD
2,3,1000
*NODE FILE
U
*END STEP

Such connections between elements of different types can be hard to realize. In Abaqus, you could use tie constraint but in CalculiX it may not be possible. Of course, it’s much easier with beam elements only:

In practice, that’s how it would be done in most cases.

In general, you can’t use a beam because the other end might also be connected to beams, not like this simple example.

But you gave me an idea. You can connect them with 3 *EQUATIONS instead of a shared node and it works.

*EQUATION
2
4,1,1,12,1,-1
*EQUATION
2
4,2,1,12,2,-1
*EQUATION
2
4,3,1,12,3,-1
1 Like