summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/structmech/tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-05-28 22:26:36 +0000
committerKarl Berry <karl@freefriends.org>2018-05-28 22:26:36 +0000
commitca9120d93c497003e1ae261a1b9f1b33b568386c (patch)
treeb950e2c50c4b55ba918eb02758c48e620346e009 /Master/texmf-dist/doc/latex/structmech/tex
parent045d2337f4b99044ed7a5f95c3c2958a807c4a2a (diff)
structmech (28may18)
git-svn-id: svn://tug.org/texlive/trunk@47859 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/structmech/tex')
-rw-r--r--Master/texmf-dist/doc/latex/structmech/tex/structmech.sty421
1 files changed, 216 insertions, 205 deletions
diff --git a/Master/texmf-dist/doc/latex/structmech/tex/structmech.sty b/Master/texmf-dist/doc/latex/structmech/tex/structmech.sty
index 21dd1f60495..bb7356bf5f5 100644
--- a/Master/texmf-dist/doc/latex/structmech/tex/structmech.sty
+++ b/Master/texmf-dist/doc/latex/structmech/tex/structmech.sty
@@ -15,33 +15,33 @@
%% along with this program. If not, see <http://www.gnu.org/licenses/>.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% structmech: A TikZ command set for structural mechanics drawings
-% v0.1 by tlc
+% v1.0 by tlc
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{structmech}[2018/04/07 structmech: A TikZ command set for structural mechanics drawings]
-\RequirePackage{tikz}
-\RequirePackage{tikz-3dplot}
+\ProvidesPackage{structmech}[2018/05/29 v1.0 structmech: A TikZ command set for structural mechanics drawings]
\RequirePackage{ifthen}
-\RequirePackage{xparse}
-\RequirePackage{xstring}
\RequirePackage{kvoptions}
+\RequirePackage{tikz}
\RequirePackage{xkeyval}
-\usetikzlibrary{backgrounds,calc,positioning,arrows.meta,decorations.pathreplacing,decorations.pathmorphing,shapes.arrows}
-\definecolor{0066CC}{RGB}{0,102,204}
-\definecolor{00CC66}{RGB}{0,204,102}
-\definecolor{CC0066}{RGB}{204,0,102}
-\definecolor{CC6600}{RGB}{204,102,0}
-\DeclareOptionX<structmech>{axial}[CC0066]{\def\axialColor{#1}}
-\DeclareOptionX<structmech>{rotation}[00CC66]{\def\rotColor{#1}}
-\DeclareOptionX<structmech>{node}[0066CC]{\def\nodalColor{#1}}
-\DeclareOptionX<structmech>{fill}[CC0066]{\def\fillColor{#1}}
-\DeclareOptionX<structmech>{convention}[sign]{\IfStrEq{#1}{sign}{\def\convention{#1}}{}\IfStrEq{#1}{direction}{\def\convention{#1}}{}}
-\ExecuteOptionsX<structmech>{axial,rotation,node,convention,fill}
+\RequirePackage{xparse}
+\RequirePackage{xstring}
+\usetikzlibrary{calc,decorations.pathreplacing,positioning}
+\DeclareOptionX<structmech>{fill}[black]{\def\fillColor{#1}}
+\DeclareOptionX<structmech>{line}[black]{\def\lineColor{#1}}
+\DeclareOptionX<structmech>{node}[black]{\def\nodeColor{#1}}
+\DeclareOptionX<structmech>{axis}[black]{\def\axisColor{#1}}
+\DeclareOptionX<structmech>{rotation}[black]{\def\rotationColor{#1}}
+\DeclareOptionX<structmech>{convention}[sign]{\IfStrEq{#1}{sign}{\def\convention{sign}}{\def\convention{direction}}}
+\DeclareOptionX<structmech>{showvalue}[on]{\IfStrEq{#1}{on}{\def\showvalue{on}}{\def\showvalue{off}}}
+\DeclareOptionX<structmech>{absvalue}[off]{\IfStrEq{#1}{on}{\def\absvalue{on}}{\def\absvalue{off}}}
+\DeclareOptionX<structmech>{opacity}[.4]{\def\fillOpacity{#1}}
+\DeclareOptionX<structmech>{linewidth}[.4mm]{\def\lineWidth{#1}}
+\ExecuteOptionsX<structmech>{fill,line,node,axis,rotation,convention,showvalue,absvalue,opacity,linewidth}
\ProcessOptionsX<structmech>
\tikzset{
- BMD/.style={draw=0066CC,fill=0066CC,fill opacity=.4},
NOFILL/.style={fill=none,fill opacity=1},
-RotBasic/.style={\rotColor,line width=.4mm,->},
+ DIAGRAM/.style={draw=\lineColor,fill=\fillColor,fill opacity=\fillOpacity},
+ROTATION/.style={draw=\rotationColor,line width=\lineWidth,->},
FIXED/.style={postaction={draw,decorate,decoration={border,pre length=1mm,post length=1mm,angle=-60,amplitude=1mm,segment length=1mm}}}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -53,44 +53,44 @@ RotBasic/.style={\rotColor,line width=.4mm,->},
% Command 1: Label All Nodal Forces.
% \NodalForce[1]{2}[3][4][5]{6}[7]
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NewDocumentCommand{\NodalForce}{O{\nodalColor} m O{} O{} O{} G{0} O{1}}{
+\NewDocumentCommand{\NodalForce}{O{\nodeColor} m O{} O{} O{} G{0} O{1}}{
\begin{scope}[rotate around={#6:(#2)},shift={(#2)},scale=#7]
\IfEq{#3}{}
- {\draw[#1,line width=.4mm,->](-1,0)--(-.2,0);}
- {\IfEq{#3}{N}
- {}
- {\IfStrEq{\convention}{sign}
- {\draw[#1,line width=.4mm,->](-1,0)--(-.2,0);\node[fill=none,#1]at(-1.4,0){\footnotesize$#3$};}
- {\StrLeft{#3}{1}[\SS]\IfStrEq{\SS}{-}
- {\draw[#1,line width=.4mm,->](-.2,0)--(-1,0);\node[fill=none,#1]at(-1.4,0){\footnotesize$\StrDel[1]{#3}{-}$};}
- {\draw[#1,line width=.4mm,->](-1,0)--(-.2,0);\node[fill=none,#1]at(-1.4,0){\footnotesize$#3$};}
- }
- }
- }
+ {\draw[#1,line width=\lineWidth,->](-1,0)--(-.2,0);}
+ {\IfEq{#3}{N}
+ {}
+ {\IfStrEq{\convention}{sign}
+ {\draw[#1,line width=\lineWidth,->](-1,0)--(-.2,0);\node[fill=none,#1]at(-1.4,0){\footnotesize$#3$};}
+ {\StrLeft{#3}{1}[\SS]\IfStrEq{\SS}{-}
+ {\draw[#1,line width=\lineWidth,->](-.2,0)--(-1,0);\node[fill=none,#1]at(-1.4,0){\footnotesize$\StrDel[1]{#3}{-}$};}
+ {\draw[#1,line width=\lineWidth,->](-1,0)--(-.2,0);\node[fill=none,#1]at(-1.4,0){\footnotesize$#3$};}
+ }
+ }
+ }
\IfEq{#4}{}
- {\draw[#1,line width=.4mm,->](0,-1)--(0,-.2);}
- {\IfEq{#4}{N}
- {}
- {\IfStrEq{\convention}{sign}
- {\draw[#1,line width=.4mm,->](0,-1)--(0,-.2);\node[fill=none,#1]at(0,-1.4){\footnotesize$#4$};}
- {\StrLeft{#4}{1}[\SS]\IfStrEq{\SS}{-}
- {\draw[#1,line width=.4mm,->](0,-.2)--(0,-1);\node[fill=none,#1]at(0,-1.4){\footnotesize$\StrDel[1]{#4}{-}$};}
- {\draw[#1,line width=.4mm,->](0,-1)--(0,-.2);\node[fill=none,#1]at(0,-1.4){\footnotesize$#4$};}
- }
- }
- }
+ {\draw[#1,line width=\lineWidth,->](0,-1)--(0,-.2);}
+ {\IfEq{#4}{N}
+ {}
+ {\IfStrEq{\convention}{sign}
+ {\draw[#1,line width=\lineWidth,->](0,-1)--(0,-.2);\node[fill=none,#1]at(0,-1.4){\footnotesize$#4$};}
+ {\StrLeft{#4}{1}[\SS]\IfStrEq{\SS}{-}
+ {\draw[#1,line width=\lineWidth,->](0,-.2)--(0,-1);\node[fill=none,#1]at(0,-1.4){\footnotesize$\StrDel[1]{#4}{-}$};}
+ {\draw[#1,line width=\lineWidth,->](0,-1)--(0,-.2);\node[fill=none,#1]at(0,-1.4){\footnotesize$#4$};}
+ }
+ }
+ }
\IfEq{#5}{}
- {\draw[#1,line width=.4mm,->](.2121,-.2121)arc[#1,start angle=-45,end angle=135,radius=3mm];}
- {\IfEq{#5}{N}
- {}
- {\IfStrEq{\convention}{sign}
- {\draw[#1,line width=.4mm,->](.2121,-.2121)arc[#1,start angle=-45,end angle=135,radius=3mm];\node[#1,fill=none]at(-.5303,.5303){\footnotesize$#5$};}
- {\StrLeft{#5}{1}[\SS]\IfStrEq{\SS}{-}
- {\draw[#1,line width=.4mm,<-](.2121,-.2121)arc[#1,start angle=-45,end angle=135,radius=3mm];\node[#1,fill=none]at(-.5303,.5303){\footnotesize$\StrDel[1]{#5}{-}$};}
- {\draw[#1,line width=.4mm,->](.2121,-.2121)arc[#1,start angle=-45,end angle=135,radius=3mm];\node[#1,fill=none]at(-.5303,.5303){\footnotesize$#5$};}
- }
- }
- }
+ {\draw[#1,line width=\lineWidth,->](.2121,-.2121)arc[#1,start angle=-45,end angle=135,radius=3mm];}
+ {\IfEq{#5}{N}
+ {}
+ {\IfStrEq{\convention}{sign}
+ {\draw[#1,line width=\lineWidth,->](.2121,-.2121)arc[#1,start angle=-45,end angle=135,radius=3mm];\node[#1,fill=none]at(-.5303,.5303){\footnotesize$#5$};}
+ {\StrLeft{#5}{1}[\SS]\IfStrEq{\SS}{-}
+ {\draw[#1,line width=\lineWidth,<-](.2121,-.2121)arc[#1,start angle=-45,end angle=135,radius=3mm];\node[#1,fill=none]at(-.5303,.5303){\footnotesize$\StrDel[1]{#5}{-}$};}
+ {\draw[#1,line width=\lineWidth,->](.2121,-.2121)arc[#1,start angle=-45,end angle=135,radius=3mm];\node[#1,fill=none]at(-.5303,.5303){\footnotesize$#5$};}
+ }
+ }
+ }
\end{scope}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -109,100 +109,100 @@ EndRotC/.style={start angle=\Angle+270,end angle=\Angle+90,radius=3mm},
EndRotD/.style={start angle=\Angle+90,end angle=\Angle-90,radius=3mm},
}
\IfEq{#1}{1}
- {
- \IfNoValueTF{#6}
- {\draw[\axialColor,line width=.4mm,<->](#2)--(#3)node[midway,fill=none,#5]{$#4$};}
- {\IfStrEq{\convention}{sign}
- {\draw[\axialColor,line width=.4mm,<->](#2)--(#3)node[midway,fill=none,#5]{$#4$}node[midway,fill=white]{\footnotesize$#6$};}
- {\StrLeft{#6}{1}[\SS]\IfStrEq{\SS}{-}
- {\draw[\axialColor,line width=.4mm,>-<](#2)--(#3)node[midway,fill=none,#5]{$#4$}node[midway,fill=white]{\footnotesize$\StrDel[1]{#6}{-}$};}
- {\draw[\axialColor,line width=.4mm,<->](#2)--(#3)node[midway,fill=none,#5]{$#4$}node[midway,fill=white]{\footnotesize$#6$};}
- }
- }
- }
- {}
+ {
+ \IfNoValueTF{#6}
+ {\draw[\axisColor,line width=\lineWidth,<->](#2)--(#3)node[midway,fill=none,#5]{$#4$};}
+ {\IfStrEq{\convention}{sign}
+ {\draw[\axisColor,line width=\lineWidth,<->](#2)--(#3)node[midway,fill=none,#5]{$#4$}node[midway,fill=white]{\footnotesize$#6$};}
+ {\StrLeft{#6}{1}[\SS]\IfStrEq{\SS}{-}
+ {\draw[\axisColor,line width=\lineWidth,>-<](#2)--(#3)node[midway,fill=none,#5]{$#4$}node[midway,fill=white]{\footnotesize$\StrDel[1]{#6}{-}$};}
+ {\draw[\axisColor,line width=\lineWidth,<->](#2)--(#3)node[midway,fill=none,#5]{$#4$}node[midway,fill=white]{\footnotesize$#6$};}
+ }
+ }
+ }
+ {}
\IfEq{#1}{2L}
- {
- \draw[\axialColor,draw=none](#2)--(#3)node[midway,fill=none,#5]{$#4$};
- \IfNoValueTF{#6}
- {\draw[RotBasic]($(#2)+(\Angle+90:.3)$)arc[EndRotA];}
- {\IfStrEq{\convention}{sign}
- {\node[fill=none,\rotColor]at($(#2)+(\Angle+90:.6)$){\footnotesize$#6$};\draw[RotBasic]($(#2)+(\Angle+90:.3)$)arc[EndRotA];}
- {\StrLeft{#6}{1}[\SS]\IfStrEq{\SS}{-}
- {\node[fill=none,\rotColor]at($(#2)+(\Angle-90:.6)$){\footnotesize$\StrDel[1]{#6}{-}$};\draw[RotBasic]($(#2)+(\Angle-90:.3)$)arc[EndRotC];}
- {\node[fill=none,\rotColor]at($(#2)+(\Angle+90:.6)$){\footnotesize$#6$};\draw[RotBasic]($(#2)+(\Angle+90:.3)$)arc[EndRotA];}
- }
- }
- }
- {}
+ {
+ \draw[\axisColor,draw=none](#2)--(#3)node[midway,fill=none,#5]{$#4$};
+ \IfNoValueTF{#6}
+ {\draw[ROTATION]($(#2)+(\Angle+90:.3)$)arc[EndRotA];}
+ {\IfStrEq{\convention}{sign}
+ {\node[fill=none,\rotationColor]at($(#2)+(\Angle+90:.6)$){\footnotesize$#6$};\draw[ROTATION]($(#2)+(\Angle+90:.3)$)arc[EndRotA];}
+ {\StrLeft{#6}{1}[\SS]\IfStrEq{\SS}{-}
+ {\node[fill=none,\rotationColor]at($(#2)+(\Angle-90:.6)$){\footnotesize$\StrDel[1]{#6}{-}$};\draw[ROTATION]($(#2)+(\Angle-90:.3)$)arc[EndRotC];}
+ {\node[fill=none,\rotationColor]at($(#2)+(\Angle+90:.6)$){\footnotesize$#6$};\draw[ROTATION]($(#2)+(\Angle+90:.3)$)arc[EndRotA];}
+ }
+ }
+ }
+ {}
\IfEq{#1}{2H}
- {
- \draw[\axialColor,draw=none](#2)--(#3)node[midway,fill=none,#5]{$#4$};
- \IfNoValueTF{#6}
- {\draw[RotBasic]($(#3)+(\Angle-90:.3)$)arc[EndRotB];}
- {\IfStrEq{\convention}{sign}
- {\node[fill=none,\rotColor]at($(#3)+(\Angle-90:.6)$){\footnotesize$#6$};\draw[RotBasic]($(#3)+(\Angle-90:.3)$)arc[EndRotB];}
- {\StrLeft{#6}{1}[\SS]\IfStrEq{\SS}{-}
- {\node[fill=none,\rotColor]at($(#3)+(\Angle+90:.6)$){\footnotesize$\StrDel[1]{#6}{-}$};\draw[RotBasic]($(#3)+(\Angle+90:.3)$)arc[EndRotD];}
- {\node[fill=none,\rotColor]at($(#3)+(\Angle-90:.6)$){\footnotesize$#6$};\draw[RotBasic]($(#3)+(\Angle-90:.3)$)arc[EndRotB];}
- }
- }
- }
- {}
+ {
+ \draw[\axisColor,draw=none](#2)--(#3)node[midway,fill=none,#5]{$#4$};
+ \IfNoValueTF{#6}
+ {\draw[ROTATION]($(#3)+(\Angle-90:.3)$)arc[EndRotB];}
+ {\IfStrEq{\convention}{sign}
+ {\node[fill=none,\rotationColor]at($(#3)+(\Angle-90:.6)$){\footnotesize$#6$};\draw[ROTATION]($(#3)+(\Angle-90:.3)$)arc[EndRotB];}
+ {\StrLeft{#6}{1}[\SS]\IfStrEq{\SS}{-}
+ {\node[fill=none,\rotationColor]at($(#3)+(\Angle+90:.6)$){\footnotesize$\StrDel[1]{#6}{-}$};\draw[ROTATION]($(#3)+(\Angle+90:.3)$)arc[EndRotD];}
+ {\node[fill=none,\rotationColor]at($(#3)+(\Angle-90:.6)$){\footnotesize$#6$};\draw[ROTATION]($(#3)+(\Angle-90:.3)$)arc[EndRotB];}
+ }
+ }
+ }
+ {}
\IfEq{#1}{2}
- {
- \draw[\axialColor,draw=none](#2)--(#3)node[midway,fill=none,#5]{$#4$};
- \IfNoValueTF{#6}
- {\draw[RotBasic]($(#2)+(\Angle+90:.3)$)arc[EndRotA];}
- {\IfStrEq{\convention}{sign}
- {\node[fill=none,\rotColor]at($(#2)+(\Angle+90:.6)$){\footnotesize$#6$};\draw[RotBasic]($(#2)+(\Angle+90:.3)$)arc[EndRotA];}
- {\StrLeft{#6}{1}[\SS]\IfStrEq{\SS}{-}
- {\node[fill=none,\rotColor]at($(#2)+(\Angle-90:.6)$){\footnotesize$\StrDel[1]{#6}{-}$};\draw[RotBasic]($(#2)+(\Angle-90:.3)$)arc[EndRotC];}
- {\node[fill=none,\rotColor]at($(#2)+(\Angle+90:.6)$){\footnotesize$#6$};\draw[RotBasic]($(#2)+(\Angle+90:.3)$)arc[EndRotA];}
- }
- }
- \IfNoValueTF{#7}
- {\draw[RotBasic]($(#3)+(\Angle-90:.3)$)arc[EndRotB];}
- {\IfStrEq{\convention}{sign}
- {\node[fill=none,\rotColor]at($(#3)+(\Angle-90:.6)$){\footnotesize$#7$};\draw[RotBasic]($(#3)+(\Angle-90:.3)$)arc[EndRotB];}
- {\StrLeft{#7}{1}[\SS]\IfStrEq{\SS}{-}
- {\node[fill=none,\rotColor]at($(#3)+(\Angle+90:.6)$){\footnotesize$\StrDel[1]{#7}{-}$};\draw[RotBasic]($(#3)+(\Angle+90:.3)$)arc[EndRotD];}
- {\node[fill=none,\rotColor]at($(#3)+(\Angle-90:.6)$){\footnotesize$#7$};\draw[RotBasic]($(#3)+(\Angle-90:.3)$)arc[EndRotB];}
- }
- }
- }
- {}
+ {
+ \draw[\axisColor,draw=none](#2)--(#3)node[midway,fill=none,#5]{$#4$};
+ \IfNoValueTF{#6}
+ {\draw[ROTATION]($(#2)+(\Angle+90:.3)$)arc[EndRotA];}
+ {\IfStrEq{\convention}{sign}
+ {\node[fill=none,\rotationColor]at($(#2)+(\Angle+90:.6)$){\footnotesize$#6$};\draw[ROTATION]($(#2)+(\Angle+90:.3)$)arc[EndRotA];}
+ {\StrLeft{#6}{1}[\SS]\IfStrEq{\SS}{-}
+ {\node[fill=none,\rotationColor]at($(#2)+(\Angle-90:.6)$){\footnotesize$\StrDel[1]{#6}{-}$};\draw[ROTATION]($(#2)+(\Angle-90:.3)$)arc[EndRotC];}
+ {\node[fill=none,\rotationColor]at($(#2)+(\Angle+90:.6)$){\footnotesize$#6$};\draw[ROTATION]($(#2)+(\Angle+90:.3)$)arc[EndRotA];}
+ }
+ }
+ \IfNoValueTF{#7}
+ {\draw[ROTATION]($(#3)+(\Angle-90:.3)$)arc[EndRotB];}
+ {\IfStrEq{\convention}{sign}
+ {\node[fill=none,\rotationColor]at($(#3)+(\Angle-90:.6)$){\footnotesize$#7$};\draw[ROTATION]($(#3)+(\Angle-90:.3)$)arc[EndRotB];}
+ {\StrLeft{#7}{1}[\SS]\IfStrEq{\SS}{-}
+ {\node[fill=none,\rotationColor]at($(#3)+(\Angle+90:.6)$){\footnotesize$\StrDel[1]{#7}{-}$};\draw[ROTATION]($(#3)+(\Angle+90:.3)$)arc[EndRotD];}
+ {\node[fill=none,\rotationColor]at($(#3)+(\Angle-90:.6)$){\footnotesize$#7$};\draw[ROTATION]($(#3)+(\Angle-90:.3)$)arc[EndRotB];}
+ }
+ }
+ }
+ {}
\IfEq{#1}{3}
- {
- \IfNoValueTF{#6}
- {\draw[\axialColor,line width=.4mm,<->](#2)--(#3)node[midway,fill=none,#5]{$#4$};}
- {\IfStrEq{\convention}{sign}
- {\draw[\axialColor,line width=.4mm,<->](#2)--(#3)node[midway,fill=none,#5]{$#4$}node[midway,fill=white]{\footnotesize$#6$};}
- {\StrLeft{#6}{1}[\SS]\IfStrEq{\SS}{-}
- {\draw[\axialColor,line width=.4mm,>-<](#2)--(#3)node[midway,fill=none,#5]{$#4$}node[midway,fill=white]{\footnotesize$\StrDel[1]{#6}{-}$};}
- {\draw[\axialColor,line width=.4mm,<->](#2)--(#3)node[midway,fill=none,#5]{$#4$}node[midway,fill=white]{\footnotesize$#6$};}
- }
- }
- \IfNoValueTF{#7}
- {\draw[RotBasic]($(#2)+(\Angle+90:.3)$)arc[EndRotA];}
- {\IfStrEq{\convention}{sign}
- {\node[fill=none,\rotColor]at($(#2)+(\Angle+90:.6)$){\footnotesize$#7$};\draw[RotBasic]($(#2)+(\Angle+90:.3)$)arc[EndRotA];}
- {\StrLeft{#7}{1}[\SS]\IfStrEq{\SS}{-}
- {\node[fill=none,\rotColor]at($(#2)+(\Angle-90:.6)$){\footnotesize$\StrDel[1]{#7}{-}$};\draw[RotBasic]($(#2)+(\Angle-90:.3)$)arc[EndRotC];}
- {\node[fill=none,\rotColor]at($(#2)+(\Angle+90:.6)$){\footnotesize$#7$};\draw[RotBasic]($(#2)+(\Angle+90:.3)$)arc[EndRotA];}
- }
- }
- \IfNoValueTF{#8}
- {\draw[RotBasic]($(#3)+(\Angle-90:.3)$)arc[EndRotB];}
- {\IfStrEq{\convention}{sign}
- {\node[fill=none,\rotColor]at($(#3)+(\Angle-90:.6)$){\footnotesize$#8$};\draw[RotBasic]($(#3)+(\Angle-90:.3)$)arc[EndRotB];}
- {\StrLeft{#8}{1}[\SS]\IfStrEq{\SS}{-}
- {\node[fill=none,\rotColor]at($(#3)+(\Angle+90:.6)$){\footnotesize$\StrDel[1]{#8}{-}$};\draw[RotBasic]($(#3)+(\Angle+90:.3)$)arc[EndRotD];}
- {\node[fill=none,\rotColor]at($(#3)+(\Angle-90:.6)$){\footnotesize$#8$};\draw[RotBasic]($(#3)+(\Angle-90:.3)$)arc[EndRotB];}
- }
- }
- }
- {}
+ {
+ \IfNoValueTF{#6}
+ {\draw[\axisColor,line width=\lineWidth,<->](#2)--(#3)node[midway,fill=none,#5]{$#4$};}
+ {\IfStrEq{\convention}{sign}
+ {\draw[\axisColor,line width=\lineWidth,<->](#2)--(#3)node[midway,fill=none,#5]{$#4$}node[midway,fill=white]{\footnotesize$#6$};}
+ {\StrLeft{#6}{1}[\SS]\IfStrEq{\SS}{-}
+ {\draw[\axisColor,line width=\lineWidth,>-<](#2)--(#3)node[midway,fill=none,#5]{$#4$}node[midway,fill=white]{\footnotesize$\StrDel[1]{#6}{-}$};}
+ {\draw[\axisColor,line width=\lineWidth,<->](#2)--(#3)node[midway,fill=none,#5]{$#4$}node[midway,fill=white]{\footnotesize$#6$};}
+ }
+ }
+ \IfNoValueTF{#7}
+ {\draw[ROTATION]($(#2)+(\Angle+90:.3)$)arc[EndRotA];}
+ {\IfStrEq{\convention}{sign}
+ {\node[fill=none,\rotationColor]at($(#2)+(\Angle+90:.6)$){\footnotesize$#7$};\draw[ROTATION]($(#2)+(\Angle+90:.3)$)arc[EndRotA];}
+ {\StrLeft{#7}{1}[\SS]\IfStrEq{\SS}{-}
+ {\node[fill=none,\rotationColor]at($(#2)+(\Angle-90:.6)$){\footnotesize$\StrDel[1]{#7}{-}$};\draw[ROTATION]($(#2)+(\Angle-90:.3)$)arc[EndRotC];}
+ {\node[fill=none,\rotationColor]at($(#2)+(\Angle+90:.6)$){\footnotesize$#7$};\draw[ROTATION]($(#2)+(\Angle+90:.3)$)arc[EndRotA];}
+ }
+ }
+ \IfNoValueTF{#8}
+ {\draw[ROTATION]($(#3)+(\Angle-90:.3)$)arc[EndRotB];}
+ {\IfStrEq{\convention}{sign}
+ {\node[fill=none,\rotationColor]at($(#3)+(\Angle-90:.6)$){\footnotesize$#8$};\draw[ROTATION]($(#3)+(\Angle-90:.3)$)arc[EndRotB];}
+ {\StrLeft{#8}{1}[\SS]\IfStrEq{\SS}{-}
+ {\node[fill=none,\rotationColor]at($(#3)+(\Angle+90:.6)$){\footnotesize$\StrDel[1]{#8}{-}$};\draw[ROTATION]($(#3)+(\Angle+90:.3)$)arc[EndRotD];}
+ {\node[fill=none,\rotationColor]at($(#3)+(\Angle-90:.6)$){\footnotesize$#8$};\draw[ROTATION]($(#3)+(\Angle-90:.3)$)arc[EndRotB];}
+ }
+ }
+ }
+ {}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Command 3: Hinge support
@@ -210,8 +210,8 @@ EndRotD/.style={start angle=\Angle+90,end angle=\Angle-90,radius=3mm},
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NewDocumentCommand{\HingeSupport}{O{0} m G{1}}{
\begin{scope}[rotate around={#1:(#2)},shift={(#2)},scale=#3]
-\draw[line width=.2mm](0,0)--++(-.25,-.4)--++(.5,0)--cycle;
-\draw[line width=.2mm,FIXED](-.4,-.4)--++(.8,0);
+\draw[line width=\lineWidth](0,0)--++(-.25,-.4)--++(.5,0)--cycle;
+\draw[line width=\lineWidth,FIXED](-.4,-.4)--++(.8,0);
\end{scope}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -228,27 +228,27 @@ EndRotD/.style={start angle=\Angle+90,end angle=\Angle-90,radius=3mm},
\pgfpointdiff{\pgfpointanchor{A}{center}}{\pgfpointanchor{B}{center}}
\pgfmathparse{veclen(\pgf@x,\pgf@y)/28.45274}
\let\Length\pgfmathresult
-\draw[\fillColor,fill=\fillColor,fill opacity=.4](#2)--(#3)--($(#3)+(\Angle+\FAC*90:\Length/10*#5)$)--($(#2)+(\Angle+\FAC*90:\Length/10*#5)$)--cycle;
+\draw[\fillColor,fill=\fillColor,fill opacity=\fillOpacity](#2)--(#3)--($(#3)+(\Angle+\FAC*90:#5)$)--($(#2)+(\Angle+\FAC*90:#5)$)--cycle;
\IfNoValueTF{#4}
- {}
- {\IfStrEq{\convention}{sign}
- {\node[NOFILL]at($(#2)!.5!(#3)+(\Angle+\FAC*90:\Length/5*#5)$)[rotate=\Angle]{$#4$};}
- {\StrLeft{#4}{1}[\SS]\IfStrEq{\SS}{-}
- {\node[NOFILL]at($(#2)!.5!(#3)+(\Angle+\FAC*90:\Length/5*#5)$)[rotate=\Angle]{$\StrDel[1]{#4}{-}$};}
- {\node[NOFILL]at($(#2)!.5!(#3)+(\Angle+\FAC*90:\Length/5*#5)$)[rotate=\Angle]{$#4$};}
- }
- }
+ {}
+ {\IfStrEq{\convention}{sign}
+ {\node[NOFILL]at($(#2)!.5!(#3)+(\Angle+\FAC*90:1.2*#5)$)[rotate=\Angle]{$#4$};}
+ {\StrLeft{#4}{1}[\SS]\IfStrEq{\SS}{-}
+ {\node[NOFILL]at($(#2)!.5!(#3)+(\Angle+\FAC*90:1.2*#5)$)[rotate=\Angle]{$\StrDel[1]{#4}{-}$};}
+ {\node[NOFILL]at($(#2)!.5!(#3)+(\Angle+\FAC*90:1.2*#5)$)[rotate=\Angle]{$#4$};}
+ }
+ }
\foreach\x in{0,.1,.2,...,1}{
\coordinate(C)at($(#2)!\x!(#3)$);
\IfNoValueTF{#4}
- {\draw[<-](C)--++($(\Angle+\FAC*90:\Length/10*#5)$);}
- {\IfStrEq{\convention}{sign}
- {\draw[<-](C)--++($(\Angle+\FAC*90:\Length/10*#5)$);}
- {\StrLeft{#4}{1}[\SS]\IfStrEq{\SS}{-}
- {\draw[->](C)--++($(\Angle+\FAC*90:\Length/10*#5)$);}
- {\draw[<-](C)--++($(\Angle+\FAC*90:\Length/10*#5)$);}
- }
- }
+ {\draw[<-](C)--++($(\Angle+\FAC*90:#5)$);}
+ {\IfStrEq{\convention}{sign}
+ {\draw[<-](C)--++($(\Angle+\FAC*90:#5)$);}
+ {\StrLeft{#4}{1}[\SS]\IfStrEq{\SS}{-}
+ {\draw[->](C)--++($(\Angle+\FAC*90:#5)$);}
+ {\draw[<-](C)--++($(\Angle+\FAC*90:#5)$);}
+ }
+ }
};
}
\makeatother
@@ -258,7 +258,7 @@ EndRotD/.style={start angle=\Angle+90,end angle=\Angle-90,radius=3mm},
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NewDocumentCommand{\FixedSupport}{O{0} m G{1}}{
\begin{scope}[rotate around={#1:(#2)},shift={(#2)},scale=#3]
-\draw[line width=.2mm,FIXED](-.4,0)--++(.8,0);
+\draw[draw=\lineColor,line width=\lineWidth,FIXED](-.4,0)--++(.8,0);
\end{scope}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -267,12 +267,12 @@ EndRotD/.style={start angle=\Angle+90,end angle=\Angle-90,radius=3mm},
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NewDocumentCommand{\RollerSupport}{O{0} m G{1}}{
\begin{scope}[rotate around={#1:(#2)},shift={(#2)},scale=#3]
-\draw[line width=.2mm]
- (0,0)--++(-.25,-.3)--++(.5,0)--cycle
- (-.15,-.35)circle(.05)
- (+.15,-.35)circle(.05);
-\draw[line width=.2mm,FIXED]
- (-.4,-.4)--++(.8,0);
+\draw[draw=\lineColor,line width=\lineWidth]
+ (0,0)--++(-.25,-.3)--++(.5,0)--cycle
+ (-.15,-.35)circle(.05)
+ (+.15,-.35)circle(.05);
+\draw[draw=\lineColor,line width=\lineWidth,FIXED]
+ (-.4,-.4)--++(.8,0);
\end{scope}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -281,15 +281,15 @@ EndRotD/.style={start angle=\Angle+90,end angle=\Angle-90,radius=3mm},
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NewDocumentCommand{\SliderSupport}{O{0} m G{1}}{
\begin{scope}[rotate around={#1:(#2)},shift={(#2)},scale=#3]
-\draw[line width=.2mm]
- (-.25,-.1/#3)--++(.5,0)
- (-.15,-.14/#3)--++(0,-.22)
- (+.15,-.14/#3)--++(0,-.22);
-\draw[line width=.2mm,fill=white]
- (-.15,-.14/#3)circle(.04)++(0,-.22)circle(.04)
- (+.15,-.14/#3)circle(.04)++(0,-.22)circle(.04);
-\draw[line width=.2mm,FIXED]
- (-.4,-.14/#3-.26)--++(.8,0);
+\draw[draw=\lineColor,line width=\lineWidth]
+ (-.25,-.1/#3)--++(.5,0)
+ (-.15,-.14/#3)--++(0,-.22)
+ (+.15,-.14/#3)--++(0,-.22);
+\draw[draw=\lineColor,line width=\lineWidth,fill=white]
+ (-.15,-.14/#3)circle(.04)++(0,-.22)circle(.04)
+ (+.15,-.14/#3)circle(.04)++(0,-.22)circle(.04);
+\draw[draw=\lineColor,line width=\lineWidth,FIXED]
+ (-.4,-.14/#3-.26)--++(.8,0);
\end{scope}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -298,18 +298,17 @@ EndRotD/.style={start angle=\Angle+90,end angle=\Angle-90,radius=3mm},
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NewDocumentCommand{\SleeveSupport}{O{0} m O{.4} G{1}}{
\begin{scope}[rotate around={#1:(#2)},shift={(#2)},scale=#4]
-\draw[line width=.2mm,FIXED](#3/2,-.4)--++(0,.8);
-\draw[line width=.2mm,FIXED](-#3/2,.4)--++(0,-.8);
+\draw[draw=\lineColor,line width=\lineWidth,FIXED](#3/2,-.4)--++(0,.8)(-#3/2,.4)--++(0,-.8);
\end{scope}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Command 9: Coordinate system frame
% \CoorOrigin[1]{2}{3}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NewDocumentCommand{\CoorOrigin}{O{0} m G{1}}{
-\begin{scope}[rotate around={#1:(#2)},shift={(#2)},scale=#3]
-\draw[line width=.2mm,->](-.2,0)--++(1,0);\node[fill=none,draw=none]at(1.1,0){\footnotesize$x$};
-\draw[line width=.2mm,->](0,-.2)--++(0,1);\node[fill=none,draw=none]at(0,1.1){\footnotesize$y$};
+\NewDocumentCommand{\CoorOrigin}{O{0} m O{x} O{y} G{1}}{
+\begin{scope}[rotate around={#1:(#2)},shift={(#2)},scale=#5]
+\draw[draw=\lineColor,line width=\lineWidth,->](-.2,0)--++(1,0);\node[fill=none,draw=none]at(1.1,0){\footnotesize$#3$};
+\draw[draw=\lineColor,line width=\lineWidth,->](0,-.2)--++(0,1);\node[fill=none,draw=none]at(0,1.1){\footnotesize$#4$};
\end{scope}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -318,7 +317,7 @@ EndRotD/.style={start angle=\Angle+90,end angle=\Angle-90,radius=3mm},
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NewDocumentCommand{\Rigid}{O{0} m G{1}}{
\begin{scope}[rotate around={#1:(#2)},shift={(#2)},scale=#3]
-\draw[fill=black,rounded corners=.2mm](0,0)--(.25,.4)--(.4,.25)--cycle;
+\draw[draw=\fillColor,fill=\fillColor,rounded corners=.2mm](0,0)--(.25,.4)--(.4,.25)--cycle;
\end{scope}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -333,32 +332,39 @@ EndRotD/.style={start angle=\Angle+90,end angle=\Angle-90,radius=3mm},
\let\Angle\pgfmathresult
\coordinate(C)at($(A)+(\Angle+90:#4*#6)$);
\coordinate(D)at($(B)+(\Angle-90:#5*#6)$);
-\draw[#1,fill=#1,fill opacity=.3](A)--(C)--(D)--(B)--cycle;
+\draw[#1,fill=#1,fill opacity=\fillOpacity](A)--(C)--(D)--(B)--cycle;
\pgfpointdiff{\pgfpointanchor{A}{center}}{\pgfpointanchor{B}{center}}
\pgfmathparse{veclen(\pgf@x,\pgf@y)/28.45274}
\let\Length\pgfmathresult
+\IfStrEq{\showvalue}{on}{
\StrLeft{#4}{1}[\SA]
\IfStrEq{\SA}{-}
- {\node[NOFILL]at($(C)+(\Angle-90:\Length/8)$)[rotate=\Angle]{$#4$};}
- {\node[NOFILL]at($(C)+(\Angle+90:\Length/8)$)[rotate=\Angle]{$#4$};}
+ {\IfStrEq{\absvalue}{on}
+ {\node[NOFILL]at($(C)+(\Angle-90:\Length/8)$)[rotate=\Angle]{$\StrDel[1]{#4}{-}$};}
+ {\node[NOFILL]at($(C)+(\Angle-90:\Length/8)$)[rotate=\Angle]{$#4$};}
+ }
+ {\node[NOFILL]at($(C)+(\Angle+90:\Length/8)$)[rotate=\Angle]{$#4$};}
\StrLeft{#5}{1}[\SB]
\IfStrEq{\SB}{-}
- {\node[NOFILL]at($(D)+(\Angle+90:\Length/8)$)[rotate=\Angle]{$#5$};}
- {\node[NOFILL]at($(D)+(\Angle-90:\Length/8)$)[rotate=\Angle]{$#5$};}
+ {\IfStrEq{\absvalue}{on}
+ {\node[NOFILL]at($(D)+(\Angle+90:\Length/8)$)[rotate=\Angle]{$\StrDel[1]{#5}{-}$};}
+ {\node[NOFILL]at($(D)+(\Angle+90:\Length/8)$)[rotate=\Angle]{$#5$};}
+ }
+ {\node[NOFILL]at($(D)+(\Angle-90:\Length/8)$)[rotate=\Angle]{$#5$};}
+}{}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Command 12: Parabolic Internal Force
% \IForceB[1]{2}{3}{4}{5}{6}{7}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NewDocumentCommand{\IForceB}{O{\fillColor} m m m m m G{1}}{
-\coordinate(A)at(#2);
-\coordinate(B)at(#3);
+\coordinate(A)at(#2);\coordinate(B)at(#3);
% original cord
\pgfmathanglebetweenpoints{\pgfpointanchor{A}{center}}{\pgfpointanchor{B}{center}}
\let\Angle\pgfmathresult
\coordinate(C)at($(A)+(\Angle+90:#4*#7)$);
\coordinate(D)at($(B)+(\Angle-90:#5*#7)$);
-% shape cord
+% inclined cord
\pgfmathanglebetweenpoints{\pgfpointanchor{C}{center}}{\pgfpointanchor{D}{center}}
\let\AngleB\pgfmathresult
% original length
@@ -373,25 +379,31 @@ EndRotD/.style={start angle=\Angle+90,end angle=\Angle-90,radius=3mm},
\coordinate(G)at($(C)+(\AngleB:\LengthB/2)$);
\pgfmathsetmacro\height{#6*#7};
\begin{scope}[rotate around={\AngleB:(G)},shift={(G)}]
-\draw[#1,fill=#1,fill opacity=.3](-.5*\LengthB,0)parabola bend(0,\height)(.5*\LengthB,0)--++(\Angle-\AngleB+90:#5*#7)--($(-.5*\LengthB,0)+(\Angle-\AngleB-90:#4*#7)$)--cycle;
+\draw[#1,fill=#1,fill opacity=\fillOpacity](-.5*\LengthB,0)parabola bend(0,\height)(.5*\LengthB,0)--++(\Angle-\AngleB+90:#5*#7)--($(-.5*\LengthB,0)+(\Angle-\AngleB-90:#4*#7)$)--cycle;
\end{scope}
-
+\IfStrEq{\showvalue}{on}{
\StrLeft{#4}{1}[\SA]
\IfStrEq{\SA}{-}
- {\node[NOFILL]at($(C)+(\Angle-90:\Length/8)$)[rotate=\Angle]{$#4$};}
- {\node[NOFILL]at($(C)+(\Angle+90:\Length/8)$)[rotate=\Angle]{$#4$};}
+ {\IfStrEq{\absvalue}{on}
+ {\node[NOFILL]at($(C)+(\Angle-90:\Length/8)$)[rotate=\Angle]{$\StrDel[1]{#4}{-}$};}
+ {\node[NOFILL]at($(C)+(\Angle-90:\Length/8)$)[rotate=\Angle]{$#4$};}
+ }
+ {\node[NOFILL]at($(C)+(\Angle+90:\Length/8)$)[rotate=\Angle]{$#4$};}
\StrLeft{#5}{1}[\SB]
\IfStrEq{\SB}{-}
- {\node[NOFILL]at($(D)+(\Angle+90:\Length/8)$)[rotate=\Angle]{$#5$};}
- {\node[NOFILL]at($(D)+(\Angle-90:\Length/8)$)[rotate=\Angle]{$#5$};}
+ {\IfStrEq{\absvalue}{on}
+ {\node[NOFILL]at($(D)+(\Angle+90:\Length/8)$)[rotate=\Angle]{$\StrDel[1]{#5}{-}$};}
+ {\node[NOFILL]at($(D)+(\Angle+90:\Length/8)$)[rotate=\Angle]{$#5$};}
+ }
+ {\node[NOFILL]at($(D)+(\Angle-90:\Length/8)$)[rotate=\Angle]{$#5$};}
+}{}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Command 13: Beam Deformation (perpendicular)
% \BeamDeformP[1]{2}{3}{4}[5]{6}[7]{8}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NewDocumentCommand{\BeamDeformP}{O{\fillColor} m m m O{0} m O{0} G{1}}{
-\coordinate(A)at(#2);
-\coordinate(B)at(#3);
+\coordinate(A)at(#2);\coordinate(B)at(#3);
% original cord
\pgfmathanglebetweenpoints{\pgfpointanchor{A}{center}}{\pgfpointanchor{B}{center}}
\let\Angle\pgfmathresult
@@ -399,18 +411,17 @@ EndRotD/.style={start angle=\Angle+90,end angle=\Angle-90,radius=3mm},
\coordinate(D)at($(B)+(\Angle-90:#6*#8)$);
\pgfmathanglebetweenpoints{\pgfpointanchor{C}{center}}{\pgfpointanchor{D}{center}}
\let\AngleB\pgfmathresult
-\draw[#1,line width=.8mm](C)to[out=\AngleB+#5*#8,in=180+\AngleB+#7*#8](D);
+\draw[#1,line width=\lineWidth](C)to[out=\AngleB+#5*#8,in=180+\AngleB+#7*#8](D);
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Command 13: Beam Deformation (Rotation Only)
% \BeamDeformR[1]{2}{3}[4][5]{6}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NewDocumentCommand{\BeamDeformR}{O{\fillColor} m m O{0} O{0} G{1}}{
-\coordinate(A)at(#2);
-\coordinate(B)at(#3);
+\coordinate(A)at(#2);\coordinate(B)at(#3);
% original cord
\pgfmathanglebetweenpoints{\pgfpointanchor{A}{center}}{\pgfpointanchor{B}{center}}
\let\Angle\pgfmathresult
-\draw[#1,line width=.8mm](A)to[out=\Angle+#4*#6,in=180+\Angle+#5*#6](B);
+\draw[#1,line width=\lineWidth](A)to[out=\Angle+#4*#6,in=180+\Angle+#5*#6](B);
}
\makeatother \ No newline at end of file