I slightly changed the code so the export of internal forces is easier to VTU (ParaView etc.). This should work on trusses and beams and it was tested on elements Truss3D, Beam3d, LiBeam3DNL. The idea is to export internal forces with local coordinate system. This is facilitated by outputting IST_BeamForceMomentTensor (7) with IST_X_LCS (146), IST_Y_LCS (147), IST_Z_LCS (148), e.g.
vtkxml tstep_all primvars 1 1 vars 4 7 146 147 148 stype 0
VTU files now contain point data; a truss element only end points, a beam element usually more points within its length since it needs to plot different deflected shapes by straight lines and various functions for internal forces.
Data post-processing in ParaView 5.10 is showed for tests/sm/beam3d_1.in, which is a 2D frame loaded with a force and a uniform distributed load. Solution is linear elastic and every beam is internally subdivided into 10 segments. Local coordinate system can be plot using Filters->Glyph and Glyph Type arrow. Every n^th point can be plotted so the local axes are at desired locations and not in every segment, see the attachment.
For example, to plot the shear force Vz, one needs to create a new vector Vz in Filers->Calculator as IST_BeamForceMomentTensor_ZZ * IST_Z_LCS . One can plot the diagram using Filters->Warp by vector, taking the new vector Vz. Coloring can be added. It is quite common to hatch (or fill) the diagram so it points to the correct finite element. This can be facilitated using Filters->Glyph with Glyph Type->Line.
Plotting bending momentum follows the same approach, multiplying IST_BeamForceMomentTensor_YZ * IST_Z_LCS . A user has even enough freedom to plot diagrams to directions as needed, e.g. diagrams for local normal forces on trusses can be plot in global coordinate system (using iHat, jHat, kHat) or local plane xy, xz. A filter in python can merge several of these filters, making plotting easier.