Seite 1 von 1

Tikz Kraftwerksschema

Verfasst: Do 18. Mär 2010, 15:28
von chucky
Hallo,

ich habe vor ein Kraftwerksschema ähnlich http://de.wikipedia.org/w/index.php?tit ... 1118140426 mit TikZ zu erstellen. Dabei habe ich mit gedacht das es bestimmt möglich ist einzelne Elemente wie zB eine Turbine global zu erstellen und dann später mehrfach als Element einzufügen und durch Linien zu verbinden.

Einzelne Elemente habe ich mit \def erstellt. Jetzt schaffe ich es allerdings nicht diese Elemente an vorgegebenen Koordinaten einzufügen, sondern nur am Ursprung.

Eine weites Problem ist die Elemente zu verbinden. Gibt es eine Möglichkeit zu sagen "verbinde Turbine mit Wärmetauscher" und TikZ macht automatisch eine Verbindung oder muss man einfach eine Linie anhand von Koordinaten zeichnen?

Man kann ja zwei parallele Linien mit \draw[double] erstellen. Allerdings sind dann beide immer vom gleichen Typ. Besteht die Möglichkeit zu sagen, dass eine gestrichelt und eine durchgezogen sein soll?

Hier mein Versuch:
\documentclass{scrartcl}
\usepackage{tikz}

\tikzset{
	symbole/.style={very thick},
	luft/.style={thick, double distance=1}
	}

\begin{document}
	\begin{tikzpicture}	
		% Wärmetauscher
		\def\WT{
			\draw[symbole] (0,0) circle (0.6);
			\draw[symbole] (0.6,-0.3) -- (-0.3,-0.3) -- (0.3,0) -- (-0.3,0.3) -- (0.6,0.3);
		}
		
		%	Verdichter rund
		\def\VR{
			\draw[symbole] (0,0) circle (0.6);
			\draw[symbole] (0.3,0.5) -- (0.55,-0.2);
			\draw[symbole] (-0.3,0.5) -- (-0.55,-0.2);
		}
		
		%	Verdichter eckig
		\def\VE{
			\draw[symbole] (0.6,0.3) -- (-0.6,0.6) -- (-0.6,-0.6) -- (0.6,-0.3) -- (0.6,0.3);
		}
		
		%	Motor
		\def\M{
		\draw[symbole] (0,0) circle (0.6) node[midway] {M};
		}
		
		%	Generator
		\def\G{
		\draw[symbole] (0,0) circle (0.6) node[midway] {G};	
		}
		
		\WT
		\draw[luft] (0.6,0) -- (10,0);
	
	\end{tikzpicture}
\end{document}
Gruß

Verfasst: Sa 20. Mär 2010, 16:45
von esdd
Hallo,

wenn Du den Wärmetauscher etwas anders definierst,
\newcommand\WT[1]{ 
  \draw[symbole](#1)circle(0.6)+(0.6,-0.3)--+(-0.3,-0.3)--+(0.3,0)--+(-0.3,0.3)--+(0.6,0.3);
} 
dann lässt er sich mit \WT{x-Koordinate,y-Koodinate} an einem beliebigen Punkt einfügen.

Wenn Du die Elemente mit Namen anspechen willst, dann musst Du sie in Noden zeichnen.
Eine Doppellinie aus unterschiedlichen Linienarten muss man vermutlich selbst konstruieren.

Hier mal noch ein Vorschlag:
\documentclass{scrartcl} 

\usepackage{tikz}
\usetikzlibrary{calc}

\tikzset{ 
   symbole/.style={very thick},
   symno/.style={inner sep=0pt},
   linie/.style=thick,
   luft/.style={linie, double distance=1} 
   }
% Wärmetauscher 
\newcommand\WT{% 
  \tikz\draw[symbole]%
  	(0,0)circle(0.6)(0.6,-0.3)--(-0.3,-0.3)--(0.3,0)--(-0.3,0.3)--(0.6,0.3);%
} 
%   Verdichter rund 
\newcommand\VR{%
   \tikz\draw[symbole]%
   	(0,0)circle(0.6)(0.3,0.5)--(0.55,-0.2)(-0.3,0.5)--(-0.55,-0.2);%
} 
%   Verdichter eckig 
\newcommand\VE{% 
   \tikz\draw[symbole]%
   	(0.6,0.3)--(-0.6,0.6)--(-0.6,-0.6)--(0.6,-0.3)--cycle;%
} 
%   Motor 
\newcommand\M{\tikz\draw[symbole](0,0)circle(0.6)node[midway]{M};} 
%   Generator 
\newcommand\G{\tikz\draw[symbole](0,0)circle(0.6)node[midway]{G};} 

\begin{document} 
   \begin{tikzpicture}  
			\draw[help lines] (-4,-4)grid(8,2);
			\node[symno](WT1) at (0,0){\WT};
			\node[symno](M1) at (3,0){\M};
			\node[symno](WT2) at (5,-3){\WT};
			\draw[luft](WT1)--(M1);
			\draw[linie,dashed] ($(M1.east)+(0,0.5mm)$)-|($(WT2.north)+(0.5mm,0)$);
			\draw[linie] ($(M1.east)+(0,-0.5mm)$)-|($(WT2.north)+(-0.5mm,0)$);
   \end{tikzpicture} 
\end{document} 
Gruß
Elke

Verfasst: So 21. Mär 2010, 19:11
von chucky
Hallo und vielen Dank für die Mühe.

Definiert man die Elemente mit \newcommand und fügt sie als Knoten ein funktionierts sehr gut. Und die Verbindungen klappen auch gut.


nochmals Danke und schöne Grüße