[Résolu] Lecture de verniers

Tout ce qui concerne l'utilisation ou l'installation de LaTeX.

Modérateur: gdm_tex

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

[Résolu] Lecture de verniers

Messagepar marco56 » Dimanche 26 Mars 2017, 21:27

Bonsoir,
Je souhaiterais mettre en place un "TP" sur la lecture de verniers (angulaire, pied à coulisse, michelson).
Est-ce quelqu'un à cela en magasin ?
Pour l'instant, j'ai rassemblé et modifié des docs trouvés sur la toile (un peu par manque de temps).
Je sais que cela n'est pas un ecm à proprement parlé mais cela peut éviter de retaper des lignes.

Code: Tout sélectionner
\documentclass [a4paper,10pt]{book}
\usepackage{morewrites}
\usepackage{savesym}
% ************************
\usepackage{etex} % %pour éviter les messages du type ``no room for a new count'' % % % %

\usepackage{ucs}
\usepackage[utf8]{inputenc}
\usepackage{textcomp}
\usepackage[francais %,greek
]{babel}

\usepackage [T1]{fontenc}
\usepackage{tikz}
\usepackage{pst-all}
\usepackage{fp}


\begin{document}


\chapter{Lecture de vernier}

\section{Lecture d'un vernier}

Un vernier comporte deux échelles graduées, l'une fixe et l'autre mobile. \\
L'échelle fixe donne l'unité (mm, degrés, \dots), l'échelle mobile est une fraction de l'intervalle le plus petit entre deux graduations de l'échelle fixe. \\
On lit d'abord l'échelle fixe pointée par le zéro de l'échelle mobile (en fait, on li la valeur juste inférieure), puis l'échelle mobile, là où il y a coïncidence d'une graduation de l'échelle mobile une graduation de l'échelle fixe. \\
On additionne ensuite les deux valeurs.



\newcommand{\reglecasseedg}[2]{
\FPset{\longueur}{#2}
\FPclip{\longueur}{\longueur}
\FPset{\longregle}{#2}
\FPadd{\longregle}{\longregle}{1}
\FPclip{\longregle}{\longregle}
\psframe(-1,0)(\longregle,2)
\pspolygon[fillstyle=solid,fillcolor=white,linecolor=white](-1,0)(-0.5,0)(-0.25,0.5)(-0.6,1.25)(-0.5,1.5)(-0.5,2)(-1,2)
%la ligne \`a gauche qui fait l'effet cass\'ee.
\psline[linecolor=black](-0.5,0)(-0.25,0.5)(-0.6,1.25)(-0.5,1.5)(-0.5,2)
\FPadd{\a}{\longregle}{0.5}
\FPadd{\b}{\longregle}{0.25}
\FPclip{\a}{\a}
\FPclip{\b}{\b}
%la ligne \`a droite qui fait l'effet cass\'ee.
\psline(\longregle,0)(\a,0.5)(\b,1)(\a,1.25)(\a,1.5)(\longregle,2)
\psline[linecolor=white](\longregle,0)(\longregle,2)
%les petits graduations
\FPmul{\nbpetitesgrad}{\longueur}{10}
\FPadd{\nbpetitesgrad}{\nbpetitesgrad}{1}
\FPclip{\nbpetitesgrad}{\nbpetitesgrad}
  \multido{\r=0+0.1}{\nbpetitesgrad}
  {
  \psline(\r,2)(\r,1.75)
  }
%les moyennes graduations
\FPmul{\nbmoygrad}{\longueur}{2}
\FPadd{\nbmoygrad}{\nbmoygrad}{1}
\FPtrunc{\nbmoygrad}{\nbmoygrad}{0}
\FPclip{\nbmoygrad}{\nbmoygrad}
  \multido{\r=0+0.5}{\nbmoygrad}
  {
  \psline(\r,2)(\r,1.55)
  }
%les grandes graduations
\FPset{\nbgrdgrad}{#2}
\FPadd{\nbgrdgrad}{\nbgrdgrad}{1}
\FPtrunc{\nbgrdgrad}{\nbgrdgrad}{0}
\FPclip{\nbgrdgrad}{\nbgrdgrad}
\multido{\r=0+1}{\nbgrdgrad}
  {
  \psline(\r,2)(\r,1.25)
  }
%la num\'erotation
\FPset{\nombre}{#1}
\multido{\r=0+1}{\nbgrdgrad}
{\FPclip{\nombre}{\nombre}
\rput(\r,1){\nombre}
\FPadd{\nombre}{\nombre}{1}
}
}


\newcommand{\reglecasseed}[1]{
\FPset{\longueur}{#1}
\FPclip{\longueur}{\longueur}
\FPset{\longregle}{#1}
\FPadd{\longregle}{\longregle}{1}
\FPclip{\longregle}{\longregle}
\psframe(-1,0)(\longregle,2)
\pscircle(-0.5,0.5){0.12}
\FPadd{\a}{\longregle}{0.5}
\FPadd{\b}{\longregle}{0.25}
\FPclip{\a}{\a}
\FPclip{\b}{\b}
%la ligne \`a droite qui fait l'effet cass\'ee.
\psline(\longregle,0)(\a,0.5)(\b,1)(\a,1.25)(\a,1.5)(\longregle,2)
\psline[linecolor=white](\longregle,0)(\longregle,2)

%les petits graduations
\FPmul{\nbpetitesgrad}{\longueur}{10}
\FPadd{\nbpetitesgrad}{\nbpetitesgrad}{1}
\FPclip{\nbpetitesgrad}{\nbpetitesgrad}
  \multido{\r=0+0.1}{\nbpetitesgrad}
  {
  \psline(\r,2)(\r,1.75)
  }
%les moyennes graduations
\FPmul{\nbmoygrad}{\longueur}{2}
\FPadd{\nbmoygrad}{\nbmoygrad}{1}
\FPtrunc{\nbmoygrad}{\nbmoygrad}{0}
\FPclip{\nbmoygrad}{\nbmoygrad}
  \multido{\r=0+0.5}{\nbmoygrad}
  {
  \psline(\r,2)(\r,1.55)
  }
%les grandes graduations
\FPset{\nbgrdgrad}{#1}
\FPadd{\nbgrdgrad}{\nbgrdgrad}{1}
\FPtrunc{\nbgrdgrad}{\nbgrdgrad}{0}
\FPclip{\nbgrdgrad}{\nbgrdgrad}
\multido{\r=0+1}{\nbgrdgrad}
  {
  \psline(\r,2)(\r,1.25)
  }
%la num\'erotation
\FPset{\nombre}{0}
\multido{\r=0+1}{\nbgrdgrad}
{\FPclip{\nombre}{\nombre}
\rput(\r,1){\nombre}
\FPadd{\nombre}{\nombre}{1}
}
}


\newcommand{\regle}[1]{
\FPset{\longueur}{#1}
\FPclip{\longueur}{\longueur}
\FPset{\longregle}{#1}
\FPadd{\longregle}{\longregle}{1}
\FPclip{\longregle}{\longregle}
\psframe(-1,0)(\longregle,2)
%\pscircle(-0.5,0.5){0.12}
\FPadd{\a}{\longregle}{0.5}
\FPadd{\b}{\longregle}{0.25}
\FPclip{\a}{\a}
\FPclip{\b}{\b}
%les petits graduations
\FPmul{\nbpetitesgrad}{\longueur}{10}
\FPadd{\nbpetitesgrad}{\nbpetitesgrad}{1}
\FPclip{\nbpetitesgrad}{\nbpetitesgrad}
  \multido{\r=0+0.1}{\nbpetitesgrad}
  {
  \psline(\r,2)(\r,1.75)
  }
%les moyennes graduations
\FPmul{\nbmoygrad}{\longueur}{2}
\FPadd{\nbmoygrad}{\nbmoygrad}{1}
\FPtrunc{\nbmoygrad}{\nbmoygrad}{0}
\FPclip{\nbmoygrad}{\nbmoygrad}
  \multido{\r=0+0.5}{\nbmoygrad}
  {
  \psline(\r,2)(\r,1.55)
  }
%les grandes graduations
\FPset{\nbgrdgrad}{#1}
\FPadd{\nbgrdgrad}{\nbgrdgrad}{1}
\FPtrunc{\nbgrdgrad}{\nbgrdgrad}{0}
\FPclip{\nbgrdgrad}{\nbgrdgrad}
\multido{\r=0+1}{\nbgrdgrad}
  {
  \psline(\r,2)(\r,1.25)
  }
%la num\'erotation
\FPset{\nombre}{0}
\multido{\r=0+1}{\nbgrdgrad}
{\FPclip{\nombre}{\nombre}
\rput(\r,1){\nombre}
\FPadd{\nombre}{\nombre}{1}
}
}

\section{Pied à coulisse}


La macro \og regle \fg:\\
\begin{center}
\begin{pspicture}(-1,-1)(8,3)
 \regle{5.3}
\end{pspicture}
\end{center}


%La macro \og reglecasseed \fg:\\
%\begin{pspicture}(-1,-1)(8,3)
% \reglecasseed{3.8}
%\end{pspicture}
%
%La macro \og reglecasseedg \fg:\\
%\begin{pspicture}(-1,-1)(8,3)
% \reglecasseedg{23}{3.8}
%\end{pspicture}



\section{Vernier angulaire}
\begin{center}
\scalebox{1.5}{
\begin{tikzpicture}   
% graduation externe 1 degrés
\foreach \a in {0,1,...,180}{\draw (\a:3)--(\a:3.25);}
% graduation externe 5 degrés
\foreach \a in {0,5,...,180}{\draw (\a:3)--(\a:3.4);}

% double graduation
\foreach \a/\b in {%
0/-90,10/-80,20/-70,30/-60,40/-50,50/-40,%
60/-30,70/-20,80/-10,90/0,100/10,110/20,%
120/30,130/40,140/50,150/60,160/70,170/80,180/90%
}{
% graduation externe 10 degrés
\draw (\a:2.80)--(\a:3.55)
node[font=\tiny, rotate=\b] (\a) at (\a:2.65){\a};

% graduation interne 10 degrés
%\draw (\a:2.5)--(\a:2.45)
%node[thin,font=\tiny, rotate=-\b] (\a) at (180-\a:2.3){\a};
}

% demi-cercle intérieur
\draw(-3,0) arc(180:0:3);
% demi-cercle extérieur
\draw(-3.25,0) arc(180:0:3.25);

% demi-cercle intérieur
%\draw(-2.5,0) arc(180:0:2.5);
% contours du rapporteur
%\draw (-3,0) arc(180:0:3)--(3,-0.5)--(-3,-0.5)--cycle;   
%\draw (-2,0)--(2,0);
%\draw (0,-0.2)--(0,2);         
\end{tikzpicture}
}
\end{center}


%La macro pour le rapporteur semi-circulaire gradu\'e.
\newcommand{\rapporteur}{
\psarc(0,0){5}{0}{180}
\psarc(0,0){4.5}{0}{180}
%\psarc(0,0){3}{0}{180}
%\psarc(0,0){0.5}{0}{180}
\SpecialCoor
\multido{\i=0+1}{181}{\psline(4.5;\i)(5;\i)}
\multido{\i=0+10}{19}{\psline(4;\i)(5;\i)}
%\psframe(-5,-1)(5,0)
\multido{\i=5+10}{18}{\psline(4.25;\i)(5;\i)}
\rput(3.75;180){\rotatebox{90}{\begin{footnotesize}0\degre\end{footnotesize}}}
\rput(3.85;170){\rotatebox{80}{\begin{footnotesize}10\degre\end{footnotesize}}}
\rput(3.75;160){\rotatebox{70}{\begin{footnotesize}20\degre\end{footnotesize}}}
\rput(3.85;150){\rotatebox{60}{\begin{footnotesize}30\degre\end{footnotesize}}}
\rput(3.75;140){\rotatebox{50}{\begin{footnotesize}40\degre\end{footnotesize}}}
\rput(3.85;130){\rotatebox{40}{\begin{footnotesize}50\degre\end{footnotesize}}}
\rput(3.75;120){\rotatebox{30}{\begin{footnotesize}60\degre\end{footnotesize}}}
\rput(3.85;110){\rotatebox{20}{\begin{footnotesize}70\degre\end{footnotesize}}}
\rput(3.75;100){\rotatebox{10}{\begin{footnotesize}80\degre\end{footnotesize}}}
\rput(3.85;90){\rotatebox{0}{\begin{footnotesize}90\degre\end{footnotesize}}}
\rput(3.75;80){\rotatebox{-10}{\begin{footnotesize}100\degre\end{footnotesize}}}
\rput(3.85;70){\rotatebox{-20}{\begin{footnotesize}110\degre\end{footnotesize}}}
\rput(3.75;60){\rotatebox{-30}{\begin{footnotesize}120\degre\end{footnotesize}}}
\rput(3.85;50){\rotatebox{-40}{\begin{footnotesize}130\degre\end{footnotesize}}}
\rput(3.75;40){\rotatebox{-50}{\begin{footnotesize}140\degre\end{footnotesize}}}
\rput(3.85;30){\rotatebox{-60}{\begin{footnotesize}150\degre\end{footnotesize}}}
\rput(3.75;20){\rotatebox{-70}{\begin{footnotesize}160\degre\end{footnotesize}}}
\rput(3.85;10){\rotatebox{-80}{\begin{footnotesize}170\degre\end{footnotesize}}}
\rput(3.75;0){\rotatebox{-90}{\begin{footnotesize}180\degre\end{footnotesize}}}
%\pscircle[fillstyle=solid, fillcolor=white]{0.1}
\NormalCoor
}


\begin{center}
\begin{pspicture}(-5,-1)(5,5)
\rapporteur
\end{pspicture}
\end{center}


\end{document}

Au plaisir de vous lire,
Marc
Dernière édition par marco56 le Lundi 10 Avril 2017, 13:52, édité 1 fois.
marco56
Giga-utilisateur
 
Messages: 663
Inscription: Jeudi 25 Novembre 2010, 22:10
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: Lecture de verniers

Messagepar marco56 » Lundi 27 Mars 2017, 21:55

Je me réponds à moi-même : pour info et possible améliorations.
Je laisse volontairement les passages commentés pour d'éventuelles modifications.
Le pied à coulisse est ok, je pense, reste le vernier angulaire.
Code: Tout sélectionner
\documentclass [a4paper,10pt]{book}
\usepackage{morewrites}
\usepackage{savesym}
% ************************
\usepackage{etex} % %pour éviter les messages du type ``no room for a new count'' % % % %

\usepackage{ucs}
\usepackage[utf8]{inputenc}
\usepackage{textcomp}
\usepackage[francais %,greek
]{babel}

\usepackage [T1]{fontenc}
\usepackage{tikz}
\usepackage{pst-all}
\usepackage{fp}

\newenvironment{figurehere}
{\def\@captype{figure}}
{}


\newcommand{\bnf}{\begin{figurehere}}
\newcommand{\enf}{\end{figurehere}}

\begin{document}


\chapter{Lecture de vernier}

\section{Lecture d'un vernier}

Un vernier comporte deux échelles graduées, l'une fixe et l'autre mobile. \\
L'échelle fixe donne l'unité (mm, degrés, \dots), l'échelle mobile est une fraction de l'intervalle le plus petit entre deux graduations de l'échelle fixe. \\
On lit d'abord l'échelle fixe pointée par le zéro de l'échelle mobile (en fait, on li la valeur juste inférieure), puis l'échelle mobile, là où il y a coïncidence d'une graduation de l'échelle mobile une graduation de l'échelle fixe. \\
On additionne ensuite les deux valeurs.



\newcommand{\reglecasseedg}[2]{
\FPset{\longueur}{#2}
\FPclip{\longueur}{\longueur}
\FPset{\longregle}{#2}
\FPadd{\longregle}{\longregle}{1}
\FPclip{\longregle}{\longregle}
\psframe(-1,0)(\longregle,2)
\pspolygon[fillstyle=solid,fillcolor=white,linecolor=white](-1,0)(-0.5,0)(-0.25,0.5)(-0.6,1.25)(-0.5,1.5)(-0.5,2)(-1,2)
%la ligne \`a gauche qui fait l'effet cass\'ee.
\psline[linecolor=black](-0.5,0)(-0.25,0.5)(-0.6,1.25)(-0.5,1.5)(-0.5,2)
\FPadd{\a}{\longregle}{0.5}
\FPadd{\b}{\longregle}{0.25}
\FPclip{\a}{\a}
\FPclip{\b}{\b}
%la ligne \`a droite qui fait l'effet cass\'ee.
\psline(\longregle,0)(\a,0.5)(\b,1)(\a,1.25)(\a,1.5)(\longregle,2)
\psline[linecolor=white](\longregle,0)(\longregle,2)
%les petits graduations
\FPmul{\nbpetitesgrad}{\longueur}{10}
\FPadd{\nbpetitesgrad}{\nbpetitesgrad}{1}
\FPclip{\nbpetitesgrad}{\nbpetitesgrad}
  \multido{\r=0+0.1}{\nbpetitesgrad}
  {
  \psline(\r,2)(\r,1.75)
  }
%les moyennes graduations
\FPmul{\nbmoygrad}{\longueur}{2}
\FPadd{\nbmoygrad}{\nbmoygrad}{1}
\FPtrunc{\nbmoygrad}{\nbmoygrad}{0}
\FPclip{\nbmoygrad}{\nbmoygrad}
  \multido{\r=0+0.5}{\nbmoygrad}
  {
  \psline(\r,2)(\r,1.55)
  }
%les grandes graduations
\FPset{\nbgrdgrad}{#2}
\FPadd{\nbgrdgrad}{\nbgrdgrad}{1}
\FPtrunc{\nbgrdgrad}{\nbgrdgrad}{0}
\FPclip{\nbgrdgrad}{\nbgrdgrad}
\multido{\r=0+1}{\nbgrdgrad}
  {
  \psline(\r,2)(\r,1.25)
  }
%la num\'erotation
\FPset{\nombre}{#1}
\multido{\r=0+1}{\nbgrdgrad}
{\FPclip{\nombre}{\nombre}
\rput(\r,1){\nombre}
\FPadd{\nombre}{\nombre}{1}
}
}


\newcommand{\reglecasseed}[1]{
\FPset{\longueur}{#1}
\FPclip{\longueur}{\longueur}
\FPset{\longregle}{#1}
\FPadd{\longregle}{\longregle}{1}
\FPclip{\longregle}{\longregle}
\psframe(-1,0)(\longregle,2)
\pscircle(-0.5,0.5){0.12}
\FPadd{\a}{\longregle}{0.5}
\FPadd{\b}{\longregle}{0.25}
\FPclip{\a}{\a}
\FPclip{\b}{\b}
%la ligne \`a droite qui fait l'effet cass\'ee.
\psline(\longregle,0)(\a,0.5)(\b,1)(\a,1.25)(\a,1.5)(\longregle,2)
\psline[linecolor=white](\longregle,0)(\longregle,2)

%les petits graduations
\FPmul{\nbpetitesgrad}{\longueur}{10}
\FPadd{\nbpetitesgrad}{\nbpetitesgrad}{1}
\FPclip{\nbpetitesgrad}{\nbpetitesgrad}
  \multido{\r=0+0.1}{\nbpetitesgrad}
  {
  \psline(\r,2)(\r,1.75)
  }
%les moyennes graduations
\FPmul{\nbmoygrad}{\longueur}{2}
\FPadd{\nbmoygrad}{\nbmoygrad}{1}
\FPtrunc{\nbmoygrad}{\nbmoygrad}{0}
\FPclip{\nbmoygrad}{\nbmoygrad}
  \multido{\r=0+0.5}{\nbmoygrad}
  {
  \psline(\r,2)(\r,1.55)
  }
%les grandes graduations
\FPset{\nbgrdgrad}{#1}
\FPadd{\nbgrdgrad}{\nbgrdgrad}{1}
\FPtrunc{\nbgrdgrad}{\nbgrdgrad}{0}
\FPclip{\nbgrdgrad}{\nbgrdgrad}
\multido{\r=0+1}{\nbgrdgrad}
  {
  \psline(\r,2)(\r,1.25)
  }
%la num\'erotation
\FPset{\nombre}{0}
\multido{\r=0+1}{\nbgrdgrad}
{\FPclip{\nombre}{\nombre}
\rput(\r,1){\nombre}
\FPadd{\nombre}{\nombre}{1}
}
}


\newcommand{\regle}[1]{
\FPset{\longueur}{#1}
\FPclip{\longueur}{\longueur}
\FPset{\longregle}{#1}
\FPadd{\longregle}{\longregle}{1}
\FPclip{\longregle}{\longregle}
\psframe(-1,0)(\longregle,2)
%\pscircle(-0.5,0.5){0.12}
\FPadd{\a}{\longregle}{0.5}
\FPadd{\b}{\longregle}{0.25}
\FPclip{\a}{\a}
\FPclip{\b}{\b}
%les petits graduations
\FPmul{\nbpetitesgrad}{\longueur}{10}
\FPadd{\nbpetitesgrad}{\nbpetitesgrad}{1}
\FPclip{\nbpetitesgrad}{\nbpetitesgrad}
  \multido{\r=0+0.1}{\nbpetitesgrad}
  {
  \psline(\r,2)(\r,1.75)
  }
%les moyennes graduations
\FPmul{\nbmoygrad}{\longueur}{2}
\FPadd{\nbmoygrad}{\nbmoygrad}{1}
\FPtrunc{\nbmoygrad}{\nbmoygrad}{0}
\FPclip{\nbmoygrad}{\nbmoygrad}
  \multido{\r=0+0.5}{\nbmoygrad}
  {
  \psline(\r,2)(\r,1.55)
  }
%les grandes graduations
\FPset{\nbgrdgrad}{#1}
\FPadd{\nbgrdgrad}{\nbgrdgrad}{1}
\FPtrunc{\nbgrdgrad}{\nbgrdgrad}{0}
\FPclip{\nbgrdgrad}{\nbgrdgrad}
\multido{\r=0+1}{\nbgrdgrad}
  {
  \psline(\r,2)(\r,1.25)
  }
%la num\'erotation
\FPset{\nombre}{0}
\multido{\r=0+1}{\nbgrdgrad}
{\FPclip{\nombre}{\nombre}
\rput(\r,1){\nombre}
\FPadd{\nombre}{\nombre}{1}
}
}

\section{Pied à coulisse}


\begin{center}
\begin{pspicture}(-1,-1)(8,3)
 \regle{5.3}
\psframe[fillstyle=solid,fillcolor=blue!10,linecolor=blue](1.3,1.9)(4,3)
\multido{\rb=1.519+0.455}{3}{
\psline[linecolor=blue](\rb,1.9)(\rb,2.6)}
\multido{\rc=1.519+0.0909}{10}{
\psline[linecolor=blue](\rc,1.9)(\rc,2.1)}
\psframe[fillstyle=solid,fillcolor=blue!10,linecolor=blue](1.3,0.2)(4,-0.2)
\end{pspicture}
\end{center}

$1,52 \, mm$ ici.


%La macro \og reglecasseed \fg:\\
%\begin{pspicture}(-1,-1)(8,3)
% \reglecasseed{3.8}
%\end{pspicture}
%
%La macro \og reglecasseedg \fg:\\
%\begin{pspicture}(-1,-1)(8,3)
% \reglecasseedg{23}{3.8}
%\end{pspicture}



\section{Vernier angulaire}
\begin{center}
\scalebox{1.5}{
\begin{tikzpicture}   
% graduation externe 1 degrés
\foreach \a in {0,1,...,180}{\draw (\a:3)--(\a:3.25);}
% graduation externe 5 degrés
\foreach \a in {0,5,...,180}{\draw (\a:3)--(\a:3.4);}

% double graduation
\foreach \a/\b in {%
0/-90,10/-80,20/-70,30/-60,40/-50,50/-40,%
60/-30,70/-20,80/-10,90/0,100/10,110/20,%
120/30,130/40,140/50,150/60,160/70,170/80,180/90%
}{
% graduation externe 10 degrés
\draw (\a:2.80)--(\a:3.55)
node[font=\tiny, rotate=\b] (\a) at (\a:2.65){\a};

% graduation interne 10 degrés
%\draw (\a:2.5)--(\a:2.45)
%node[thin,font=\tiny, rotate=-\b] (\a) at (180-\a:2.3){\a};
}

% demi-cercle intérieur
\draw(-3,0) arc(180:0:3);
% demi-cercle extérieur
\draw(-3.25,0) arc(180:0:3.25);

% demi-cercle intérieur
%\draw(-2.5,0) arc(180:0:2.5);
% contours du rapporteur
%\draw (-3,0) arc(180:0:3)--(3,-0.5)--(-3,-0.5)--cycle;   
%\draw (-2,0)--(2,0);
%\draw (0,-0.2)--(0,2);         
\end{tikzpicture}
}
\end{center}


%La macro pour le rapporteur semi-circulaire gradu\'e.
\newcommand{\rapporteur}{
\psarc(0,0){5}{0}{180}
\psarc(0,0){4.5}{0}{180}
%\psarc(0,0){3}{0}{180}
%\psarc(0,0){0.5}{0}{180}
\SpecialCoor
\multido{\i=0+1}{181}{\psline(4.5;\i)(5;\i)}
\multido{\i=0+10}{19}{\psline(4;\i)(5;\i)}
%\psframe(-5,-1)(5,0)
\multido{\i=5+10}{18}{\psline(4.25;\i)(5;\i)}
\rput(3.75;180){\rotatebox{90}{\begin{footnotesize}0\degre\end{footnotesize}}}
\rput(3.85;170){\rotatebox{80}{\begin{footnotesize}10\degre\end{footnotesize}}}
\rput(3.75;160){\rotatebox{70}{\begin{footnotesize}20\degre\end{footnotesize}}}
\rput(3.85;150){\rotatebox{60}{\begin{footnotesize}30\degre\end{footnotesize}}}
\rput(3.75;140){\rotatebox{50}{\begin{footnotesize}40\degre\end{footnotesize}}}
\rput(3.85;130){\rotatebox{40}{\begin{footnotesize}50\degre\end{footnotesize}}}
\rput(3.75;120){\rotatebox{30}{\begin{footnotesize}60\degre\end{footnotesize}}}
\rput(3.85;110){\rotatebox{20}{\begin{footnotesize}70\degre\end{footnotesize}}}
\rput(3.75;100){\rotatebox{10}{\begin{footnotesize}80\degre\end{footnotesize}}}
\rput(3.85;90){\rotatebox{0}{\begin{footnotesize}90\degre\end{footnotesize}}}
\rput(3.75;80){\rotatebox{-10}{\begin{footnotesize}100\degre\end{footnotesize}}}
\rput(3.85;70){\rotatebox{-20}{\begin{footnotesize}110\degre\end{footnotesize}}}
\rput(3.75;60){\rotatebox{-30}{\begin{footnotesize}120\degre\end{footnotesize}}}
\rput(3.85;50){\rotatebox{-40}{\begin{footnotesize}130\degre\end{footnotesize}}}
\rput(3.75;40){\rotatebox{-50}{\begin{footnotesize}140\degre\end{footnotesize}}}
\rput(3.85;30){\rotatebox{-60}{\begin{footnotesize}150\degre\end{footnotesize}}}
\rput(3.75;20){\rotatebox{-70}{\begin{footnotesize}160\degre\end{footnotesize}}}
\rput(3.85;10){\rotatebox{-80}{\begin{footnotesize}170\degre\end{footnotesize}}}
\rput(3.75;0){\rotatebox{-90}{\begin{footnotesize}180\degre\end{footnotesize}}}
%\pscircle[fillstyle=solid, fillcolor=white]{0.1}
\NormalCoor
}


\begin{center}
\begin{pspicture}(-5,-1)(5,5)
\rapporteur
\end{pspicture}
\end{center}

\newpage
\psset{linewidth=.5\pslinewidth,xunit=2cm}

\newcommand\FixedScale[1]{%
    \multips(0,0)(.1,0){\the\numexpr10*#1+1\relax}{\psline(0,0)(0,-3pt)}
    \multips(0,0)(.5,0){\the\numexpr2*#1+1\relax}{\psline(0,0)(0,-6pt)}
    \multips(0,0)(1,0){\the\numexpr#1+1\relax}{\psline(0,0)(0,-9pt)}
    \multido{\i=0+1}{\the\numexpr#1+1\relax}{\uput[-90](\i,-5pt){$\i$}}%
}

%\newcommand\VernierScalea[2][9]{%
%    \rput(#2,0){%
%    \psset{xunit=\dimexpr#1\psunit/100,linecolor=red}%
%    \multips(0,0)(1,0){11}{\psline(0,0)(0,3pt)}%
%    \multips(5,0)(5,0){1}{\psline(0,0)(0,6pt)}%
%    \multips(0,0)(10,0){2}{\psline(0,0)(0,9pt)}%
%    \ifnum#1=11\relax
%        \multido{\i=0+5}{3}{\uput[90](\i,8pt){\tiny$\the\numexpr10-\i\relax$}}
%    \else
%        \multido{\i=0+5}{3}{\uput[90](\i,8pt){\tiny$\i$}}
%    \fi
%    }%
%}
%
%\multido{\n=0.00+0.01}{11}{%
%\begin{figure}
%\scalebox{2}{
%\begin{pspicture}(0,-.5)(2,.55)
%\FixedScale{2}
%\VernierScalea[9]{\n}
%\end{pspicture}
%}
%\end{figure}
%}
%
%\vspace*{2mm}


\newcommand\VernierScaleb[2][9]{%
    \rput(#2,0){%
    \psset{xunit=\dimexpr#1\psunit/100,linecolor=red}%
    \multips(0,0)(2,0){11}{\psline(0,0)(0,3pt)}%
    \multips(10,0)(10,0){1}{\psline(0,0)(0,6pt)}%
    \multips(0,0)(20,0){2}{\psline(0,0)(0,9pt)}%
%    \ifnum#1=11\relax
%        \multido{\i=0+10}{3}{\uput[90](\i,8pt){\tiny$\the\numexpr10-\i\relax$}}
%    \else
%        \multido{\i=0+10}{3}{\uput[90](\i,8pt){\tiny$\i$}}
%    \fi
    }%
}

\multido{\n=0.00+0.01}{11}{%
\bnf
\scalebox{1.5}{
\begin{pspicture}(0,-.6)(2,.6)
\FixedScale{2}
\VernierScaleb[9]{\n}
\end{pspicture}
}
\enf
\newline
}

\end{document}
marco56
Giga-utilisateur
 
Messages: 663
Inscription: Jeudi 25 Novembre 2010, 22:10
Statut actuel: Actif et salarié | Enseignant

Re: Lecture de verniers

Messagepar marco56 » Lundi 03 Avril 2017, 14:42

Encore une réponse.
Je la mets pour ceux qui seraient intéressés.
Par contre, un souci persiste : ma newcommand "vernierangulaire" ne fonctionne pas, je ne vois ce qui cloche.

Code: Tout sélectionner
\documentclass [a4paper,10pt]{book}
\usepackage{morewrites}
\usepackage{savesym}

\usepackage{ucs}
\usepackage[utf8]{inputenc}
\usepackage{textcomp}
\usepackage[francais]{babel}

\usepackage [T1]{fontenc}
\usepackage{tikz}
\usepackage{pst-all}
\usepackage{fp}

\newenvironment{figurehere}
{\def\@captype{figure}}
{}


\newcommand{\bnf}{\begin{figurehere}}
\newcommand{\enf}{\end{figurehere}}

\begin{document}


\bnf
\begin{pspicture}(1,5)(12,12)
% graduations fixes
\multido{\i=30+1}{30}{\FPeval{\a}{2*\i} \FPround{\b}{\a}{1} \rput{\b}(4,-8){\psline[linewidth=1.2pt](8,0)(8.4,0) \rput{0}(8.6,0){\begin{tiny}\i\end{tiny}}}}
\multido{\i=61+2}{29}{\rput{\i}(4,-8){\psline[linewidth=.8pt](8,0)(8.2,0)}}
% vernier tournant
\def\deb{64.2}
\def\fin{93.2}
\multido{\i=0+1}{31}{\FPeval{\a}{\deb+0.9666*\i} \FPround{\b}{\a}{2}
   \rput{\b}(4,-8){\psline(7.8,0)(8,0)}}
\multido{\i=0+5}{7}{\FPeval{\a}{\deb+0.9666*\i} \FPround{\b}{\a}{2}
   \rput{\b}(4,-8){\psline[linewidth=1.2pt](7.75,0)(8,0)}}
\rput{\deb}(4,-8){\rput{0}(7.6,0){\begin{tiny}0\end{tiny}}}
\rput{\fin}(4,-8){\rput{0}(7.6,0){\begin{tiny}30\end{tiny}}}
\end{pspicture}
\enf

\bnf
\begin{pspicture}(1,5)(12,12)
% graduations fixes
\multido{\i=30+1}{30}{\FPeval{\a}{2*\i} \FPround{\b}{\a}{1} \rput{\b}(4,-8){\psline[linewidth=1.2pt](8,0)(8.4,0) \rput{0}(8.6,0){\begin{tiny}\i\end{tiny}}}}
\multido{\i=61+2}{29}{\rput{\i}(4,-8){\psline[linewidth=.8pt](8,0)(8.2,0)}}
% vernier tournant
\def\deb{65.3}
\def\fin{94.3}
\multido{\i=0+1}{31}{\FPeval{\a}{\deb+0.9666*\i} \FPround{\b}{\a}{2}
   \rput{\b}(4,-8){\psline(7.8,0)(8,0)}}
\multido{\i=0+5}{7}{\FPeval{\a}{\deb+0.9666*\i} \FPround{\b}{\a}{2}
   \rput{\b}(4,-8){\psline[linewidth=1.2pt](7.75,0)(8,0)}}
\rput{\deb}(4,-8){\rput{0}(7.6,0){\begin{tiny}0\end{tiny}}}
\rput{\fin}(4,-8){\rput{0}(7.6,0){\begin{tiny}30\end{tiny}}}
\end{pspicture}
\enf

%\newcommand{\vernierangulaire}[3]{
%\bnf
%\scalebox{#1}{\begin{pspicture}(2,5)(12,12)
%% graduations fixes
%\multido{\i=30+1}{30}{\FPeval{\a}{2*\i} \FPround{\b}{\a}{1} \rput{\b}(4,-8){\psline[linewidth=1.2pt](8,0)(8.4,0) \rput{0}(8.6,0){\begin{tiny}\i\end{tiny}}}}
%\multido{\i=61+2}{29}{\rput{\i}(4,-8){\psline[linewidth=.8pt](8,0)(8.2,0)}}
%% vernier tournant
%\multido{\i=0+1}{31}{\FPeval{\a}{#2+0.9666*\i} \FPround{\b}{\a}{2}
%   \rput{\b}(4,-8){\psline(7.8,0)(8,0)}}
%\multido{\i=0+5}{7}{\FPeval{\a}{#2+0.9666*\i} \FPround{\b}{\a}{2}
%   \rput{\b}(4,-8){\psline[linewidth=1.2pt](7.75,0)(8,0)}}
%\rput{#2}(4,-8){\rput{0}(7.6,0){\begin{tiny}0\end{tiny}}}
%\rput{#3}(4,-8){\rput{0}(7.6,0){\begin{tiny}30\end{tiny}}}
%\end{pspicture}
%}
%\enf
%}
%
%\vernierangulaire{1,63.5,92.5}

\end{document}
marco56
Giga-utilisateur
 
Messages: 663
Inscription: Jeudi 25 Novembre 2010, 22:10
Statut actuel: Actif et salarié | Enseignant

Re: Lecture de verniers

Messagepar marco56 » Jeudi 06 Avril 2017, 21:38

J'ai avancé un peu mais je ne comprends pas ce qui cloche avec mon \scalebox :
Code: Tout sélectionner
\documentclass [a4paper,10pt]{book}
\usepackage{morewrites}
\usepackage{savesym}
% ************************
\usepackage{etex} % %pour éviter les messages du type ``no room for a new count'' % % % %

\usepackage{ucs}
\usepackage[utf8]{inputenc}
\usepackage{textcomp}
\usepackage[francais %,greek
]{babel}

\usepackage [T1]{fontenc}
\usepackage{tikz}
\usepackage{pst-all}
\usepackage{fp}
\usepackage{graphicx}

\newenvironment{figurehere}
{\def\@captype{figure}}
{}


\newcommand{\bnf}{\begin{figurehere}}
\newcommand{\enf}{\end{figurehere}}

\newcommand{\vernierangulaire}[1]{
\bnf
\scalebox{1}{
\begin{pspicture}(1,6)(12,10.5)
% graduations fixes
\multido{\i=30+1}{30}{\FPeval{\a}{2*\i} \FPround{\b}{\a}{1} \rput{\b}(4,-8){\psline[linewidth=1.2pt](8,0)(8.4,0) \rput{0}(8.6,0){\begin{tiny}\i\end{tiny}}}}
\multido{\i=61+2}{29}{\rput{\i}(4,-8){\psline[linewidth=.8pt](8,0)(8.2,0)}}
% vernier tournant
\def\deb{#1}
\FPeval{fin}{round(\deb+29,2)}
\multido{\i=0+1}{31}{\FPeval{\a}{\deb+0.9666*\i} \FPround{\b}{\a}{2}
   \rput{\b}(4,-8){\psline(7.8,0)(8,0)}}
\multido{\i=0+5}{7}{\FPeval{\a}{\deb+0.9666*\i} \FPround{\b}{\a}{2}
   \rput{\b}(4,-8){\psline[linewidth=1.2pt](7.75,0)(8,0)}}
\rput{\deb}(4,-8){\rput{0}(7.6,0){\begin{tiny}0\end{tiny}}}
\rput{\fin}(4,-8){\rput{0}(7.6,0){\begin{tiny}30\end{tiny}}}
\end{pspicture}
}
\enf
}

\begin{document}



\vernierangulaire{63.5}

\end{document}

Si je change le nombre d'arguments (2) et que je fais scalebox{#2}, cela ne fonctionne pas.
Des idées ?
marco56
Giga-utilisateur
 
Messages: 663
Inscription: Jeudi 25 Novembre 2010, 22:10
Statut actuel: Actif et salarié | Enseignant

Re: Lecture de verniers

Messagepar touhami » Dimanche 09 Avril 2017, 18:24

Bon jour @marco56.
je n'arrive pas à compiler votre code avec pdflatex mais si je compile avec latex+dvips il n'y a aucun problème.
En tout cas vous pouvez essayer d'appliquer \scalebox à une \parbox.

Il vous serait utile de consulter les pages 123 et suivants de la documentation tkz-euclide
https://www.ctan.org/pkg/tkz-euclide.
touhami
Méga-utilisateur
 
Messages: 369
Inscription: Dimanche 11 Février 2007, 11:45
Statut actuel: Post-bac

Re: Lecture de verniers

Messagepar balf » Lundi 10 Avril 2017, 00:13

Chez moi, ce code (à peine modifié de celui de Marco56) fonctionne parfaitement avec pdflatex (avec les paramètres idoines). J'ai supprimé le chargement de etex (obsolète), remplacé \scalebox par \psscalebox et supprimé des dimensions de l'environnement pspicture.
Code: Tout sélectionner
    \documentclass [a4paper,10pt, francais ]{book}
    \usepackage{morewrites, moresize}
    \usepackage{savesym}
    % ************************
    \usepackage{ucs}
    \usepackage[utf8]{inputenc}
    \usepackage{textcomp}
    \usepackage[%,greek
    ]{babel}

    \usepackage [T1]{fontenc}
    \usepackage{pst-all, auto-pst-pdf}
    \usepackage{fp}
    %\usepackage{graphicx}

    \newenvironment{figurehere}
    {\def\@captype{figure}}
    {}


    \newcommand{\bnf}{\begin{figurehere}}
    \newcommand{\enf}{\end{figurehere}}

    \newcommand{\myvernierangulaire}[2]{
    \centering\bnf
    \begin{pspicture}%
    \psscalebox{#2}{%
    % graduations fixes
    \multido{\i=30+1}{30}{\FPeval{\a}{2*\i} \FPround{\b}{\a}{1} \rput{\b}(4,-8){\psline[linewidth=1.2pt](8,0)(8.4,0) \rput{0}(8.6,0){\begin{ssmall}\i\end{ssmall}}}}
    \multido{\i=61+2}{29}{\rput{\i}(4,-8){\psline[linewidth=.8pt](8,0)(8.2,0)}}
    % vernier tournant
    \def\deb{#1}
    \FPeval{fin}{round(\deb+29,2)}
    \multido{\i=0+1}{31}{\FPeval{\a}{\deb+0.9666*\i} \FPround{\b}{\a}{2}
       \rput{\b}(4,-8){\psline(7.8,0)(8,0)}}
    \multido{\i=0+5}{7}{\FPeval{\a}{\deb+0.9666*\i} \FPround{\b}{\a}{2}
       \rput{\b}(4,-8){\psline[linewidth=1.2pt](7.75,0)(8,0)}}
    \rput{\deb}(4,-8){\rput{0}(7.6,0){\begin{ssmall}0\end{ssmall}}}
    \rput{\fin}(4,-8){\rput{0}(7.6,0){\begin{ssmall}30\end{ssmall}}}}
    \end{pspicture}
    \enf
    }

    \begin{document}

    \myvernierangulaire{63.5}{2}

    \end{document}


B.A.
Fichiers joints
vernier2.pdf
(9.09 Kio) Téléchargé 9 fois
Dernière édition par balf le Lundi 10 Avril 2017, 16:54, édité 1 fois.
balf
Zetta-utilisateur
 
Messages: 3582
Inscription: Mercredi 02 Janvier 2008, 23:18
Statut actuel: Actif et salarié | Maître de conférence

Re: Lecture de verniers

Messagepar marco56 » Lundi 10 Avril 2017, 10:40

Merci à tous les deux.
Je suis vraiment bête à manger du foin !
J'avais simplement mis "\vernierangulaire{63.5,0.5}" à la place de "\vernierangulaire{63.5}{0.5}".
Pas de souci pour le reste.
marco56
Giga-utilisateur
 
Messages: 663
Inscription: Jeudi 25 Novembre 2010, 22:10
Statut actuel: Actif et salarié | Enseignant


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Bing [Bot] et 4 invités