\documentclass[a4paper,12pt]{article}

\usepackage{ucs}
\usepackage[utf8x]{inputenc}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
%\usepackage{graphicx}
%\usepackage[margin=2.5cm]{geometry}
\usepackage{asymptote, amsmath, url}

\usepackage{float}
\floatstyle{boxed}
\restylefloat{figure}

\author{Le dernier matou}
\date{}
\title{Étude d'un système de modules pour une piste bois}

\begin{document}
\maketitle

\tableofcontents
\newpage
\listoffigures

\newpage

\section{Présentation du système Slotfire 400}
Cette partie concerne une étude sur le système "SlotFire 400", un ensemble de modules pour réaliser une piste 4 voies. Toutes les informations proviennent du site de Slotfire \footnote{slotfire.de}.

\subsection{Caractéristiques communes}
Le document PDF \footnote{slotfire.de/sites\_d/02\_module/01\_streckenmodule/downloads/\\Slotfire\_Basis\_Technik\_Systeme.pdf} donnent les caractéristiques communes à tous les modules.

\begin{itemize}
 \item Les modules sont réalisés sur des plaques de MDF (fort?) de 19~mm.
 \item La rainure a une profondeur de 8~mm et une largeur de 3~mm.
 \item L'écart entre les voies est de 125~mm, les bordures sont de 100~mm pour une largeur totale de 700~mm.
\end{itemize}

Afin que le système soit cohérent, la longueur d'un droit (module 401) noté $L$ et le rayon moyen\footnote{La voie 2 et demi :-)} d'un virage standard (module 407) noté $R$ sont liés. Si on considère les morceaux de circuits de la figure \ref{fig:coupleLR} de la page \pageref{fig:coupleLR}, on remarque que la chicane formée de quatre modules 407 et de même longueur que un droit et demi.

\begin{figure}[hbp]
 \centering
 \begin{asy}
  unitsize(0.05mm);
  import slotfire;
  string[] pieces = {'401','402'};
  circuit monCircuit = circuit((0,0),0, 1125,125,100,4, 1,1.3, .8,1.8, .8,1.3, pieces);
  monCircuit.traceCircuit();
  string[] pieces = {'407d','407g','407g','407d'};
  circuit monCircuit = circuit((0,-800),0, 1125,125,100,4, 1,1.3, .8,1.8, .8,1.3, pieces);
  monCircuit.traceCircuit();
  import geometry;
  real R = sqrt(3)/4*1125;
  pair A=(0,-800), B=(0,-800-R), C=rotate(60,A)*B, D=scale(-1,C)*B, E=scale(-1,C)*A,
       F=rotate(60,D)*E, G=scale(-1,F)*E, H=scale(-1,F)*D;
  draw(A--E--G--H--D--B--cycle,red+1bp); draw(D--E,red+1bp);
  dot(B,red+7bp); dot(D,red+7bp); dot(H,red+7bp);
  draw(arc(B,A,C,CW),red+dotted+2bp);
  draw(arc(D,C,F,CCW),red+dotted+2bp);
  draw(arc(H,F,G,CW),red+dotted+2bp);  
 \end{asy}
 \caption{Mise en évidence du couple $L \, R$}
  \label{fig:coupleLR}
\end{figure}

En suivant la ligne médiane de la chicane (pointillés rouge) et les centres des virages, on obtient quatre triangles équilatéraux de côté $R$. Leur hauteur mesure donc $\frac{\sqrt3}2R$. On peut donc écrire que :
$$4\times \frac{\sqrt3}2 R = \frac32 L$$
Ce qui donne après simplification :
$$L = \frac{4\sqrt3}3 R$$

\subsection{Module 401}
Le module droit d'une longueur de 1125~mm et d'une largeur de 700~mm. Figure \ref{fig:p401} page \pageref{fig:p401}.

\begin{figure}[hbp]
 \centering
 \begin{asy}
  unitsize(0.05mm);
  import slotfire;
  string[] pieces = {'401'};
  circuit monCircuit = circuit((0,0),0, 1125,125,100,4, 1,1.3, .8,1.8, .8,1.3, pieces);
  monCircuit.traceCircuit();
 \end{asy}
 \caption{La module 401 au 1:20.}
  \label{fig:p401}
\end{figure}

\subsection{Module 402}
Le module demi-droit d'une longueur de 562,5~mm. Figure \ref{fig:p402} page \pageref{fig:p402}.

\begin{figure}[hbp]
 \centering
 \begin{asy}
  unitsize(0.05mm);
  import slotfire;
  string[] pieces = {'402'};
  circuit monCircuit = circuit((0,0),0, 1125,125,100,4, 1,1.3, .8,1.8, .8,1.3, pieces);
  monCircuit.traceCircuit();
 \end{asy}
 \caption{La module 402 au 1:20.}
  \label{fig:p402}
\end{figure}

\subsection{Modules 403 et 404}
Un module constitué d'un demi-droit (402) et d'un virage standard (407). Figure \ref{fig:p403} page \pageref{fig:p403}.

\begin{figure}[hbp]
 \centering
 \begin{asy}
  unitsize(0.05mm);
  import slotfire;
  string[] pieces = {'403g'};
  circuit monCircuit = circuit((0,0),0, 1125,125,100,4, 1,1.3, .8,1.8, .8,1.3, pieces);
  monCircuit.traceCircuit();
 \end{asy}
 \caption{Le module 403 au 1:20.}
  \label{fig:p403}
\end{figure}

\subsection{Modules 405 et 406}
Un module constitué d'un droit (401) et d'un virage standard (407). Figure \ref{fig:p405} page \pageref{fig:p405}.

\begin{figure}[hbp]
 \centering
 \begin{asy}
  unitsize(0.05mm);
  import slotfire;
  string[] pieces = {'405g'};
  circuit monCircuit = circuit((0,0),0, 1125,125,100,4, 1,1.3, .8,1.8, .8,1.3, pieces);
  monCircuit.traceCircuit();
 \end{asy}
 \caption{Le module 405 au 1:20.}
  \label{fig:p405}
\end{figure}

\subsection{Module 407}
Il s'agit du virage standard d'un angle de 60 \degres. Les rayons des différentes voies sont : 300~mm, 425~mm, 550~mm et 675~mm. Cette information est donnée par le TrackDesigner \footnote{slotfire.de/trackdesigner/starter.php}. Figure \ref{fig:p407} page \pageref{fig:p407}.

\begin{figure}[hbp]
 \centering
 \begin{asy}
  unitsize(0.05mm);
  import slotfire;
  string[] pieces = {'407g'};
  circuit monCircuit = circuit((0,0),0, 1125,125,100,4, 1,1.3, .8,1.8, .8,1.3, pieces);
  monCircuit.traceCircuit();
 \end{asy}
 \caption{La module 407 au 1:20.}
  \label{fig:p407}
\end{figure}

\subsection{Module 409}
Il s'agit d'un virage de 120 \degres. Il est composé d'un demi-droit (402) entouré par deux virages standards (407). Figure \ref{fig:p409} page \pageref{fig:p409}.

\begin{figure}[hbp]
 \centering
 \begin{asy}
  unitsize(0.05mm);
  import slotfire;
  string[] pieces = {'409g'};
  circuit monCircuit = circuit((0,0),0, 1125,125,100,4, 1,1.3, .8,1.8, .8,1.3, pieces);
  monCircuit.traceCircuit();
 \end{asy}
 \caption{La module 409 au 1:20.}
  \label{fig:p409}
\end{figure}

\subsection{Module 411}
Il s'agit d'un virage de 60 \degres. Il est composé d'un virage standard (407) entouré par deux demi-droits (402). Figure \ref{fig:p411} page \pageref{fig:p411}.

\begin{figure}[hbp]
 \centering
 \begin{asy}
  unitsize(0.05mm);
  import slotfire;
  string[] pieces = {'411g'};
  circuit monCircuit = circuit((0,0),0, 1125,125,100,4, 1,1.3, .8,1.8, .8,1.3, pieces);
  monCircuit.traceCircuit();
 \end{asy}
 \caption{La module 411 au 1:20.}
  \label{fig:p411}
\end{figure}

\subsection{Module 413 et 414}
Il s'agit d'une chicane. Elle est composée d'un demi-droit (402) entouré par deux virages standards (407). Figure \ref{fig:p413} page \pageref{fig:p413}.

Elle présente la même longueur qu'un droit (401) et le même décalage de voies qu'un demi-tour (418). Cette information permet de retrouver la formule liant $L$ et $R$.

\begin{figure}[hbp]
 \centering
 \begin{asy}
  unitsize(0.05mm);
  import slotfire;
  string[] pieces = {'413'};
  circuit monCircuit = circuit((0,0),0, 1125,125,100,4, 1,1.3, .8,1.8, .8,1.3, pieces);
  monCircuit.traceCircuit();
 \end{asy}
 \caption{Le module 413 au 1:20.}
  \label{fig:p413}
\end{figure}

\subsection{Module 415 et 416}
Il s'agit d'une chicane. Elle est composée d'un demi-droit (402) suivi par deux virages standards (407). Figure \ref{fig:p415} page \pageref{fig:p415}.

Elle présente une longueur d'un quart supérieur au droit (401) et le moitié du décalage de voies d'un demi-tour (418). Cette information permet de retrouver la formule liant $L$ et $R$.

\begin{figure}[hbp]
 \centering
 \begin{asy}
  unitsize(0.05mm);
  import slotfire;
  string[] pieces = {'415'};
  circuit monCircuit = circuit((0,0),0, 1125,125,100,4, 1,1.3, .8,1.8, .8,1.3, pieces);
  monCircuit.traceCircuit();
 \end{asy}
 \caption{Le module 415 au 1:20.}
  \label{fig:p415}
\end{figure}

\subsection{Module 417}
Il s'agit d'un virage de 120 \degres. Il est composé de deux virages standards (407). Figure \ref{fig:p417} page \pageref{fig:p417}.

\begin{figure}[hbp]
 \centering
 \begin{asy}
  unitsize(0.05mm);
  import slotfire;
  string[] pieces = {'417g'};
  circuit monCircuit = circuit((0,0),0, 1125,125,100,4, 1,1.3, .8,1.8, .8,1.3, pieces);
  monCircuit.traceCircuit();
 \end{asy}
 \caption{La module 417 au 1:20.}
  \label{fig:p417}
\end{figure}

\subsection{Module 418}
Il s'agit d'un virage de 180 \degres. Il est composé de trois virages standards (407). Figure \ref{fig:p418} page \pageref{fig:p418}.

\begin{figure}[hbp]
 \centering
 \begin{asy}
  unitsize(0.05mm);
  import slotfire;
  string[] pieces = {'418g'};
  circuit monCircuit = circuit((0,0),0, 1125,125,100,4, 1,1.3, .8,1.8, .8,1.3, pieces);
  monCircuit.traceCircuit();
 \end{asy}
 \caption{La module 418 au 1:20.}
  \label{fig:p418}
\end{figure}

\subsection{Module 419}
Il s'agit d'un virage de 60 \degres. Il est composé d'un virage standard (407) entouré par deux droits (401). Figure \ref{fig:p419} page \pageref{fig:p419}.

\begin{figure}[hbp]
 \centering
 \begin{asy}
  unitsize(0.05mm);
  import slotfire;
  string[] pieces = {'419g'};
  circuit monCircuit = circuit((0,0),0, 1125,125,100,4, 1,1.3, .8,1.8, .8,1.3, pieces);
  monCircuit.traceCircuit();
 \end{asy}
 \caption{La module 419 au 1:20.}
  \label{fig:p419}
\end{figure}

\subsection{Module 421}
Il s'agit d'un droit en montée (ou descente) présentant une longueur d'un droit et demi. Figure \ref{fig:p421} page \pageref{fig:p421}.

\begin{figure}[hbp]
 \centering
 \begin{asy}
  unitsize(0.05mm);
  import slotfire;
  string[] pieces = {'421'};
  circuit monCircuit = circuit((0,0),0, 1125,125,100,4, 1,1.3, .8,1.8, .8,1.3, pieces);
  monCircuit.traceCircuit();
 \end{asy}
 \caption{La module 421 au 1:20.}
  \label{fig:p421}
\end{figure}

\newpage

\section{Personalisation du système}

\subsection{Pour l'ensemble des modules}

En respectant la formule :
$$L = \frac{4\sqrt3}3 R$$
on peut créer ses propres modules en variant les valeurs suivantes :
\begin{itemize}
 \item le nombre de voies,
 \item le couple longueur rayon,
 \item l'écart entre les voies,
 \item la taille des bordures.
\end{itemize}

Trois exemples sur la figure \ref{fig:essais1} de la page \pageref{fig:essais1}. De gauche à droite :
\begin{enumerate}
 \item le SlotFire 400 quatre voies distantes de 125~mm et des bordures de 100~mm.
 \item trois voies distantes de 80~mm et des bordures de 50~mm.
 \item six voies distantes de 50~mm et des bordures de 10~mm.
\end{enumerate}

\begin{figure}[hbp]
 \centering
 \begin{asy}
  unitsize(0.05mm); import slotfire;
  string[] pieces = {'401','407d','402'};
  circuit monCircuit = circuit((0,0),90, 1125,125,100,4, 1,1.3, .8,1.8, .8,1.3, pieces);
  monCircuit.traceCircuit();
  circuit monCircuit = circuit((800,0),90, 700,80,50,3, 1,1.3, .8,1.8, .8,1.3, pieces);
  monCircuit.traceCircuit();
  circuit monCircuit = circuit((1500,0),90, 700,50,10,8, 1,1.3, .8,1.8, .8,1.3, pieces);
  monCircuit.traceCircuit();
 \end{asy}
 \caption{Trois essais en variant le nombre de voies, le couple longueur rayon, l'écart entre les voies, la taille des bordures.}
  \label{fig:essais1}
\end{figure}

\subsection{Pour certains modules}

Certains modules peuvent être personnalisé individuellement. On peut varier :

\begin{itemize}
 \item le petit et le grand rayons des modules 403-404,
 \item le petit et le grand rayons des modules 405-406,
 \item le petit et le grand rayons de la module 418.
\end{itemize}

Un exemple pour la module 404 sur la figure \ref{fig:essais2} de la page \pageref{fig:essais2}. De gauche à droite :
\begin{enumerate}
 \item un grand rayon de 110\% du rayon standard $R$,
 \item un grand rayon de 130\% du rayon standard $R$.
\end{enumerate}
Dans les deux cas le petit rayon est égal au rayon standard $R$.

\begin{figure}[hbp]
 \centering
 \begin{asy}
  unitsize(0.05mm); import slotfire;
  string[] pieces = {'404d'};
  circuit monCircuit = circuit((0,0),90, 800,100,0,2, 1,1.1, .8,1.8, .8,1.3, pieces);
  monCircuit.traceCircuit();
  circuit monCircuit = circuit((500,0),90, 800,100,0,2, 1,1.3, .8,1.8, .8,1.3, pieces);
  monCircuit.traceCircuit();
 \end{asy}
 \caption{Deux essais en variant les rayons de la module 404}
 \label{fig:essais2}
\end{figure}

\newpage

\section{Un circuit}

Un exemple de circuit dans une pièce de 3~m~x~5~m sur la figure \ref{fig:Circuit} de la page \pageref{fig:Circuit}.

Le tracé est obtenu à partir des commandes suivantes :

\begin{verbatim}
// Le plan sera au 1:50
unitsize(0.02mm);
// Importation du module de tracé
import slotfire;
// Tracé de la pièce de 3mx5m
draw(xscale(3000)*yscale(5000)*unitsquare,2bp+dotted);
// Liste des pièces
string[] pieces = {'421','407d','405d','407d','419d','402',
'418g','421','418g','404d','402','407d'};
// Création du circuit 
// point de départ (500,2500) orienté au Nord (90)
// Droit standard de 1000 mm, 100 mm entre les voies,
// 50 mm de bordures et 3 voies
// Les rayons des modules 403 et 404 sont de 100% et 130% de R
// Les rayons des modules 405 et 406 sont de 100% et 180% de R
// Les rayons du module 418 sont de 80% et 130% de R
circuit monCircuit = circuit((500,2500),90, 
                             1000,100,50,3,
                             1,1.3,
                             1,1.8,
                             .8,1.3,
                             pieces);
// Tracé du circuit
monCircuit.traceCircuit(); 
\end{verbatim}

Pour résumer on définit les données du circuit et la liste des pièces le constituant puis le tracé est automatique.

\begin{figure}[hbp]
 \centering
 \begin{asy}
  unitsize(0.02mm); import slotfire;
  draw(xscale(3000)*yscale(5000)*unitsquare,2bp+dotted);
  string[] pieces = {'421','407d','405d','407d','419d','402','418g','421','418g','404d','402','407d'};
  circuit monCircuit = circuit((500,2500),90, 1000,100,50,3, 1,1.3, 1,1.8, .8,1.3, pieces);
  monCircuit.traceCircuit();
 \end{asy}
 \caption{Un circuit}
 \label{fig:Circuit}
\end{figure}

\end{document}