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, -2*l}, {2*l, 0}, {l, -2*l}, {0, -l}, {-l, -l}, {-l, -2*l}, {-2*l, -l}},
$$edges->{{7, 5}, {5, 6}, {5, 4}, {4, 3}, {3, 1}, {1, 2}},$$absname->s,
$$constraints->{{{"clamp", 5, 6}}, {{"clamp", 6}}, {{"hinge", 4, 5}}, {{"hinge", 3, 4}}, {{"clamp", 1, 2}, {"clamp", 2, 3}}, {{"free", 2}}, {{"hinge", 1}}},
$$bodyloads->{{2, {0, α q, 0}},{5, {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]

Versione 1

α=3;β=1;
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]

BFShowOutput[example,BFForcesSolve[example]]

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

{B,f}=BFStaticProblem[example];
reactions=Simplify[LinearSolve[B,f]];
{N1,Q1,M1}=BFReactionsToStresses[example][reactions];
BFShowEquilibrium[example,reactions,ImageSize->1000]

Output

Versione 2

α=-1;β=-1;
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];

{B,f}=BFStaticProblem[example];
reactions=Simplify[LinearSolve[B,f]];
{N1,Q1,M1}=BFReactionsToStresses[example][reactions];
BFShowEquilibrium[example,reactions,ImageSize->1000]

Output

Versione 3

α=1;β=2;
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];

{B,f}=BFStaticProblem[example];
reactions=Simplify[LinearSolve[B,f]];
{N1,Q1,M1}=BFReactionsToStresses[example][reactions];
BFShowEquilibrium[example,reactions,ImageSize->1000]

Output