Needs["dsvsolve`"];

Input
ATTENZIONE: DSV SOLVE ADOPERA UN SISTEMA DI RIFERIMENTO NEL QUALE L’ASSE X E` ENTRANTE NEL PIANO. QUINDI v(z) e` lo spostamento verso l’alto e Q(z) che rappresenta il taglio, ha la covenzione opposta rispetto a quella del libro

example={$$nodes->{{2*L, 0}, {L, L}, {L, 0}, {-L, L}, {-L, 0}, {-2*L, 0}, {-2*L, -L}},
$$edges->{{1, 2}, {2, 4}, {1, 3}, {3, 5}, {4, 5}, {5, 6}, {6, 7}},$$absname->s,
$$constraints->{{{"hinge", 1, 3},{"hinge",1}}, {{"hinge", 1, 2}}, {{"hinge", 3, 4}}, {{"clamp", 2, 5}}, {{"hinge", 5, 6}, {"clamp", 4, 6}}, {{"clamp", 6, 7}}, {{"hinge", 7}}},
$$bodyloads->{{2, {0, q, 0}}},
$$nodalloads->{{1, {0, 0, 0}}},
$$predeformations->{{1, {0, 0, 0}}},
$$cdisplacements->{{1, {0, 0, 0}}},
$$EIoverEAL2->0};
(*All constraints are initialized to hinge constraints; use "BFConstraintsPalette[BFConstraintTypes];" to input different constraints.*)
BFShowInput[example]

Output

BFClassify[example]; sol = {{Ns, Qs, Ms}, details} = BFForcesSolve[example];
(*A=Transpose[First[BFStaticProblem[example]]];MatrixForm[A]
BFShowRigidMotions[example]*)
(*BFEquations[example,"Nodal"]; sol = {{us, vs}, {Ns, Qs, Ms}, details} = BFDisplacementsSolve[example];*)
gsol=BFShowOutput[example, sol]

CellPrint/@Rest/@Last[sol];
Print/@Cases[gsol,Graphics[___],Infinity];

BFEquations[example,"Nodal"]

BFShowEquilibrium[example,reazioni1,ImageSize->400]

{B,f}=BFStaticProblem[example];
reactions=Simplify[LinearSolve[B,f]];
{N1,Q1,M1}=BFReactionsToStresses[example][reactions];

BFShowEquilibrium[example,reactions,ImageSize->1000]