summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2007-11-17 21:11:45 +0000
committerNorbert Preining <preining@logic.at>2007-11-17 21:11:45 +0000
commite1702efb3b4f7e10d45546fd43cb0a8b9bf1d289 (patch)
treecd8733483396ef100c80d630df48e98461e7f6d8
parente409d1dee3be50818e789e45ec949a95770aa1b7 (diff)
new package pst-stru (->pstricks)
git-svn-id: svn://tug.org/texlive/trunk@5489 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/generic/pst-stru/Changes8
-rw-r--r--Master/texmf-dist/doc/generic/pst-stru/README10
-rw-r--r--Master/texmf-dist/doc/generic/pst-stru/pst-stru-doc.pdfbin0 -> 201666 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pst-stru/pst-stru-doc.tex661
-rw-r--r--Master/texmf-dist/tex/generic/pst-stru/pst-stru.tex316
-rw-r--r--Master/texmf-dist/tex/latex/pst-stru/pst-stru.sty8
-rwxr-xr-xMaster/tlpkg/bin/ctan2tds1
-rw-r--r--Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc1
-rw-r--r--Master/tlpkg/tlpsrc/pst-stru.tlpsrc2
9 files changed, 1007 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/generic/pst-stru/Changes b/Master/texmf-dist/doc/generic/pst-stru/Changes
new file mode 100644
index 00000000000..32baac925d6
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-stru/Changes
@@ -0,0 +1,8 @@
+pst-stru.tex -----------------------------
+
+0.11 2006/10/25 First CTAN public release. (hv)
+
+
+pst-stru.sty -----------------------------
+ 2006/10/25 First CTAN public release.
+
diff --git a/Master/texmf-dist/doc/generic/pst-stru/README b/Master/texmf-dist/doc/generic/pst-stru/README
new file mode 100644
index 00000000000..dc991ce8c14
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-stru/README
@@ -0,0 +1,10 @@
+------------------------------------------------------
+| pst-stru: PSTricks package for structural elements |
+------------------------------------------------------
+
+pst-stru is a PSTricks package to draw structural schemes in
+civil engineering analysis (beams, portals, archs, piles).
+It can be used either with TeX or LaTeX.
+
+Put the files pst-stru.sty|tex into an existing local
+TEXMF tree and then run texhash to update the data base. \ No newline at end of file
diff --git a/Master/texmf-dist/doc/generic/pst-stru/pst-stru-doc.pdf b/Master/texmf-dist/doc/generic/pst-stru/pst-stru-doc.pdf
new file mode 100644
index 00000000000..cde5d43f2ce
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-stru/pst-stru-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pst-stru/pst-stru-doc.tex b/Master/texmf-dist/doc/generic/pst-stru/pst-stru-doc.tex
new file mode 100644
index 00000000000..a39c3ee151e
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-stru/pst-stru-doc.tex
@@ -0,0 +1,661 @@
+\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}
diff --git a/Master/texmf-dist/tex/generic/pst-stru/pst-stru.tex b/Master/texmf-dist/tex/generic/pst-stru/pst-stru.tex
new file mode 100644
index 00000000000..1500a80ed77
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/pst-stru/pst-stru.tex
@@ -0,0 +1,316 @@
+%%
+%% This is file `pst-stru.tex',
+%%
+%% IMPORTANT NOTICE:
+%%
+%% Package `pst-stru.tex'
+%%
+%% Authors : Giuseppe Matarazza <joematara@hotmail.com>
+%% Manuel LUQUE <Mluque5130@aol.com>
+%% Herbert Voss <voss@pstricks.de> (pst-xkey)
+%%
+%% 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.
+%%
+%% DESCRIPTION:
+%% `pst-stru' is a PSTricks package for civil engineers
+%%
+\csname PSTCircLoaded\endcsname
+\let\PSTCircLoaded\endinput
+% Require PSTricks and pst-node packages
+\ifx\PSTricksLoaded\endinput\else\input pstricks.tex\fi
+\ifx\PSTnodesLoaded\endinput\else\input pst-node.tex\fi
+\ifx\PSTnodesLoaded\endinput\else\input pst-plot.tex\fi
+\ifx\PSTXKeyLoaded\endinput\else\input pst-xkey\fi
+%
+\def\fileversion{0.12}%
+\def\filedate{2006/10/26}%
+\message{`PST-Stru v\fileversion, \filedate\space (GM, ML)}%
+%
+\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax
+\pst@addfams{pst-stru}
+%
+\SpecialCoor
+\psset{dimen=middle}
+\newdimen\Start
+\newdimen\debut
+\newdimen\fin
+\newdimen\Pst@Pos
+\newcount\PAS
+%
+\define@boolkey[psset]{pst-stru}[Pst@]{node}[true]{}
+\define@key[psset]{pst-stru}{position}{\def\psk@circuit@Pos{#1}}
+\define@key[psset]{pst-stru}{OffsetLabel}{\def\psk@Label@Offset{#1}}
+\define@key[psset]{pst-stru}{OffsetDipole}{\def\psk@Dipole@Offset{#1}}
+\define@key[psset]{pst-stru}{AngleLabel}{\def\psk@Angle@Label{#1}}
+\psset{position=0.5,node=false,OffsetLabel=0.70,OffsetDipole=0,AngleLabel=0}
+%Commande permettant de placer un dipôle entre deux noeuds
+%
+\def\circput{\@ifnextchar[{\pst@circput}{\pst@circput[]}}
+\def\pst@circput[#1](#2)(#3)#4#5{{%
+\psset{#1}
+\Pst@Pos=\psk@circuit@Pos pt
+\multiply\Pst@Pos by 2
+\def\Position{\pst@number\Pst@Pos}
+\pst@getcoor{#2}\pst@tempa
+\pst@getcoor{#3}\pst@tempb
+\pnode(!%
+ /k \psk@circuit@Pos\space def
+ \pst@tempa /Y1 exch \pst@number\psyunit div def
+ /X1 exch \pst@number\psxunit div def
+ \pst@tempb /Y2 exch \pst@number\psyunit div def
+ /X2 exch \pst@number\psxunit div def
+ /XM X1 1 k sub mul X2 k mul add def
+ /YM Y1 1 k sub mul Y2 k mul add def
+ /deno X2 X1 sub def
+ /num Y2 Y1 sub def
+ /angle num deno Atan def
+ /XE1 XM 1 angle cos mul sub def
+ /YE1 YM 1 angle sin mul sub def
+ /XE2 XM 1 angle cos mul add def
+ /YE2 YM 1 angle sin mul add def
+ XM YM){M@}
+\pnode(! XE1 YE1){E@1}
+\pnode(! XE2 YE2){E@2}
+\pcline(E@1)(#2)
+\pcline(E@2)(#3)
+\ncline[linestyle=none]{#2}{#3}
+\ncput[npos=\Position]{\pnode{Temp}}
+\pcline[linestyle=none,offset=\psk@Dipole@Offset](#2)(Temp)
+\lput{:U}{#4}
+\pcline[linestyle=none,offset=\psk@Label@Offset](#2)(Temp)
+\lput{\psk@Angle@Label}{#5}
+ }}
+% Commande permettant de dessiner une flèche de longueur variable
+% entre deux noeuds
+\define@key[psset]{pst-stru}{length}{\edef\psk@circuit@Arrowlenght{#1}}
+\define@key[psset]{pst-stru}{start}{\edef\psk@circuit@start{#1}}
+\psset{length=1,start=0.5}
+%
+\def\psArrow{\@ifnextchar[{\pst@Arrow}{\pst@Arrow[]}}
+\def\pst@Arrow[#1](#2)(#3)#4{{%
+\psset{#1}
+\pst@getcoor{#2}\pst@tempa
+\pst@getcoor{#3}\pst@tempb
+\pnode(!%
+ /length \psk@circuit@Arrowlenght\space def
+ /K \psk@circuit@start\space def
+ \pst@tempa /Y1 exch \pst@number\psyunit div def
+ /X1 exch \pst@number\psxunit div def
+ \pst@tempb /Y2 exch \pst@number\psyunit div def
+ /X2 exch \pst@number\psxunit div def
+ /XM X1 1 K sub mul X2 K mul add def
+ /YM Y1 1 K sub mul Y2 K mul add def
+ \pst@tempa /Y1 exch \pst@number\psyunit div def
+ /X1 exch \pst@number\psxunit div def
+ \pst@tempb /Y2 exch \pst@number\psyunit div def
+ /X2 exch \pst@number\psxunit div def
+ /Angle Y2 Y1 sub X2 X1 sub Atan def
+ /XE1 XM length Angle cos mul add def
+ /YE1 YM length Angle sin mul add def
+ XE1 YE1){E@}%
+\pnode(! XM YM){M@@}
+\psset{arrows=->}
+\psline[#1](M@@)(E@)%
+\pcline[linestyle=none,offset=\psk@Label@Offset,arrows=-](M@@)(E@)
+\lput{\psk@Angle@Label}{#4}
+}}
+
+%
+\def\node(#1){%
+\pscircle*(#1){2\pslinewidth}
+}
+\def\arrow{%
+ \psline[arrowinset=0,arrowscale=1.0,linewidth=0.75\pslinewidth]{->}(-2,0)(0,0)%
+ }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Structural Engineering: MACROs
+% Updating:
+% 7-10-2003 1) \def\fixedend
+% 7-10-2003 2) macro \psArrowCivil
+% 8-10-2003 3) macro \psArrowCivil: revised on loads label position
+% 11-10-2003 4) \def\hinge, \def\roller, \def\guide, \interhinge,
+% \def\clockCouple, \def\noclockCouple
+%
+% 25-10-2003 5) macro \triload for Parameterized Structure ps_01
+% 2-11-2003 6) updating the above macro
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\fixedend{%
+ \psframe[fillstyle=vlines,linestyle=none,hatchwidth=0.5\pslinewidth](-0.5,0)(0.5,-0.2)
+ \psline[linewidth=1.5\pslinewidth](-0.5,0)(0.5,0)
+ }
+
+\def\hinge{%
+ \psframe[fillstyle=vlines,linestyle=none,hatchwidth=0.5\pslinewidth](-0.3,-0.45)(0.3,-0.3)
+ \psline[linewidth=1.5\pslinewidth](-0.3,-0.3)(0.3,-0.3)
+ \psline(0,0)(-0.3,-0.3)
+ \psline(0,0)(0.3,-0.3)
+ }
+
+\def\interhinge{%
+ \pscircle[fillstyle=solid](0,0){0.1}
+ }
+
+\def\guide{%
+ \psframe[fillstyle=vlines,linestyle=none,hatchwidth=0.5\pslinewidth](-0.3,-0.3)(0.3,-0.1)
+ \psline[linewidth=1.5\pslinewidth](-0.3,-0.1)(0.3,-0.1)
+ \psline[linewidth=1.5\pslinewidth](-0.3,0.1)(0.3,0.1)
+ \psframe[fillstyle=vlines,linestyle=none,hatchwidth=0.5\pslinewidth](-0.3,0.3)(0.3,0.1)
+ }
+
+\def\roller{%
+ \psframe[fillstyle=vlines,linestyle=none,hatchwidth=0.5\pslinewidth](-0.3,-0.7)(0.3,-0.5)
+ \psline[linewidth=1.5\pslinewidth](-0.3,-0.3)(0.3,-0.3)
+ \psline(0,0)(-0.3,-0.3)
+ \psline(0,0)(0.3,-0.3)
+ \psline(-0.3,-0.5)(0.3,-0.5)
+ \pscircle(-0.15,-0.4){0.1}
+ \pscircle(0.15,-0.4){0.1}
+ }
+
+\def\noclockCouple{%
+\psset{arrowsize=1.8mm}
+ \psarc{->}(0,0){0.5}{280}{60}
+ }
+
+\def\clockCouple{%
+\psset{arrowsize=1.8mm}
+ \psarc{<-}(0,0){0.5}{120}{260}
+ }
+
+%% Macro \psArrowCivil
+%% ===================
+\define@key[psset]{pst-stru}{RotArrows}{\edef\psk@circ@RotArrows{#1}}
+\psset{RotArrows=0}
+
+\def\psArrowCivil{\@ifnextchar[{\pst@ArrowCivil}{\pst@ArrowCivil[]}}
+
+\def\pst@ArrowCivil[#1](#2)(#3)#4{{%
+\psset{#1}
+\pst@getcoor{#2}\pst@tempa
+\pst@getcoor{#3}\pst@tempb
+\pnode(!%
+ /length \psk@circuit@Arrowlenght\space def
+ /K \psk@circuit@start\space def
+ \pst@tempa /Y1 exch \pst@number\psyunit div def
+ /X1 exch \pst@number\psxunit div def
+ \pst@tempb /Y2 exch \pst@number\psyunit div def
+ /X2 exch \pst@number\psxunit div def
+ /XM X1 1 K sub mul X2 K mul add def
+ /YM Y1 1 K sub mul Y2 K mul add def
+ \pst@tempa /Y1 exch \pst@number\psyunit div def
+ /X1 exch \pst@number\psxunit div def
+ \pst@tempb /Y2 exch \pst@number\psyunit div def
+ /X2 exch \pst@number\psxunit div def
+ /Angle Y2 Y1 sub X2 X1 sub Atan def
+ /RotArrows 180 90 \psk@circ@RotArrows\space add Angle add sub def
+ /XC XM length RotArrows cos mul sub def
+ /YC YM length RotArrows sin mul add def
+ XC YC){C@}%
+\pnode(! XM YM){M@@}
+\psset{arrows=->}
+\psline[#1](C@)(M@@)%
+\pcline[linestyle=none,offset=\psk@Label@Offset,arrows=-](C@)(M@@)
+%\lput{\psk@Angle@Label}{#4}
+\lput{:U}{#4}
+}}
+%%
+%% End: Macro \psArrowCivil %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% Starting Macro \triload
+%% =======================
+%
+\define@key[psset]{pst-stru}{K}{\edef\psk@triload@K{#1}}
+\define@key[psset]{pst-stru}{L}{\edef\psk@triload@L{#1}}
+\define@key[psset]{pst-stru}{P}{\edef\psk@triload@P{#1}}
+\define@key[psset]{pst-stru}{scaleFactor}{\edef\psk@triload@F{#1}}
+\psset{K=3,L=6,P=6,scaleFactor=0.15}
+\def\triload{\@ifnextchar[{\pst@triload}{\pst@triload[]}}
+\def\pst@triload[#1]{{%
+\psset{#1}
+\pnode(0,0){A}
+\pnode(! /xB \psk@triload@L\space \psk@triload@K\space mul def xB 0){B}
+\pnode(! /xC \psk@triload@K\space 1 add \psk@triload@L\space mul def xC 0){C}
+%
+\pnode(! /xB1 \psk@triload@L\space \psk@triload@K\space mul def xB1 -1){B1}
+\pnode(! /xC1 \psk@triload@K\space 1 add \psk@triload@L\space mul def xC1 -1){C1}
+%
+\pnode(! /xB2 \psk@triload@L\space \psk@triload@K\space mul def xB2 -3){B2}
+\pnode(! /xC2 \psk@triload@K\space 1 add \psk@triload@L\space mul def xC2 -3){C2}
+%
+\pnode(! /xC3 \psk@triload@K\space 1 add \psk@triload@L\space mul 0.25 add def xC3 0.5){C3}
+%
+\rput{0}(C){\hinge}
+\rput{0}(B){\roller}
+\psline[linecolor=red,fillcolor=yellow,fillstyle=solid](0,0)(!xC 0)(! xC 1)(0,0)
+%
+%
+ \rput(1,-2){$k=\psk@triload@K\space \quad l=\psk@triload@L\space$}
+
+ \rput(C3){\Large p}
+
+ \rput(0,-0.4){\Large A}
+ \rput(B1){\Large B}
+ \rput(C1){\Large C}
+%
+\pcline[offset=0,linecolor=blue]{|-|}(0,-3)(B2)
+\lput*{:U}{\bf $k\cdot l$}
+\pcline[offset=0,linecolor=blue]{|-|}(B2)(C2)
+\lput*{:U}{\bf $l$}
+
+% --------- Triangular Distributed Load -------------------------
+\multido{\nStart=1.00+0.025}{-37}{%
+\psArrowCivil[RotArrows=0,length=\nStart,start=\nStart,%
+ linecolor=magenta](A)(C){}}
+% définir les fonctions ici
+\pnode(! /func1 {\psk@triload@K\space 1 add \psk@triload@P\space exch div
+ -6.0 div \psk@triload@L\space div x mul x mul x mul
+ \psk@triload@F\space mul neg} def
+ /func2 {\psk@triload@K\space 1 add \psk@triload@P\space exch div
+ -2.0 div \psk@triload@L\space div x mul x mul
+ \psk@triload@F\space mul} def
+ /func3 {\psk@triload@K\space 1 add \psk@triload@P\space exch div
+ -6.0 div \psk@triload@L\space div x mul x mul x mul
+ \psk@triload@K\space \psk@triload@L\space mul neg x add
+ \psk@triload@K\space 1 add mul
+ \psk@triload@K\space 1 add mul
+ \psk@triload@P\space mul 6.0 div \psk@triload@L\space mul add
+ \psk@triload@F\space mul neg} def
+ /func4 {\psk@triload@K\space 1 add \psk@triload@P\space exch div
+ -2.0 div \psk@triload@L\space div x mul x mul
+ \psk@triload@K\space 1 add
+ \psk@triload@K\space 1 add mul 6.0 div
+ \psk@triload@P\space mul \psk@triload@L\space mul add
+ \psk@triload@F\space mul} def
+ 0 0){Temp}
+
+%----------- Bending Moment in span AB ----------------------
+\pscustom[linecolor=blue,linewidth=1pt,fillstyle=hlines]{
+\psplot{0}{xB}{func1}
+\psline(B)(A)}
+%----------- Shear in span AB ----------------------
+\pscustom[linecolor=green,linewidth=1pt,fillstyle=crosshatch]{
+ \psplot{0}{xB}{func2}
+ \psline(B)(A)}
+%
+% ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
+%
+% ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
+%
+%----------- Bending Moment in span BC ----------------------
+\pscustom[linecolor=blue,linewidth=1pt,fillstyle=hlines]{
+\psplot{xB}{xC}{func3}
+\psline(C)(B)}
+%----------- Shear in span BC ----------------------
+ \pscustom[linecolor=green,linewidth=1pt,fillstyle=crosshatch]{
+ \psplot{xB}{xC}{func4}
+
+% Closing Shear diagram in bearing B (right side)
+ \psline(C)(B)(! xB /x xB def func4)}
+}}
+\catcode`\@=\PstAtCode\relax
+%%
+%% End: Macro \triload %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% END: pst-stru.tex
diff --git a/Master/texmf-dist/tex/latex/pst-stru/pst-stru.sty b/Master/texmf-dist/tex/latex/pst-stru/pst-stru.sty
new file mode 100644
index 00000000000..7efee09646b
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pst-stru/pst-stru.sty
@@ -0,0 +1,8 @@
+\RequirePackage{pstricks}
+\RequirePackage{multido}
+\ProvidesPackage{pst-stru}[2006/10/25 package wrapper for
+ pst-stru.tex (hv)]
+\input{pst-stru.tex}
+\ProvidesFile{pst-stru.tex}
+ [\filedate\space v\fileversion\space `PST-Stru' (ML/GM)]
+\endinput
diff --git a/Master/tlpkg/bin/ctan2tds b/Master/tlpkg/bin/ctan2tds
index ecc1b28e49c..f6445c599e1 100755
--- a/Master/tlpkg/bin/ctan2tds
+++ b/Master/tlpkg/bin/ctan2tds
@@ -292,6 +292,7 @@ chdir $startdir || die "chdir($startdir) failed: $!"; # back to raw
'pst-slpe', "&MAKEpst",
'pst-soroban', "&MAKEpst",
'pst-spectra', "&MAKEpst",
+ 'pst-stru', "&MAKEpst",
'pst-text', "&MAKEpst",
'pst-uml', "&MAKEpst",
'pst-vue3d', "&MAKEpst",
diff --git a/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc b/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc
index b58f37e75b3..bea224b1486 100644
--- a/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc
+++ b/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc
@@ -39,6 +39,7 @@ depend pst-pdgr
depend pst-poly
depend pst-qtree
depend pst-slpe
+depend pst-stru
depend pst-soroban
depend pst-text
depend pst-uml
diff --git a/Master/tlpkg/tlpsrc/pst-stru.tlpsrc b/Master/tlpkg/tlpsrc/pst-stru.tlpsrc
new file mode 100644
index 00000000000..2f33565ae17
--- /dev/null
+++ b/Master/tlpkg/tlpsrc/pst-stru.tlpsrc
@@ -0,0 +1,2 @@
+name pst-stru
+category Package