\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage[scaled]{luximono}
\usepackage[a4paper,tmargin=2cm,bmargin=1cm,includeheadfoot]{geometry}
\usepackage{fancyhdr,showexpl}
\usepackage{pstricks}
\usepackage{pst-stru}
\usepackage{fp-eval}

\DeclareRobustCommand\cs[1]{\texttt{\char`\\#1}}
\lhead{\texttt{pst-stru}}\rhead{A PSTricks package for structural schemes}
\pagestyle{fancy}

\begin{document}

\title{\texttt{pst-stru}\\ A PSTricks package to draw structural schemes in
civil engineering analysis (beams, portals, archs, piles)\\ \normalsize ver. 0.11}
\author{Giuseppe Matarazzo\thanks{%
Thanks to Manuel Luque who inspired and initially supported this work.\newline
Documentation revised by Herbert Voß\newline
This program can be redistributed and/or modified under the terms
of the LaTeX Project Public License Distributed from CTAN archives
in directory macros/latex/base/lppl.txt.}}
\date{\today}
\maketitle

\tableofcontents

\clearpage
\section{Simple example}
\lstset{pos=t,language=PSTricks}

\begin{LTXexample}
\psset{arrowsize=0.8mm,arrowinset=0}
\begin{pspicture}(-5,-1)(5,5)
\pnode(0,2.4) {OO}
\pnode(-4,0) {A}
\pnode(4,0) {B}
\node(A)
\node(B)
\psplot[linecolor=red,linewidth=2pt]{-4}{4}{x neg x mul 0.15 mul 2.4 add}
\rput{-39.8}(A){\hinge}
\rput{39.8}(B){\hinge}
\rput{0}(OO){\interhinge}
\rput{-5}(OO){\clockCouple}
\rput{5}(OO){\noclockCouple}
\rput(0,3.2){\Large M}
 \pcline [offset=-7mm,linecolor=blue]{|-|}(-4,0)(0,0)
 \lput*{:U}{\large 4.00 m}
 \pcline [offset=-7mm,linecolor=blue]{|-|}(0,0)(4,0)
 \lput*{:U}{\large 4.00 m}
 \pcline [offset=0,linecolor=blue]{|-|}(-4.4,0)(-4.4,2.4)
 \lput*{:U}{2.40 m}
\end{pspicture}
\end{LTXexample}


\section[Elastic line]{Elastic Line of a simple beam loaded with
concentrated load P at the center line}

\noindent
{\em Bernoulli's Equation}: $EJ\eta''=-M$ \\
\noindent
The {\bf elastic curve} of the assigned beam AB (P loaded at mid-span) is
obtained by computing the Bending Moment of the auxiliary beam A'B'
to which is applied the BM of AB (EJ=const)
\[
   EJ\cdot \eta = \frac{Pl^2}{16}x - \frac{P}{12}x^3
   \quad \quad 0 \leq x \leq l/2
\]

\begin{LTXexample}
\begin{pspicture}[showgrid=true](-1,-2.4)(9,4.5)
\pnode(0,3){A}  \pnode(8,3){B}
\pnode(0,0){A1} \pnode(8,0){B1}
\pnode(4,0){M}  
\psline[linewidth=1.5pt](0,3)(8,3)  % Beam AB
\psArrowCivil[RotArrows=0,length=1.5,start=0.5,%
    linecolor=blue,arrowsize=1.8mm,OffsetLabel=0.2,linewidth=1pt](A)(B){\rput{90}{P}}
\rput{0}(A){\hinge}  \rput{0}(B){\roller}
\psline[linecolor=red,fillcolor=yellow,fillstyle=solid](0,0)(4,1)(8,0)
\rput(0,2){\Large A} \rput(8,2){\Large B}
%% 1st half load
 \multido{\nStart=1.00+0.05}{-19}{%
 \psArrowCivil[RotArrows=0,length=\nStart,start=\nStart,%
     linecolor=magenta](A1)(M){}}
%% 2nd half load
 \multido{\nStart=1.00+0.05}{-19}{%
 \psArrowCivil[RotArrows=180,length=\nStart,start=\nStart,%
     linecolor=magenta](B1)(M){}}
\pcline[offset=0,linecolor=black]{<->}(4,0)(4,1)
 \lput*{:R}{\bf d}
\rput(6,1){$d=P\frac{l}{2}$}
\rput(0,0.5){\Large A'} \rput(8,0.5){\Large B'}
\pcline[offset=0,linecolor=blue]{|-|}(0,-2)(8,-2)
\lput*{:U}{\bf $l$}
% Paramenters #1 P = 6  #2 l=8 #3 scale factor =0.02
%----------- Elastic curve of beam AB ----------------------
\def\ElasticAB#1#2#3{#1 16.0 div #2 #2 x mul mul mul
                     #1 -12.0 div x x x mul mul mul add #3 mul neg}
\pscustom[linecolor=blue,linewidth=1pt,fillstyle=solid,fillcolor=lightgray]{%
  \psplot[]{0.0}{4.0}{\ElasticAB{6}{8}{0.02}}
  \psline[](4,0)(0,0)}
\psline[linewidth=1.5pt](0,0)(8,0)  % Beam A'B'
\end{pspicture}
\end{LTXexample}


\clearpage
\section{Antisymmetric distributed load}
\begin{LTXexample}
\begin{pspicture}(-3,-3)(4,3)
\pnode(0,1.5) {OO}
\pnode(1.5,1.5) {C}
\pnode(-1.5,1.5) {D}
\pnode(-1.5,0) {A}
\pnode(1.5,0) {B}
\node(A)
\node(B)
\psline[linecolor=red](A)(D)(C)(B)
\rput{0}(A){\hinge}
\rput{90}(B){\guide}
\psframe[fillstyle=solid,fillcolor=yellow](-1.5,1.5)(0,1.7)
\psframe[fillstyle=solid,fillcolor=yellow](0,1.3)(1.5,1.5)
\multido{\nStart=0.0+0.0833}{13}{%
  \psArrowCivil[RotArrows=0,length=0.2,start=\nStart,%
    linecolor=blue](D)(OO){}
  \psArrowCivil[RotArrows=180,length=0.2,start=\nStart,%
    linecolor=blue](OO)(C){}}
\rput{0}(OO){\interhinge}
\end{pspicture}
\end{LTXexample}


\clearpage
\section{Antisymmetric load}

\begin{lstlisting}
\FPmessagesfalse
\def\retta#1#2{#1 x mul #2 add}
\def\rettaTeX#1#2{%
  \multido{\nStart=0.0+0.2}{21}{%
  \pnode(\nStart,0){E1}
  \FPeval{\ValueRetta}{(#1)*(\nStart)+(#2)}
  \pnode(\nStart,\ValueRetta){E2}
  \FPeval{\Test}{abs(\ValueRetta)-0.2}
  \FPifneg{\Test}\psset{arrowsize=0}\else\psset{arrowsize=1mm}\fi
  \psline[linecolor=blue,arrowinset=0]{->}(E2)(E1)}}
\end{lstlisting}

\FPmessagesfalse
\def\retta#1#2{#1 x mul #2 add}
\def\rettaTeX#1#2{%
  \multido{\nStart=0.0+0.2}{21}{%
  \pnode(\nStart,0){E1}
  \FPeval{\ValueRetta}{(#1)*(\nStart)+(#2)}
  \pnode(\nStart,\ValueRetta){E2}
  \FPeval{\Test}{abs(\ValueRetta)-0.2}
  \FPifneg{\Test}\psset{arrowsize=0}\else\psset{arrowsize=1mm}\fi
  \psline[linecolor=blue,arrowinset=0]{->}(E2)(E1)}}

\begin{LTXexample}
\begin{pspicture}(-1,-2.5)(5,2)
\psgrid[subgriddiv=0,griddots=10,gridlabels=7pt,gridcolor=gray]
\pnode(0,0) {A1}
\pnode(4,0) {B1}
\uput[180](A1){\Large A$_1$}
\uput[0](B1){\Large B$_1$}
%-----------------------------------------
% Parameters
% #1 m = 0.5       y = mùx + n       (1)
% #2 n = -1
%----------- line 1 -------  --------------------------
\pscustom[linecolor=blue,linewidth=1pt,fillstyle=solid,fillcolor=yellow]{
\psplot[linecolor=blue]{0}{4}{\retta{0.5}{-1}}
\psline(B1)(A1)}
\rettaTeX{0.5}{-1}
\psline[linecolor=red,linewidth=1.5pt](A1)(B1)  % Beam A1-B1
\end{pspicture}
\end{LTXexample}

\clearpage
\section{Triangular load}
\begin{LTXexample}
\begin{pspicture}(-1,-2.5)(5,2)
\psgrid[subgriddiv=0,griddots=10,gridlabels=7pt,gridcolor=gray]
%-----------------------------------------
% Parameters
% #1 m = 0.25       y = mùx + n      (2)
% #2 n = 0
%----------- line 2 -------  --------------------------
\pnode(0,0) {A2}
\pnode(4,0) {B2}
\uput[180](A2){\Large A$_2$}
\uput[0](B2){\Large B$_2$}
\pscustom[linecolor=blue,linewidth=1pt,fillstyle=solid,fillcolor=cyan]{
\psplot[linecolor=blue]{0}{4}{\retta{0.25}{0}}
\psline(B2)(A2)}
\rettaTeX{0.25}{0}
\psline[linecolor=red,linewidth=1.5pt](A2)(B2)  % Beam A2-B2
\end{pspicture}
\end{LTXexample}

\clearpage
\section{Triangular load}
\begin{LTXexample}
\begin{pspicture}(-1,-2.5)(5,2)
\psgrid[subgriddiv=0,griddots=10,gridlabels=7pt,gridcolor=gray]
%-----------------------------------------
% Parameters
% #1 m = -0.5      y = mùx + n      (2)
% #2 n = 1
%----------- line 2 ------- Triangular load --------------------------
\pnode(0,0) {A3}
\pnode(4,0) {B3}
\uput[180](A3){\Large A$_3$}
\uput[0](B3){\Large B$_3$}
\pscustom[linecolor=blue,linewidth=1pt,fillstyle=solid,fillcolor=cyan]{
\psplot[linecolor=blue]{0}{4}{\retta{-0.5}{1}}
\psline(B3)(A3)}
\rettaTeX{-0.5}{1}
\psline[linecolor=red,linewidth=1.5pt](A3)(B3)  % Beam A3-B3
\end{pspicture}
\end{LTXexample}

\clearpage
\section{Antisymmetric load}
\begin{LTXexample}
\begin{pspicture}(-1,-2)(5,2)
\psgrid[subgriddiv=0,griddots=10,gridlabels=7pt,gridcolor=gray]
\pnode(0,0) {A1}
\pnode(4,0) {B1}
\uput[180](A1){\Large A$_4$}
\uput[0](B1){\Large B$_4$}
%-----------------------------------------
% Parameters
% #1 m = -0.5       y = mùx + n       (1)
% #2 n = 1
%----------- line 1 ------- Antisymmetric load --------------------------
\pscustom[linecolor=blue,linewidth=1pt,fillstyle=solid,fillcolor=yellow]{
\psplot[linecolor=blue]{0}{4}{\retta{-0.5}{1}}
\psline(B1)(A1)}
\rettaTeX{-0.5}{1}
\psline[linecolor=red,linewidth=1.5pt](A1)(B1)  % Beam A1-B1
\end{pspicture}
\end{LTXexample}

\clearpage
\section{Loads: Position and naming}
\begin{LTXexample}
\begin{pspicture}(-3,-3)(3,3)
\psgrid[subgriddiv=0,griddots=10,gridlabels=7pt,gridcolor=magenta]
% ------ KNOTS definition -----------
\pnode(-2,0){A}    \pnode(1.5,0){B}
\pnode(1.5,-1.5){E}\pnode(1.5,1.5){F}
\pnode(3,0){G}
 \node(A) \node(E) \node(B) \node(F) \node(G)
% ------ Structure drawing and fixed ends position -----------
 \psline[linecolor=red](A)(G)
 \psline[linecolor=red](E)(F)
 \rput{-90}(A){\fixedend}    %   left FE
 \rput{0}(E){\fixedend}      % bottom FE
 \rput{-160}(F){\fixedend}   %    top FE
 \rput{90}(G){\fixedend}     %  right FE
% ------ Loads: Position and naming -----------
\psArrowCivil[RotArrows=0,length=2.0,start=0.286,%
    linecolor=magenta,OffsetLabel=-0.3](A)(B){\rput{90}{P$_1$}}
\psArrowCivil[RotArrows=30,length=1.5,start=0.65,%
    linecolor=blue,OffsetLabel=0.3](A)(B){\rput{60}{P$_2$}}
\psArrowCivil[RotArrows=-200,length=1.0,start=0.47,%
    linecolor=blue,OffsetLabel=-0.3](A)(B){\rput{-70}{T}}
% ------ Spans measures -----------
 \pcline [offset=-5mm]{|-|}(-2,-1.5)(1.5,-1.5)
 \lput*{:U}{\scriptsize 3.50 m}
 \pcline [offset=-5mm]{|-|}(1.5,-1.5)(3,-1.5)
 \lput*{:U}{\scriptsize 1.50 m}
 \pcline [offset=5mm]{|-|}(-2,-1.5)(-2,1.5)
 \lput*{:U}{\scriptsize 3.00 m}
 \pcline [offset=0mm]{|-|}(2,0)(2,1.5)
 \lput*{:U}{\scriptsize 1.50 m}
\end{pspicture}
\end{LTXexample}


\clearpage
\section{Distributed load}

\begin{LTXexample}
\def\BMdistributed#1#2#3{#2 x sub 0.5 #1 x mul mul mul #3 mul}
\begin{pspicture}(-1,-2)(11,2)
\psgrid[subgriddiv=0,griddots=10,gridlabels=7pt,gridcolor=magenta]
\pnode(0,0) {A}
\pnode(10,0) {B}
\rput{0}(A){\hinge}
\rput{0}(B){\roller}
\rput(0,-1){\Large A}
\rput(10,-1){\Large B}
\psline[linecolor=blue](A)(B)
%==========================================================================
% Paramenters
% #1 q = 12
% #2 l = 10
% #3 scale factor =0.01: to be multiplied by (10/l)^2 (when l<> 10)
%----------- BM distributed load ----------------------
 \pscustom[linecolor=blue,linewidth=1pt,fillstyle=solid,fillcolor=cyan]{
   \psplot[linecolor=blue]{0}{10}{\BMdistributed{12}{10}{0.01}}
   \psline[](10,0)(0,0)}
\psset{arrowsize=1.5mm}
 \multido{\nStart=0.0+0.2}{51}{%
 \pnode(\nStart,0){E1}
 \pnode(! /x \nStart\space def
       x \BMdistributed{12}{10}{0.01}){E2}
 \psline[linecolor=blue,arrowinset=0,arrowsize=1mm]{->}(E2)(E1)}
\end{pspicture}
\end{LTXexample}


\psset{arrowsize=0.8mm,arrowinset=0}
\clearpage
\section{Macro \texttt{\textbackslash triload}}

\begin{LTXexample}
\begin{pspicture}[showgrid=true](-1,-4)(11,3)
% Total span is (K+1) times L, say AC=(K+1)*L  [K=dimensionless value]
% ------------------------------------
 \triload[K=1,P=8,L=5] % k=1 -> AB=BC
% \triload[K=0.333,P=8,L=7.5] % k=1/3, like example 6
% \triload[K=2,P=8,L=3]  % k=2 -> BM always NEGATIVE in the whole structure
% \triload[K=2.5,P=8,L=2] % k>2 -> Reaction in C downwards
% ------------------------------------
\end{pspicture}
\end{LTXexample}

\begin{LTXexample}
\begin{pspicture}(-1,-6)(11,3)
% \psgrid[subgriddiv=0,griddots=10,gridlabels=7pt,gridcolor=magenta]
 % Total span is (K+1) times L, say AC=(K+1)*L  [K=dimensionless value]
% ------------------------------------
% \triload[K=1,P=8,L=5] % k=1 -> AB=BC
 \triload[K=0.333,P=8,L=7.5] % k=1/3, like example 6
% \triload[K=2,P=8,L=3]  % k=2 -> BM always NEGATIVE in the whole structure
% \triload[K=2.5,P=8,L=2] % k>2 -> Reaction in C downwards
% ------------------------------------
\end{pspicture}
\end{LTXexample}

\begin{LTXexample}
\begin{pspicture}(-1,-3)(11,5)
% \psgrid[subgriddiv=0,griddots=10,gridlabels=7pt,gridcolor=magenta]
 % Total span is (K+1) times L, say AC=(K+1)*L  [K=dimensionless value]
% ------------------------------------
% \triload[K=1,P=8,L=5] % k=1 -> AB=BC
% \triload[K=0.333,P=8,L=7.5] % k=1/3, like example 6
 \triload[K=2,P=8,L=3]  % k=2 -> BM always NEGATIVE in the whole structure
% \triload[K=2.5,P=8,L=2] % k>2 -> Reaction in C downwards
% ------------------------------------
\end{pspicture}
\end{LTXexample}

\begin{LTXexample}
\begin{pspicture}(-1,-3)(11,4)
% \psgrid[subgriddiv=0,griddots=10,gridlabels=7pt,gridcolor=magenta]
 % Total span is (K+1) times L, say AC=(K+1)*L  [K=dimensionless value]
% ------------------------------------
% \triload[K=1,P=8,L=5] % k=1 -> AB=BC
% \triload[K=0.333,P=8,L=7.5] % k=1/3, like example 6
% \triload[K=2,P=8,L=3]  % k=2 -> BM always NEGATIVE in the whole structure
 \triload[K=2.5,P=8,L=2] % k>2 -> Reaction in C downwards
% ------------------------------------
\end{pspicture}
\end{LTXexample}


\clearpage
\section{Non-symmetric superimposed dead load}

\begin{LTXexample}
\begin{pspicture}(-3,-3)(3,3)
\pnode(-2,0){A}   \pnode(2,0) {B}
\pnode(0,1.5){V}  \pnode(-2,1.5) {A0}
\pnode(2,1.5){B0}
\node(A) \node(B) \node(V)
\psline[linecolor=red](A)(V)(B)(A)
\rput{0}(A){\hinge} \rput{0}(B){\roller}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%        Non-symmetric superimposed dead load
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\psframe[fillstyle=solid,fillcolor=green](-2,1.5)(0,1.7)
\psframe[fillstyle=solid,fillcolor=yellow](2,0)(2.2,1.5)
\multido{\nStart=0.0+0.0833}{13}{%
\psArrowCivil[RotArrows=0,length=0.2,start=\nStart,%
    linecolor=black](A0)(V){}
%        Lateral load  (i.e. wind)
\psArrowCivil[RotArrows=180,length=0.2,start=\nStart,%
    linecolor=blue](B)(B0){}}
\end{pspicture}
\end{LTXexample}



\clearpage
\section{Distributed load for all beams}
\begin{LTXexample}
\begin{pspicture}(-1,-2)(13,2)
\psgrid[subgriddiv=0,griddots=10,gridlabels=7pt,gridcolor=gray]
\pnode(0,0) {A} \pnode(12,0) {B} \pnode(12,0.4) {B1}
 \node (A)
 \rput(-0.5,0){\Large A}
 \rput(12.5,0){\Large B}
\psline[linecolor=blue,linewidth=1.5pt](A)(B)  % join A-B
%------------------------------------------------------------
 \psframe[linecolor=blue,fillcolor=green,fillstyle=solid](A)(B1)
%
% distributed load for all beams
\multido{\nBegin=0+0.025}{41}{%
\psArrowCivil[RotArrows=0,length=0.4,start=\nBegin,%
    linecolor=black](A)(B){}}
%
% recursive routine
 \multido{\rStart=0.00+3.00}{5}{%
 \pnode(0,0){E1}
 \pnode(\rStart,0){E2}
  \rput{0}(E2){\hinge}
 \psline[linecolor=blue,arrowinset=0,arrowsize=1mm]{o-o}(E1)(E2)}
\end{pspicture}
\end{LTXexample}

\clearpage
\section{Distributed load for all beams}

\begin{center}
\psset{xunit=0.5cm,yunit=0.5cm}   % Scaling
\begin{pspicture}(-3,-2)(16,32)
\psgrid[subgriddiv=0,griddots=10,gridlabels=7pt,gridcolor=magenta]
% ------ KNOTS definition -----------
\pnode(0,0) {A0}\pnode(5,0) {B0} \pnode(12,0) {C0}
  \node (A0)  \node (B0)  \node (C0)
\pnode(0,30) {A10} \pnode(5,30) {B10} \pnode(12,30) {C10}

%------------------------
\pnode(5,27) {B9}\pnode(5,24) {B8}
\pnode(5,6) {B2} \pnode(5,9) {B3}
%------------------------
\pnode(14,9) {D3} \pnode(14,12) {D4}
\pnode(14,15) {D5}\pnode(14,18) {D6}
\pnode(14,21) {D7}
%------------------------
\pnode(0,27)  {A9}\pnode(12,27) {C9}
\pnode(0,24)  {A8}\pnode(12,24) {C8}
\pnode(0,21)  {A7}\pnode(12,21) {C7}
\pnode(0,18)  {A6}\pnode(12,18) {C6}
\pnode(0,15)  {A5}\pnode(12,15) {C5}
\pnode(0,12) {A4} \pnode(12,12) {C4}
\pnode(0,9)  {A3} \pnode(12,9) {C3}
\pnode(0,6)  {A2} \pnode(12,6) {C2}
\pnode(0,3)  {A1} \pnode(12,3) {C1}
%
% ------ Structure drawing and fixed ends position -----------
 \psline[linecolor=black,linewidth=0.05](A0)(A10)
 \psline[linecolor=black,linewidth=0.05](C0)(C10)
%
 \psline[linecolor=black,linewidth=0.05](B9)(B10)
 \psline[linecolor=black,linewidth=0.05](B3)(B8)
 \psline[linecolor=black,linewidth=0.05](B0)(B2)
%
 \psline[linecolor=black,linewidth=0.05](A10)(C10)
 \psline[linecolor=black,linewidth=0.05](A9)(C9)
 \psline[linecolor=black,linewidth=0.05](A8)(C8)
 \psline[linecolor=black,linewidth=0.05](A7)(D7)
 \psline[linecolor=black,linewidth=0.05](A6)(D6)
 \psline[linecolor=black,linewidth=0.05](A5)(D5)
 \psline[linecolor=black,linewidth=0.05](A4)(D4)
 \psline[linecolor=black,linewidth=0.05](A3)(D3)
 \psline[linecolor=black,linewidth=0.05](A2)(C2)
 \psline[linecolor=black,linewidth=0.05](A1)(C1)
%
 \psline[linecolor=black,linewidth=0.05](D3)(D7)
 \rput{0}(A0){\fixedend}      %  bottom FE, column A
 \rput{0}(B0){\fixedend}      %  bottom FE, column B
 \rput{0}(C0){\fixedend}      %  bottom FE, column C
% ------ Loads: Position and naming -----------
\psArrowCivil[RotArrows=90,length=1.0,start=0,%
    linecolor=blue,OffsetLabel=0.2](A10)(B10){\rput{0}{\scriptsize 0.25 t}}
\psArrowCivil[RotArrows=90,length=1.5,start=0,%
    linecolor=blue,OffsetLabel=0.2](A9)(B9){\rput{0}{\scriptsize 0.50 t}}
\psArrowCivil[RotArrows=90,length=1.5,start=0,%
    linecolor=blue,OffsetLabel=0.2](A8)(B8){\rput{0}{\scriptsize 0.50 t}}
\psArrowCivil[RotArrows=90,length=1.5,start=0,%
    linecolor=blue,OffsetLabel=0.2](A7)(C7){\rput{0}{\scriptsize 0.50 t}}
\psArrowCivil[RotArrows=90,length=1.5,start=0,%
    linecolor=blue,OffsetLabel=0.2](A6)(C6){\rput{0}{\scriptsize 0.50 t}}
\psArrowCivil[RotArrows=90,length=1.5,start=0,%
    linecolor=blue,OffsetLabel=0.2](A5)(C5){\rput{0}{\scriptsize 0.50 t}}
\psArrowCivil[RotArrows=90,length=1.5,start=0,%
    linecolor=blue,OffsetLabel=0.2](A4)(C4){\rput{0}{\scriptsize 0.50 t}}
\psArrowCivil[RotArrows=90,length=1.5,start=0,%
    linecolor=blue,OffsetLabel=0.2](A3)(B3){\rput{0}{\scriptsize 0.50 t}}
\psArrowCivil[RotArrows=90,length=1.5,start=0,%
    linecolor=blue,OffsetLabel=0.2](A2)(B2){\rput{0}{\scriptsize 0.50 t}}
\psArrowCivil[RotArrows=90,length=1.5,start=0,%
    linecolor=blue,OffsetLabel=0.2](A1)(C1){\rput{0}{\scriptsize 0.50 t}}
%
% ------ Spans measures -----------
 \pcline [offset=-0.5]{|-|}(0,0)(5,0)  \lput*{:U}{\scriptsize 5.00}
 \pcline [offset=-0.5]{|-|}(5,0)(12,0) \lput*{:U}{\scriptsize 7.00}
 \pcline [offset=-0.5]{|-|}(12,0)(14,0) \lput*{:U}{\scriptsize 2.00}
%------------------------
 \pcline [offset=-0.5]{|-|}(14,0)(14,3)  \lput*{:U}{\scriptsize 3.00}
 \pcline [offset=-0.5]{|-|}(14,3)(14,6)  \lput*{:U}{\scriptsize 3.00}
 \pcline [offset=-0.5]{|-|}(14,6)(14,9)  \lput*{:U}{\scriptsize 3.00}
 \pcline [offset=-0.5]{|-|}(14,9)(14,12) \lput*{:U}{\scriptsize 3.00}
 \pcline [offset=-0.5]{|-|}(14,12)(14,15)\lput*{:U}{\scriptsize 3.00}
 \pcline [offset=-0.5]{|-|}(14,15)(14,18)\lput*{:U}{\scriptsize 3.00}
 \pcline [offset=-0.5]{|-|}(14,18)(14,21)\lput*{:U}{\scriptsize 3.00}
 \pcline [offset=-0.5]{|-|}(14,21)(14,24)\lput*{:U}{\scriptsize 3.00}
 \pcline [offset=-0.5]{|-|}(14,24)(14,27)\lput*{:U}{\scriptsize 3.00}
 \pcline [offset=-0.5]{|-|}(14,27)(14,30)\lput*{:U}{\scriptsize 3.00}
\end{pspicture}
\end{center}


\begin{lstlisting}
\psset{xunit=0.5cm,yunit=0.5cm}   % Scaling
\begin{pspicture}(-3,-2)(16,32)
\psgrid[subgriddiv=0,griddots=10,gridlabels=7pt,gridcolor=magenta]
% ------ KNOTS definition -----------
\pnode(0,0) {A0}\pnode(5,0) {B0} \pnode(12,0) {C0}
  \node (A0)  \node (B0)  \node (C0)
\pnode(0,30) {A10} \pnode(5,30) {B10} \pnode(12,30) {C10}

%------------------------
\pnode(5,27) {B9}\pnode(5,24) {B8}
\pnode(5,6) {B2} \pnode(5,9) {B3}
%------------------------
\pnode(14,9) {D3} \pnode(14,12) {D4}
\pnode(14,15) {D5}\pnode(14,18) {D6}
\pnode(14,21) {D7}
%------------------------
\pnode(0,27)  {A9}\pnode(12,27) {C9}
\pnode(0,24)  {A8}\pnode(12,24) {C8}
\pnode(0,21)  {A7}\pnode(12,21) {C7}
\pnode(0,18)  {A6}\pnode(12,18) {C6}
\pnode(0,15)  {A5}\pnode(12,15) {C5}
\pnode(0,12) {A4} \pnode(12,12) {C4}
\pnode(0,9)  {A3} \pnode(12,9) {C3}
\pnode(0,6)  {A2} \pnode(12,6) {C2}
\pnode(0,3)  {A1} \pnode(12,3) {C1}
%
% ------ Structure drawing and fixed ends position -----------
 \psline[linecolor=black,linewidth=0.05](A0)(A10)
 \psline[linecolor=black,linewidth=0.05](C0)(C10)
%
 \psline[linecolor=black,linewidth=0.05](B9)(B10)
 \psline[linecolor=black,linewidth=0.05](B3)(B8)
 \psline[linecolor=black,linewidth=0.05](B0)(B2)
%
 \psline[linecolor=black,linewidth=0.05](A10)(C10)
 \psline[linecolor=black,linewidth=0.05](A9)(C9)
 \psline[linecolor=black,linewidth=0.05](A8)(C8)
 \psline[linecolor=black,linewidth=0.05](A7)(D7)
 \psline[linecolor=black,linewidth=0.05](A6)(D6)
 \psline[linecolor=black,linewidth=0.05](A5)(D5)
 \psline[linecolor=black,linewidth=0.05](A4)(D4)
 \psline[linecolor=black,linewidth=0.05](A3)(D3)
 \psline[linecolor=black,linewidth=0.05](A2)(C2)
 \psline[linecolor=black,linewidth=0.05](A1)(C1)
%
 \psline[linecolor=black,linewidth=0.05](D3)(D7)
 \rput{0}(A0){\fixedend}      %  bottom FE, column A
 \rput{0}(B0){\fixedend}      %  bottom FE, column B
 \rput{0}(C0){\fixedend}      %  bottom FE, column C
% ------ Loads: Position and naming -----------
\psArrowCivil[RotArrows=90,length=1.0,start=0,%
    linecolor=blue,OffsetLabel=0.2](A10)(B10){\rput{0}{\scriptsize 0.25 t}}
\psArrowCivil[RotArrows=90,length=1.5,start=0,%
    linecolor=blue,OffsetLabel=0.2](A9)(B9){\rput{0}{\scriptsize 0.50 t}}
\psArrowCivil[RotArrows=90,length=1.5,start=0,%
    linecolor=blue,OffsetLabel=0.2](A8)(B8){\rput{0}{\scriptsize 0.50 t}}
\psArrowCivil[RotArrows=90,length=1.5,start=0,%
    linecolor=blue,OffsetLabel=0.2](A7)(C7){\rput{0}{\scriptsize 0.50 t}}
\psArrowCivil[RotArrows=90,length=1.5,start=0,%
    linecolor=blue,OffsetLabel=0.2](A6)(C6){\rput{0}{\scriptsize 0.50 t}}
\psArrowCivil[RotArrows=90,length=1.5,start=0,%
    linecolor=blue,OffsetLabel=0.2](A5)(C5){\rput{0}{\scriptsize 0.50 t}}
\psArrowCivil[RotArrows=90,length=1.5,start=0,%
    linecolor=blue,OffsetLabel=0.2](A4)(C4){\rput{0}{\scriptsize 0.50 t}}
\psArrowCivil[RotArrows=90,length=1.5,start=0,%
    linecolor=blue,OffsetLabel=0.2](A3)(B3){\rput{0}{\scriptsize 0.50 t}}
\psArrowCivil[RotArrows=90,length=1.5,start=0,%
    linecolor=blue,OffsetLabel=0.2](A2)(B2){\rput{0}{\scriptsize 0.50 t}}
\psArrowCivil[RotArrows=90,length=1.5,start=0,%
    linecolor=blue,OffsetLabel=0.2](A1)(C1){\rput{0}{\scriptsize 0.50 t}}
%
% ------ Spans measures -----------
 \pcline [offset=-0.5]{|-|}(0,0)(5,0)  \lput*{:U}{\scriptsize 5.00}
 \pcline [offset=-0.5]{|-|}(5,0)(12,0) \lput*{:U}{\scriptsize 7.00}
 \pcline [offset=-0.5]{|-|}(12,0)(14,0) \lput*{:U}{\scriptsize 2.00}
%------------------------
 \pcline [offset=-0.5]{|-|}(14,0)(14,3)  \lput*{:U}{\scriptsize 3.00}
 \pcline [offset=-0.5]{|-|}(14,3)(14,6)  \lput*{:U}{\scriptsize 3.00}
 \pcline [offset=-0.5]{|-|}(14,6)(14,9)  \lput*{:U}{\scriptsize 3.00}
 \pcline [offset=-0.5]{|-|}(14,9)(14,12) \lput*{:U}{\scriptsize 3.00}
 \pcline [offset=-0.5]{|-|}(14,12)(14,15)\lput*{:U}{\scriptsize 3.00}
 \pcline [offset=-0.5]{|-|}(14,15)(14,18)\lput*{:U}{\scriptsize 3.00}
 \pcline [offset=-0.5]{|-|}(14,18)(14,21)\lput*{:U}{\scriptsize 3.00}
 \pcline [offset=-0.5]{|-|}(14,21)(14,24)\lput*{:U}{\scriptsize 3.00}
 \pcline [offset=-0.5]{|-|}(14,24)(14,27)\lput*{:U}{\scriptsize 3.00}
 \pcline [offset=-0.5]{|-|}(14,27)(14,30)\lput*{:U}{\scriptsize 3.00}
\end{pspicture}
\end{lstlisting}

\psset{unit=1cm}   % Scaling

\clearpage
\section{Simple Beam with one overhang: TRIANGULAR distributed load p}

\begin{LTXexample}
\begin{pspicture}(-1,-3.5)(9,1.5)
\pnode(0,0) {A}\pnode(2,0) {B}\pnode(8,0) {C}
\rput{0}(C){\hinge}\rput{0}(B){\roller}
\psline[linecolor=red,fillcolor=yellow,fillstyle=solid](0,0)(8,0)(8,1)(0,0)
\multido{\nStart=1.00+0.025}{-37}{%
    \psArrowCivil[RotArrows=0,length=\nStart,start=\nStart,%
       linecolor=magenta](A)(C){}}
\rput(8.3,0.4){\large p} \rput(0,-0.4){\Large A}
\rput(2,-1){\Large B}    \rput(8.3,-0.6){\Large C}
\pcline[offset=0,linecolor=blue]{|-|}(0,-3)(2,-3) \lput*{:U}{\bf $\frac{l}{3}$}
\pcline[offset=0,linecolor=blue]{|-|}(2,-3)(8,-3) \lput*{:U}{\bf $l$}
%%%========================================================================
% Paramenters: #1 p = 6   #2 l = 6  #3 scale factor =0.15
%----------- Bending Moment in span AB ----------------------
\def\MflettAB#1#2#3{#1 #2 div -.125 mul x mul x mul x mul #3 mul neg}
\pscustom[linecolor=blue,linewidth=1pt,fillstyle=hlines]{
  \psplot[]{0}{2}{\MflettAB{6}{6}{0.15}}\psline[](2,0)(0,0)}
%----------- Shear in span AB ----------------------
\def\TaglioAB#1#2#3{#1 #2 div -.375 mul x mul x mul #3 mul}
\pscustom[linecolor=green,linewidth=1pt,fillstyle=crosshatch]{
  \psplot[]{0}{2}{\TaglioAB{6}{6}{0.15}}\psline[](2,0)(0,0)}
%----------- Bending Moment in span BC ----------------------
\def\MflettBC#1#2#3{#1 #2 div -.125 mul x mul x mul x mul
 #1 3.375 div #2 mul x mul add #1 10.125 div #2 mul #2 mul sub #3 mul neg}
\pscustom[linecolor=blue,linewidth=1pt,fillstyle=hlines]{%
  \psplot[]{2}{8}{\MflettBC{6}{6}{0.15}}\psline[](8,0)(2,0)}
%----------- Shear in span BC ----------------------
\def\TaglioBC#1#2#3{#1 #2 div -.375 mul x mul x mul
     #1 3.375 div #2 mul add #3 mul}
\pscustom[linecolor=green,linewidth=1pt,fillstyle=crosshatch]{%
  \psplot[]{2}{8}{\TaglioBC{6}{6}{0.15}}\psline[](8,0)(2,0)(2,1.4)}
%%%========================================================================
\psline[linewidth=1.5pt](0,0)(8,0)  % Printing beam AC after diagrams BM/S
\rput(3,1.6){\em {\scriptsize Shear diagram (green boundary)}}
\rput(3,-1.6){\em {\scriptsize Bending Moment diagram (blue boundary)}}
\rput(2,-1.9){\scriptsize [assumed positive downwards]}
\rput(5,-1){\bf {\large +}} \rput(2.5,0.6){\bf {\large +}}
\rput(7.7,-1.3){\bf {\Large -}}
\end{pspicture}
\end{LTXexample}


\end{document}
