% bloques.sty
% package based on tikz for control diagrams in power electronics.
% version 1.0
% author: Alejandro Garces
%
[email protected]
% License: LPPL
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
% The latest version of this license is in
%
http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2005/12/01 or later.
\usepackage{tikz}
\usepgflibrary{shapes.misc}
\usetikzlibrary{arrows,decorations.pathmorphing,backgrounds,positioning,fit,shadows}
\newcommand{\xdistancia}{1.5cm}
\newcommand{\ydistancia}{1.2cm}
\newcommand{\minaltura}{0.7cm}
\newcommand{\tamano}{\footnotesize}
\newcommand{\colorfondo}{white}
\newcommand{\colortexto}{black}
\newcommand{\colorlinea}{black}
\newcommand{\sombra}{0}
\newcommand{\ancholinea}{thick}
\newcommand{\bShadow}{\renewcommand{\sombra}{1}}
\newcommand{\bColorB}[1]{\renewcommand{\colorfondo}{#1}}
\newcommand{\bColorT}[1]{\renewcommand{\colortexto}{#1}}
\newcommand{\bColorL}[1]{\renewcommand{\colorlinea}{#1}}
\newcommand{\ydistance}[1]{\renewcommand{\ydistancia}{#1}}
\newcommand{\bStart}[1]{\node [] (NODO1) {\tamano{#1}};}
\newcommand{\bPlusDown}[1]{
\node [draw=\colorlinea, circle,minimum size=1.5em, right of=NODO1, node distance= \xdistancia,\ancholinea, fill=\colorfondo,
drop shadow={opacity=\sombra}] (SUMA) {};
\node [draw=gray!50, cross out, minimum size=1.0em, right of=NODO1, node distance= \xdistancia, thin] {};
\node [left of = SUMA, node distance = 0.45em] () { \color{\colortexto}\tiny{$+$}};
\node [below of = SUMA, node distance = 0.45em] () { \color{\colortexto}\tiny{$+$}};
\draw [-latex,\colorlinea] (NODO1) -- (SUMA);
\node [below of = SUMA, node distance = \ydistancia] (VARIABLE) {\tamano{#1}};
\draw [-latex, \colorlinea] (VARIABLE) -- (SUMA);
\node at (SUMA) [anchor = west] (NODO1) {};
}
\newcommand{\bPlusUp}[1]{
\node [draw=\colorlinea, circle,minimum size=1.5em, right of=NODO1, node distance= \xdistancia,\ancholinea, fill=\colorfondo,
drop shadow={opacity=\sombra}] (SUMA) {};
\node [draw=gray!50, cross out, minimum size=1.0em, right of=NODO1, node distance= \xdistancia, thin, draw=gray!50] {};
\node [left of = SUMA, node distance = 0.45em] () { \color{\colortexto}\tiny{$+$}};
\node [above of = SUMA, node distance = 0.45em] () { \color{\colortexto}\tiny{$+$}};
\draw [-latex, \colorlinea] (NODO1) -- (SUMA);
\node [above of = SUMA, node distance = \ydistancia] (VARIABLE) {\tamano{#1}};
\draw [-latex, \colorlinea] (VARIABLE) -- (SUMA);
\node at (SUMA) [anchor = west] (NODO1) {};
}
\newcommand{\bMinusDown}[1]{
\node [draw=\colorlinea, circle,minimum size=1.5em, right of=NODO1, node distance= \xdistancia,\ancholinea, fill=\colorfondo,
drop shadow={opacity=\sombra}] (SUMA) {};
\node [cross out, minimum size=1.0em, right of=NODO1, node distance= \xdistancia, thin, draw=gray!50] {};
\node [left of = SUMA, node distance = 0.45em] () { \color{\colortexto}\tiny{$+$}};
\node [below of = SUMA, node distance = 0.45em] () { \color{\colortexto}\tiny{$-$}};
\draw [-latex,\colorlinea] (NODO1) -- (SUMA);
\node [below of = SUMA, node distance = \ydistancia] (VARIABLE) {\tamano{#1}};
\draw [-latex,\colorlinea] (VARIABLE) -- (SUMA);
\node at (SUMA) [anchor = west] (NODO1) {};
}
\newcommand{\bMinusUp}[1]{
\node [draw=\colorlinea, circle,minimum size=1.5em, right of=NODO1, node distance= \xdistancia,\ancholinea, fill=\colorfondo,
drop shadow={opacity=\sombra}] (SUMA) {};
\node [thin, cross out, minimum size=1.0em, right of=NODO1, node distance= \xdistancia, draw=gray!50] {};
\node [left of = SUMA, node distance = 0.45em] () { \color{\colortexto}\tiny{$+$}};
\node [above of = SUMA, node distance = 0.45em] () { \color{\colortexto}\tiny{$-$}};
\draw [-latex, \colorlinea] (NODO1) -- (SUMA);
\node [above of = SUMA, node distance = \ydistancia] (VARIABLE) {\tamano{#1}};
\draw [-latex, \colorlinea] (VARIABLE) -- (SUMA);
\node at (SUMA) [anchor = west] (NODO1) {};
}
\newcommand{\bEnd}[1]{
\node [right of = NODO1, node distance = 1.7cm] (F) {#1};
\draw [-latex,\colorlinea] (NODO1) -- (F);
\node at (F) [anchor = west] (NODO1) {};
}
\newcommand{\bGain}[1]{
\node [draw=\colorlinea, rectangle, right of = NODO1, node distance= \xdistancia, minimum height = \minaltura,
\ancholinea, fill=\colorfondo,drop shadow={opacity=\sombra}] (NODO2) { \color{\colortexto}\tamano{#1}};
\draw [-latex, \colorlinea] (NODO1)--(NODO2);
\node at (NODO2.east) [anchor = east] (NODO1) {};
}
\newcommand{\bGainPlus}[2]{
\node [draw=\colorlinea, circle,minimum size=1.5em, right of=NODO1, node distance= \xdistancia,\ancholinea, fill=\colorfondo,
drop shadow={opacity=\sombra}] (SUMA) {};
\node [thin, cross out, minimum size=1.0em, right of=NODO1, node distance= \xdistancia, draw=gray!50] {};
\node [left of = SUMA, node distance = 0.45em] () { \color{\colortexto}\tiny{$+$}};
\node [below of = SUMA, node distance = 0.45em] () { \color{\colortexto}\tiny{$+$}};
\draw [-latex, \colorlinea] (NODO1) -- (SUMA);
\node [draw=\colorlinea, rectangle, below of = SUMA, node distance = \xdistancia,xshift=-0.3cm, minimum height = \minaltura,\ancholinea,
fill=\colorfondo,drop shadow={opacity=\sombra}, anchor = east] (NODOG) {\color{\colortexto}\tamano{#2}};
\node [left of = NODOG, node distance = \xdistancia] (VARIABLE) {\tamano{#1}};
\draw [-latex, \colorlinea] (VARIABLE) -- (NODOG);
\draw [-latex, \colorlinea] (NODOG) -| (SUMA);
\node at (SUMA) [anchor = west] (NODO1) {};
}
\newcommand{\bGainMinus}[2]{
\node [draw=\colorlinea, circle,minimum size=1.5em, right of=NODO1, node distance= \xdistancia,\ancholinea, fill=\colorfondo,
drop shadow={opacity=\sombra}] (SUMA) {};
\node [thin, cross out, minimum size=1.0em, right of=NODO1, node distance= \xdistancia, draw=gray!50] {};
\node [left of = SUMA, node distance = 0.45em] () { \color{\colortexto}\tiny{$+$}};
\node [below of = SUMA, node distance = 0.45em] () { \color{\colortexto}\tiny{$-$}};
\draw [-latex, \colorlinea] (NODO1) -- (SUMA);
\node [draw=\colorlinea, rectangle, below of = SUMA, node distance = \xdistancia,xshift=-0.3cm, minimum height = \minaltura,\ancholinea,
fill=\colorfondo,drop shadow={opacity=\sombra}, anchor = east] (NODOG) {\color{\colortexto}\tamano{#2}};
\node [left of = NODOG, node distance = \xdistancia] (VARIABLE) {\tamano{#1}};
\draw [-latex, \colorlinea] (VARIABLE) -- (NODOG);
\draw [-latex, \colorlinea] (NODOG) -| (SUMA);
\node at (SUMA) [anchor = west] (NODO1) {};
}
\newcommand{\bMinusF}[1]{
\node [draw=\colorlinea, circle,minimum size=1.5em, right of=NODO1, node distance= \xdistancia,\ancholinea, fill=\colorfondo,
drop shadow={opacity=\sombra}] (#1) {};
\node [draw, cross out, minimum size=1.0em, right of=NODO1, node distance= \xdistancia, thin, draw=gray!50] {};
\node [left of = #1, node distance = 0.45em] () { \color{\colortexto}\tiny{$+$}};
\node [below of = #1, node distance = 0.45em] () { \color{\colortexto}\tiny{$-$}};
\draw [-latex, \colorlinea] (NODO1) -- (#1);
\node at (#1) [anchor = west] (NODO1) {};
}
\newcommand{\bPlusF}[1]{
\node [draw=\colorlinea, circle,minimum size=1.5em, right of=NODO1, node distance= \xdistancia,\ancholinea, fill=\colorfondo,
drop shadow={opacity=\sombra}] (#1) {};
\node [thin, cross out, minimum size=1.0em, right of=NODO1, node distance= \xdistancia, draw=gray!50] {};
\node [left of = #1, node distance = 0.45em] () { \color{\colortexto}\tiny{$+$}};
\node [below of = #1, node distance = 0.45em] () { \color{\colortexto}\tiny{$+$}};
\draw [-latex, \colorlinea] (NODO1) -- (#1);
\node at (#1) [anchor = west] (NODO1) {};
}
\newcommand{\bFeedBack}[2]{
\node [draw=\colorlinea, rectangle, below left of = NODO1, node distance = \ydistancia, minimum height = \minaltura,\ancholinea,
fill=\colorfondo,drop shadow={opacity=\sombra}, anchor = west] (NODOG) {\color{\colortexto}\tamano{#1}};
\draw [-latex, \colorlinea] (NODO1) -- +(0.5,0) |- (NODOG);
\draw [-latex, \colorlinea] (NODOG) -| (#2);
}
\newcommand{\bCrossGain}[3]{
\node [draw=\colorlinea, rectangle, above right of = #2, minimum height = \minaltura,\ancholinea,
fill=\colorfondo,drop shadow={opacity=\sombra}, anchor = west] (NODOG) {\color{\colortexto}\tamano{#1}};
\draw [-latex, \colorlinea] (#2) |- (NODOG);
\draw [-latex, \colorlinea] (NODOG) -| (#3);
}
\newcommand{\bNewStart}[2]{
\node at #2 (NODO1) {\tamano{#1}};
}
\newcommand{\bMarkNode}[1]{
\node at (NODO1) (#1) {};
}
\newcommand{\bMarkNodeUp}[1]{
\node[above of = NODO1, node distance = \ydistancia] (#1) {};
}
\newcommand{\bMarkNodeDown}[1]{
\node[below of = NODO1,node distance = \ydistancia] (#1) {};
}