Cómo dibujar un símbolo en un nodo TikZ que pueda reutilizarse

Cómo dibujar un símbolo en un nodo TikZ que pueda reutilizarse

Estoy intentando dibujar un símbolo de "ciencia" en TikZ, representado por un átomo estilizado, y no sé cómo hacerlo. ¿Hay alguna manera de definir de alguna manera un estilo mágico de TikZ para poder hacer algo como \node[science](C1) at (0,0){};?

Intenté usar una \defmacro y puede dibujar el símbolo que quiero, pero de alguna manera el nombre del nodo no funciona de manera que pueda consultarlo más adelante.

\documentclass[border=3mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\title{science symbol}
\begin{tikzpicture}[>=latex,
  font=\sffamily
]

\def\science#1#2 {
\node[circle, draw, minimum size=10mm] (#2) at #1 {};
\foreach \ang in {0,120,240}
  \draw[rotate around={\ang:#1}] #1 ellipse (4.5mm and 1.5mm);
\fill #1 circle (0.5mm);
}

\science{(0,0)}{C1};
\science{(2cm, 0)}{C2};
\draw[->] (C1) -- (C2);

\end{tikzpicture}
\end{document}

Esto dibuja lo que quiero para los nodos.

ingrese la descripción de la imagen aquí

pero me sale un error en mi \draw[->] (C1) -- (C2);declaración:

Package pgf Error: No shape named C1 is known.

Respuesta1

Me confundí con el uso append after commandy lo hice funcionar:

\documentclass[border=3mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning, calc}
\begin{document}
\title{science symbol}
\begin{tikzpicture}[>=latex,
  font=\sffamily,
  atom/.style = {circle, minimum size=#1,
    append after command={%
      \pgfextra{ 
        \foreach \ang in {0,120,240}
        \draw[rotate around={\ang:(0,0)}] (\tikzlastnode.center) ellipse (0.45*#1 and 0.15*#1); 
        \fill (\tikzlastnode.center) circle (0.05*#1);
      }
    }
  }
]

\node[draw, atom=10mm] (C1) at (0,0){};
\node[draw, atom=5mm] (C2) at (2cm,0){};
\draw[->] (C1) -- (C2);

\end{tikzpicture}
\end{document}

ingrese la descripción de la imagen aquí

información relacionada