Tikz Kraftwerksschema

Tabellen und Grafiken erstellen und anordnen


chucky
Forum-Newbie
Forum-Newbie
Beiträge: 7
Registriert: Do 18. Mär 2010, 15:07

Tikz Kraftwerksschema

Beitrag 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ß

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag 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

chucky
Forum-Newbie
Forum-Newbie
Beiträge: 7
Registriert: Do 18. Mär 2010, 15:07

Beitrag 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

Antworten