Page 1 sur 1

Le modèle gate.mod

MessagePublié: 18 Juin 2014 22:01
par P.Fradin
Le modèle gate est proposé par Joffrey Cottin, ce modèle charge les macros du fichier gate.mac qui permettent la réalisation
de circuits électroniques par des portes booléennes orientables.

Télécharger: gate.zip ( version 0.2 du 22/08/19)

Je laisse à Joffrey le soin de présenter un exemple !

Re: Le modèle gate.mod

MessagePublié: 19 Juin 2014 21:41
par Joffrey
Voici quelques exemples :

Exemple 1
Code: Tout sélectionner
Fenetre(2.5*i,10-2.5*i,0.75*(1+i)),
Marges(0,0,0,0),
draw("NOT",1.5*i,0),
draw("NOT",-1.5*i,0),
draw("line",[3+1.5*i,4+0.5*i]),
draw("line",[3-1.5*i,4-0.5*i]),
draw("AND",4,0),
draw("NOT",7,0),

donne
gate1.png
gate1.png (4.38 Kio) Consulté 26604 fois


Exemple 2
Code: Tout sélectionner
Fenetre(2.5*i,10-2.5*i,0.75*(1+i)),
Marges(0,0,0,0),
draw("NOT",1.5*i,0),
draw("NOT",-1.5*i,0),
draw("line",[3+1.5*i,4+0.5*i]),
draw("line",[3-1.5*i,4-0.5*i]),
draw("OR",4,0),
draw("NOT",7,0)

donne
gate2.png
gate2.png (4.52 Kio) Consulté 26604 fois


Exemple 3
Code: Tout sélectionner
Fenetre(-2+3*i,11-3*i,0.75*(1+i)),
Marges(0,0,0,0),
draw("NAND",0,0),
draw("NAND",4+2*i,0),
draw("NAND",4-2*i,0),
draw("NAND",8,0),
draw("line",[-2+2.5*i,4+2.5*i,jump,-2-2.5*i,4-2.5*i,jump,
             2.5*i,0.5*i,jump,-2.5*i,-0.5*i,jump,
             3,3.5,3.5+1.5*i,4+1.5*i,jump,3,3.5,3.5-1.5*i,4-1.5*i,jump,
             7+2*i,7.5+2*i,7.5+0.5*i,8+0.5*i,jump,7-2*i,7.5-2*i,7.5-0.5*i,8-0.5*i]),

donne
gate3.png
gate3.png (4.42 Kio) Consulté 26604 fois

Re: Le modèle gate.mod

MessagePublié: 19 Juin 2014 21:45
par Joffrey
Exemple 4
Code: Tout sélectionner
Fenetre(-4+3*i,11-3*i,0.75*(1+i)),
Marges(0,0,0,0),
draw("NOR",2*i,0),
draw("NOR",0,0),
draw("NOR",4+i,0),
draw("NOR",8-0.5*i,0),
draw("NOR",4-2*i,0),
draw("line",[-4+2*i,2*i,jump,2.5*i,1.5*i,jump,
             -2,0,jump,0.5*i,-0.5*i,jump,
             3+2*i,3.5+2*i,3.5+1.5*i,4+1.5*i,jump,3,3.5,3.5+0.5*i,4+0.5*i,jump,
             7+i,7.5+i,7.5,8,jump,
             -3+2*i,-3-2.5*i,4-2.5*i,jump,
             -1,-1-1.5*i,4-1.5*i,jump,
             7-2*i,7.5-2*i,7.5-i,8-i,jump
             ]),

donne
gate4.png
gate4.png (5.61 Kio) Consulté 26603 fois


Exemple 5
Code: Tout sélectionner
Fenetre(0+3*i,7-2.5*i,0.75*(1+i)),
Marges(0,0,0,0),
draw("NOT",1.5*i,0),
draw("AND",-1.5*i,0),
draw("XOR",4,0),
draw("line",[3+1.5*i,4+0.5*i,jump,3-1.5*i,4-0.5*i]),

donne
gate5.png
gate5.png (4.31 Kio) Consulté 26603 fois


Exemple 6
Code: Tout sélectionner
Fenetre(0+3*i,7-2.5*i,0.75*(1+i)),
Marges(0,0,0,0),
draw("XOR",1.5*i,0),
//draw("AND",-1.5*i,0),
draw("XOR",4,0),
draw("line",[-1.5*i,3-1.5*i,jump,3+1.5*i,4+0.5*i,jump,3-1.5*i,4-0.5*i]),

donne
gate6.png
gate6.png (4.25 Kio) Consulté 26603 fois


Je reste disponible pour vos commentaires.

Joffrey

Re: Le modèle gate.mod

MessagePublié: 21 Août 2019 19:56
par Joffrey
Bonjour Patrick,

Je bute depuis quelques jours sur un problème concernant ce modèle.
Lorsque je compile ces lignes :
Code: Tout sélectionner
\documentclass[tikz]{standalone}

\usepackage{tikz}
\usepackage{texgraph}

\begin{document}

\begin{texgraph}[name=porteAND,preload="gate.mod",export=tkz]
Fenetre(-2.5+2*i, 5.5-2*i, 1+i),
Marges(0, 0, 0, 0),
draw("AND", 0, 0)
\end{texgraph}

\end{document}


J'obtiens de manière "aléatoire" soit :
essai_gate_ok.pdf
(1.15 Kio) Téléchargé 1090 fois

soit :
essai_gate_non.pdf
(1.15 Kio) Téléchargé 1117 fois


J'ai essayé de modifier plusieurs lignes dans mon code de ce modèle mais ça ne marche pas.
Je pense mais je peux me tromper que le problème vient de ellipticArc qui dessine l'arc de parabole soit d'un coté soit de l'autre sans tenir compte de l'orientation +/-1 que l'on peut rajouter.

Si des fois tu y vois plus clair ...

Joffrey

Re: Le modèle gate.mod

MessagePublié: 21 Août 2019 22:46
par P.Fradin
Je ne constate pas le souci, mais je pense que le problème vient de la macro ellipticArc, car il y avait bien un souci, il a été corrigé mais c'était peut-être juste après la sortie de la version 1.99, je ne sais plus, voici la macro corrigée (elle est dans TeXgraph.mac):
Code: Tout sélectionner
    ellipticArc = [$RX:=%4,$RY:=%5,$t:=RX/RY,$B:=%1,$A:=%2,$C:=%3,
     if %7=Nil then $ang_:=0 else ang_:=%7 fi,
     while ang_<0 do Inc(ang_,360) od,while ang_>=360 do Inc(ang_,-360) od,
     if ang_=0 then EllipticArc(B,A,C,RX,RY,%6) //il y avait une erreur ici (sens au lieu de%6)
     else
        $inclin:=A+exp(i*ang_*deg),
        $M:=GetMatrix(),
        $u:=i*(inclin-A),
        $mat1:=matrix( affin(z,[A,inclin],u,1/t) ),
        $mat2:=matrix( affin(z,[A,inclin],u,t) ),
        ComposeMatrix(mat1),
        $L:=Mtransform([B,C],mat2),
        EllipticArc(L[1],A,L[2],RX,RX,%6), //et peut être ici aussi
        SetMatrix(M)
    fi];


Il faut fermer et relancer TeXgraph pour la correction soit prise en compte.

Re: Le modèle gate.mod

MessagePublié: 22 Août 2019 11:21
par P.Fradin
Mise à jour du modèle vers la version 0.2.
Aucun changement de code, simplement la suppression du chargement de draw2d et de ses dépendances car il est automatiquement fait dans la version 1.99 de TeXgraph, l'aide a été recompilée.

Re: Le modèle gate.mod

MessagePublié: 22 Août 2019 19:51
par Joffrey
Bonjour Patrick,

Effectivement ça venait de là !
Je te confirme que la correction est apparue après la sortie de la 1.99, j'ai dû faire la modif "à la main".
En tout cas merci !

Joffrey