I tried to create an steady state arrow with pgfarrowsdeclare and pgfsetinnerlinewidth which seems to have no effect, when placed in the arrow declaration. So the following code shows my solution, which is not handy at all.
\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\begin{document}
\newdimen\arrowsize
\pgfarrowsdeclare{mya}{mya}{% next two lines do not work as expected.
% \pgfsetinnerlinewidth{3pt} %no effect here
% \pgfsetlinewidth{5pt} % works but spreads over every line in the file
\arrowsize=0.2pt \advance\arrowsize by .5\pgflinewidth %
\pgfarrowsleftextend{-4\arrowsize-.5\pgflinewidth} %
\pgfarrowsrightextend{.5\pgflinewidth}
}%
{%
\pgfsetlinewidth{1pt}
\pgfsetdash{}{0pt} % do not dash
\pgfsetroundjoin % fix join
\pgfsetroundcap % fix cap
\pgfpathmoveto{\pgfpoint{-10pt}{12pt}} \pgfpatharc{180}{270}{10pt} %
\pgfusepathqstroke%
}
\begin{tikzpicture}
\node (n1) at (0,0) {Node1};
\node(n2)at (0,2) {Node2} ;
\node(n3)at (0,4) {Node3} ;
%The following code produces correct output
{\pgfsetinnerlinewidth{3pt} %wont stay local
\pgfsetlinewidth{5pt} % seems to stay local
\draw[mya-mya] (n1)--(n2); }
\pgfsetlinewidth{1pt}
\draw (n2)--(n3);
\end{tikzpicture}
\end{document}

Is there a way to tell pgf to make an arrow double lined without setting hlinewidth and innerlinewidth manually? In the arrow declaration maybe?
PS I took a short look into the chemfig package and it seems to me that Christian uses several separated paths to construct a double arrow. Maybe that's easier so I will consider that in further approaches.
Edit: Here“s the output produced by
\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\begin{document}
\newdimen\arrowsize
\pgfarrowsdeclare{mya}{mya}{% next two lines do not work as expected.
\pgfsetinnerlinewidth{4pt} %does sth strange
\pgfsetlinewidth{5pt} % works but spreads over every
%line in the file
\arrowsize=0.2pt \advance\arrowsize by .5\pgflinewidth%
\pgfarrowsleftextend{-4\arrowsize-.5\pgflinewidth} %
\pgfarrowsrightextend{.5\pgflinewidth}
}%
{%
\pgfsetlinewidth{1pt}
\pgfsetdash{}{0pt} % do not dash
\pgfsetroundjoin % fix join
\pgfsetroundcap % fix cap
\pgfpathmoveto{\pgfpoint{-10pt}{12pt}}\pgfpatharc{180}{270}{10pt} %
\pgfusepathqstroke}
\begin{tikzpicture}
\node (n1) at (0,0) {Node1};
\node(n2)at (0,2) {Node2} ;
\node(n3)at (0,4) {Node3} ;
%
\draw[mya-mya] (n1)--(n2);%
\draw (n2)--(n3);
%
\end{tikzpicture}
\end{document}


\pgfsetinnerlinewidth{Xpt}(in thepgfarrowsdeclare) the arrow get shorter or longer. That looks very curios to me. (or: i don´t understand it). The second issue is, that ` \pgfsetlinewidth{5pt}` isn´t local. – bloodworks Dec 28 '11 at 13:00