Cómo configurar un bloque de código usando \tikzset

Cómo configurar un bloque de código usando \tikzset

Siempre me encuentro haciendo muchas repeticiones con bloques de código fijos de TikZ que tengo que reescribir una y otra vez. Mi pregunta es: ¿es posible crear un bloque de comandos ejecutables de TikZ (no solo estilos) dentro de un solo argumento y llamar a ese argumento como un estilo?

Considera esto:

\usepackage{tikz}
\usetikzlibrary{calc}
\begin{tikzpicture}
\coordinate [label = below:A](A) at (0, 0);
\coordinate [label = above:B](B) at (3, 3);
\draw (A) -- (B);
\draw [|-|, thin] ($(A)! 8mm !90:(B)$)  -- node [sloped, midway, fill = white]{$3$cm}
($(B)! -8mm !90:(A)$);%This is too long and It would awesome to abstract it
\end{tikzpicture}

ingrese la descripción de la imagen aquí

Lo que me gustaría saber es si hay algo como

\tikzset{
dimension line/.code arg={from#1to#2value#3}
    draw the dimension line between (A) and (B),
    add a node in the middle with blah style and blau value
}

Así que usando

\draw[dimension line=from A to B value 3cm] (A)--(B);

producirá el mismo resultado. Eso ayudará a hacer el trabajo con un mínimo esfuerzo y permitirá la abstracción. Este ejemplo me parece lo suficientemente simple como para entender cómo crear bloques de código en TikZ. Gracias.

Respuesta1

Este es más un comentario largo que una respuesta real.

Aunque todos tikz-dimlinelos ejemplos usan coordenadas cartesianas, es posible usar coordenadas con nombre:

\documentclass[border=2mm,tikz]{standalone}
\usepackage{tikz-dimline}

\begin{document}
\begin{tikzpicture}

\draw[red] (0,0) coordinate (A) -- (45:3) coordinate (B);
\dimline[color=blue]{([shift={(-3mm,3mm)}]A)}{([shift={(-3mm,3mm)}]B)}{3cm};
\end{tikzpicture}
\end{document}

ingrese la descripción de la imagen aquí

En cualquier caso, finalmente encontré la pregunta que estaba buscando:

Dibujar dimensión de una línea como decoración en TikZ

información relacionada