Page 1 sur 1

Automatiser points d'une grille pstricks

MessagePosté: Mardi 02 Octobre 2018, 11:43
par marco56
Bonjour,
Pour mes circuits électriques, j'aimerais automatiser la mise en place de mes points.
Voici ce que j'ai fait :

Code: Tout sélectionner
\documentclass[10pt,a4paper]{article}
\usepackage[utf8x]{inputenc}
\usepackage[francais]{babel}
\usepackage [T1]{fontenc}
\usepackage{pst-all}
\usepackage{pstricks-add}
\usepackage{pst-circ}
\usepackage{amsmath}
\usepackage{amssymb}

\begin{document}

\newcommand{\newgrille}[1]{
\multido{\ia=0+1}{#1}
{
\pnode(\ia,0){A\ia}
\node(A\ia)
\uput[-90](A\ia){$A_{\ia}$}
\pnode(\ia,1){B\ia}
\node(B\ia)
\uput[-90](B\ia){$B_{\ia}$}
}
}

\begin{pspicture}(-0.5,-0.5)(10,6)
\newgrille{6}
\end{pspicture}

\end{document}


J'aimerais automatiser également en vertical en nommant mes points B0, B, C0, C1, ...
Y a-t-il une solution simple ?
Du coup, ma grille aurait 2 arguments n et p par exemple avec p qui ferait tourner le compteur \ib en vertical.
Du coup, j'imagine qu'il faudrait une sorte de conversion ascii du compteur ?

Re: automatiser points d'une grille pstricks

MessagePosté: Mardi 02 Octobre 2018, 12:11
par un bon petit
Code: Tout sélectionner
\documentclass{article}
\usepackage{pst-all}
\makeatletter
\newcommand*\newgrille[2]{%
   \multido{\iy=0+1}{#2}
      {%
      \multido{\ix=0+1}{#1}
         {%
         \cnode(\ix,\iy){1pt}{\ix,\iy}%
         \uput[-90](\ix,\iy){$\@Alph{\numexpr\iy+1\relax}_{\ix}$}%
         }%
      }%
}
\makeatother
\begin{document}
\begin{pspicture}(-0.5,-0.5)(10,6)
   \newgrille{6}{3}
\end{pspicture}
\end{document}

Re: automatiser points d'une grille pstricks

MessagePosté: Mardi 02 Octobre 2018, 12:43
par marco56
Quelle efficacité un bon petit !
Malheureusement, cela ne me convient pas tout-à-fait.
En effet, je souhaite ensuite exploiter ces points avec pst-circ, par exemple, en faisant :
Code: Tout sélectionner
\begin{document}
\begin{pspicture}(-0.5,-0.5)(10,6)
\newgrille{6}{3}
\wire(A1)(A2)
\end{pspicture}
\end{document}

D'où mes "\pnode"
J'ai tenté de bidouiller ton code mais sans succès pour l'instant.

[edit] Je crois que c'est en bonne voie, merci !!!

Re: automatiser points d'une grille pstricks

MessagePosté: Mardi 02 Octobre 2018, 12:50
par un bon petit
Code: Tout sélectionner
\documentclass{article}
\usepackage{pst-all}
\makeatletter
\newcommand*\newgrille[2]{%
   \multido{\iy=0+1}{#2}
      {%
      \edef\current@leter{\@Alph{\numexpr\iy+1\relax}}%
      \multido{\ix=0+1}{#1}
         {%
         \cnode*(\ix,\iy){2pt}{\current@leter\ix}%
         \uput[-90](\ix,\iy){$\current@leter_\ix$}%
         }%
      }%
}
\makeatother
\begin{document}
\begin{pspicture}(-0.5,-0.5)(10,6)
   \newgrille{6}{3}
   \ncline{A1}{C4}
\end{pspicture}
\end{document}

Re: automatiser points d'une grille pstricks

MessagePosté: Mardi 02 Octobre 2018, 12:54
par marco56
Merci encore :
J'étais arrivé à cela qui fonctionne :
Code: Tout sélectionner
\documentclass[10pt,a4paper]{article}
\usepackage[utf8x]{inputenc}
\usepackage[francais]{babel}
\usepackage [T1]{fontenc}
\usepackage{pst-all}
\usepackage{pstricks-add}
\usepackage{pst-circ}
\usepackage{amsmath}
\usepackage{amssymb}

\makeatletter
\newcommand{\newgrille}[2]{
\multido{\iy=0+1}{#2}
{
\multido{\ix=0+1}{#1}
{
\pnode(\ix,\iy){\@Alph{\numexpr\iy+1\relax}\ix}
%\node(\@Alph{\numexpr\iy+1\relax}\ix)
%\uput[-90](\@Alph{\numexpr\iy+1\relax}\ix){$\@Alph{\numexpr\iy+1\relax}_{\ix}$}
}
}
}
\makeatother

\begin{document}


\begin{pspicture}(-0.5,-0.5)(10,6)
\newgrille{6}{3}
\wire(A1)(A2)
\resistor(A4)(C4){$R$}
\end{pspicture}

\end{document}

Je ne sais pas si c'est correct (au final, j'enlève les points ainsi que leur nom...)

Re: Automatiser points d'une grille pstricks

MessagePosté: Mardi 02 Octobre 2018, 13:11
par marco56
Les deux fonctionnent parfaitement.