05) Quelques commandes du compilateur de texte gco.

Copie d’écran uniquement retravaillée pour minimiser la surface occupée à l’écran, la Fig.11 présente la fenêtre contextuelle du Moniteur lorsque l’on active ce dernier ou si l’on déclenche un RESET. On retrouve le champ de saisie en 1 qui se résume à une ligne de texte maximum. Attention, le texte affiché à l’écran du Moniteur ne sera compréhensible que si en 8 la vitesse de transmission sur USB correspond à celle définie par l’instruction Serial.begin(115200) dans la procédure void setup(). Si cette valeur n’est pas supportée par votre ordinateur, ce qui est peu probable du reste, il suffit d’adopter une valeur plus faible en 8 et corriger celle du programme.


ATTENTION : Le dialogue Homme / machine ne s’établira correctement que si :
• En 6 on coche la case de défilement automatique,
• Et surtout en 7 on sélectionne l’option « Retour chariot ».
Dans la zone 2 coloriée en vert pastel le programme se présente. Ce n’est pas une information vitale, mais comme nous « volons en classe affaire », au diable l’avarice !
Beaucoup plus pertinent en 3 les quatre « bricoles » à savoir et que nous allons tester bien entendu.
Chaque fois que l’on validera la ligne de saisie 1 le programme d’exploitation réalisera son travail et affichera un résumé, comme en 4, des caractéristiques de l’image.gco qui sera éventuellement générée. Puis, en 5 un court message nous invite à saisir en 1 une Consigne USB.
Nous allons immédiatement faire ici la différence entre une Consigne qui désignera une option, ou une directive au programme, et un TEXTE à traduire en code gco. Comme précisé dans le rappel en 9 toute ligne en 1 qui commencera par ‘$‘ sera une Consigne. Et comme précisé en 10 toute saisie qui commence par autre chose que $‘ sera un TEXTE à traduire. La toute première commande 11 à expérimenter est « $h » pour faire afficher le « HELP ». Dès que l’on valide cette ligne de commande, la ligne de saisie s’efface et le curseur se repositionne à gauche. Puis, ce qui a été frappé en 1 est recopié en 13 pour que nous puissions avoir une trace de ce qui était proposé. Supposons que ce soit un long texte à traduire et qu’un message d’erreur soit généré. Il suffit dans la fenêtre d’affichage de surligner ce que nous avions frappé au clavier, le copier puis le coller en 1. On corrige ce qui a engendré l’erreur et on valide à nouveau. Suite à « $h » ou à « $H » car minuscules et majuscules sont valides, le programme liste l’intégralité des consignes possibles avec mise en évidence en 14 et en 15 celles qui relèvent de l’usage du compilateur, et celles dédiées au programmeur éventuel.

Les caractères de substitution.

Exiger de notre programme la présence d’une police de caractère très riche engendre quelques petites difficultés issues des contraintes d’affichage du Moniteur, et de l’impossibilité en zone de saisie 1 d’obtenir les caractères associés à [ALT], à [Ctrl] etc. Ces caractères particuliers nous sont « interdits » car dans le dialogue établi entre le Moniteur et Compilateur_pour_TEXTE.ino, ils ne sont pas pris en compte pour diverses raisons techniques. On se limite aux caractères qui fournissent directement un code sur un seul octet. Nous allons passer en revue ces particularités.
Caractères de substitution pour les « non affichables ».
Comme n’importe quel système de visualisation, la fenêtre du Moniteur dispose d’une police de caractères qui lui est propre. (Et pour ce dernier il n’est pas prévu de pouvoir la changer.) Si vous voulez en avoir la liste complète, il suffit de frapper en 1 la commande « $l » ou « $L« . La copie d’écran de la Fig.13 présente le listage qui couvre les codes ASCII depuis la valeur 32 jusqu’à 254. (Entre 0 et 32 ce ne sont pas des caractères affichables d’où cette filtration.) Notez au passage que si la commande est saisie en minuscules, les lettres de cette dernière sont converties systématiquement en majuscules, ce qui sur la Fig.13 est mis en évidence en X. Associés aux divers codes de la table, on trouve dans l’encadré violet les symboles tels qu’ils seront affichés. Comme vous le constaterez en observant cette liste, la police de caractère pour notre pyrograveuse est bien différente. Présentée sur la Fig.14 certains caractères semblent un peu de guingois. L’explication figure dans l’encadré situé en haut de la page 9.
En particulier on désire graver des caractères comme ‘Ω‘, ‘Ï€‘, ‘α‘ qui ne s’affichent pas avec les symboles disponibles dans le Moniteur. Ils seront remplacés à l’affichage par « Ohm« , « PI » et « Alpha » dans le listage du code objet, et respectivement par ‘R‘, par ‘P‘ et par ‘A‘ dans le listage entouré de ‘•‘ présentant le texte qui sera traduit en code graphique. (Voir en Fig.16 un exemple de listage entouré.)

Caractères de substitution pour les individus non « présents » au clavier.

Inutile de rechercher les touches clavier pour des symboles comme ‘Ï€‘, ‘Ø, ‘Å“‘, etc. Comme ils ne sont pas disponibles directement, c’est au clavier qu’il faut leur trouver des substituts. Testez l’option 12 de la Fig.11 en proposant la commande « $w » qui immédiatement sera suivie de l’affichage de la Fig.15 qui propose un listage complet des divers substituts clavier. Sur cette copie d’écran sont mis en évidence en vert pastel les symboles désirés et disponibles pour la pyrograveuse. À droite surlignés en jaune les caractères qu’il faudra saisir pour obtenir les symboles désirés. Par exemple, si vous désirez graver R = 15Ω. Vous devrez saisir R = 15″. Évidemment, vous vous doutez bien que les « ersatz » ne sont

pas choisis au hasard. C’est la fiche Choix des caractères pour mémoriser aisément qui résume et justifie un peu ces choix. Certains sont motivés par la facilité mnémotechnique pour les retenir. D’autres en fonction de leur position sur le clavier. Il ne faut pas perdre de vue que de nombreuses contraintes restreignent les possibilités laissées à la programmation. En particulier, la lettre majuscule ‘C‘ avec cédille génère deux codes clavier successifs, non acceptable par le logiciel Compilateur_pour_TEXTE.ino et impose de ce fait une procédure pour ‘Ç’ ou ‘ç’ qui sera particulière et surlignée en Fig.15 par du bleu clair. Heureusement pour nous ces différents symboles exigeant des remplacements sont finalement peu utilisés dans du texte « courant ». Et puis à tout moment vous pouvez faire appel aux aides utilisateur. Par exemple vous avez proposé un texte que le compilateur vous présente sous la forme de la Fig.16 avec en accusé de réception la délimitation rose dans laquelle figure le texte tel qu’il sera gravé. Observant l’écran il vous revient à l’esprit que le Å’ est possible mais vous avez oublié le code. Voici la procédure simple à utiliser :

1) Surligner le texte et [Ctrl c] suivi en saisie de ‘n‘,
2) En saisie « $w » pour lister les substituts,
3) En saisie [Ctrl v] pour récupérer le texte,
4) Corriger « OE » par ‘²’ suivi de ‘o’ et validez.
Le texte sera corrigé et Œ affiché normalement.

Les commandes de type Options ou de type directives.

Nuance qui mérite d’être clarifiée, une option et une directive génèrent un comportement totalement différent du programme d’exploitation. Une OPTION modifiera le résultat compilé. Par exemple la commande « $g3«  imposera une police de caractères trois fois plus grande que celle de base « $g1«  qui est la plus petite, c’est celle initialisée par défaut sur un RESET. Du reste, comme l’image qui sera gravée en sera modifiée, la zone 4 de la Fig.11 le précise comme on peut l’observer sur l’encadré bleu foncé de la Fig.13 par exemple. C’est à dire que toute modification apportée à ce qui sera tracé et qui ne correspond pas « au standard » de base sera ajouté aux informations des caractéristiques en zone 4. Si maintenant on saisit « $g1«  qui ramène au format de base, l’information « Grandeur des Caractères = 3 » n’est plus affichée. Outre l’option de grandeur des caractères, on dispose de deux autres possibilités relatives à un encadrement du texte compilé.

Testez la commande « $e«  par exemple. Immédiatement la zone des caractéristiques image de la Fig.17 ajoute l’information pertinente. C’est avec cette option que se trace automatiquement un encadrement simple tel que celui observable en Fig.14 qui présente la police de caractères disponible. Réitérez « $e«  annule cette option, la commande se comportant comme une bascule de type OUI / NON. Validez encore une fois « $e«  pour rétablir l’encadrement suivi de « $d« . Cette fois, on voit en Fig.18 que l’encadrement sera double octroyant un « effet de style ». L’option « $d«  est également de type OUI / NON. L’invalider n’annule pas l’encadrement simple. Par contre « $d«  imposera « $e«  si l’encadrement n’est pas actif. Enfin, annuler l’encadrement simple avec « $e«  supprime également l’option « double » si cette dernière est active. Testez ces quelques comportement assez naturels à mon sens et relativement évidents à l’usage.

Les DIRECTIVES du logiciel d’exploitation.

Contrairement aux OPTIONS, les directives déclenchent une action immédiate et n’influencent pas les caractéristiques de l’image qui sera pyrogravée. On peut déjà préciser que les aides au programmeur résumées sur la copie d’écran de la Fig.19 sont des directives. Puisqu’elles sont mentionnées ici, évacuons immédiatement leur cas en précisant leurs effets et l’on pourra les oublier. Les deux commandes « vertes » seront très utiles si vous désirez remplacer un symbole actuel par un personnel qui vous sera plus utile. Pour effectuer un tel changement dans le programme les trois fiches nommées Modifier un caractère dans la table N/3 précisent la façon de procéder. C’est précisément dans ce cas que « $C«  et « $L«  seront des aides conviviales. Testez ces consignes, vous comprendrez immédiatement leur comportement. La commande « $U«  (Comme Utilisateur.) ajoutera les limites images résultant des options actives et du texte soumis au compilateur. Cette information peut s’avérer intéressante dans certains cas assez particuliers pour aider l’utilisateur à cadrer son texte, et à positionner la cible sur le plateau de la machine. Toutefois, avoir ces données en permanence à l’écran génère une sorte de saturation d’informations contradictoire avec une « simplicité visuelle ». Cette directive est donc ajoutée aux consignes, et par défaut la bascule se trouvera en état « NON ».

Quand aux deux directives surlignées en ocre pastel, force est de constater qu’elles relèvent d’un petit « délire de programmeur » ! J’ai déjà précisé lors d’autres didacticiels, que je cherchais toujours sur des projets tel que celui-ci, à utiliser au maximum les ressources de l’ATmega328. Comme le « Sketch » Compilateur_pour_TEXTE.ino restait inexorablement économe en taille de programme, je cherchais désespérément des moyens pour « gaspiller des octets ». Les directives « $B«  et « $O«  résultent de cette déraison. Si vraiment vous êtes très proche du C++ testez ces deux « parasites », dans le cas contraire … oubliez somptueusement.

Retrouvons en Fig.20 la copie d’écran déjà rencontrée en Fig.12 dans laquelle toutes les directives sont présentes, sauf celles qui ont été expérimentées et citées dans ce qui précède. Passons en revue leurs effets respectifs. À tout moment il sera possible d’enregistrer les caractéristiques actuelles de l’image, c’est à dire tout ce qui est détaillé en zone 4 de la Fig.11 au moyen des deux directives « $m«  ou « $s«  qui sont « interchangeables ». La commande réciproque « $r«  sera employée pour reprendre les caractéristiques mémorisées. Si l’on désire en une seule consigne retrouver les valeurs de base du RESET, c’est « $z«  qui convient. Toutes les options sont réinitialisées y compris le TITRE banal initial.
La directive « $p«  n’est qu’une petite bricole qui purge la fenêtre du Moniteur en « effaçant » la zone des comptes-rendus. Comme on s’en doute un peu, la consigne « $tBlablabla«  changera dans la remarque en première ligne du code objet le TITRE. De même que « $iN«  en modifiera le « nom » de l’image. Les deux commandes« $xN«  et « $yN«  servent à imposer la position de l’Origine Image sur le plateau de la machine. Quand on utilise de grands caractères, positionner cette Origine Image peut s’avérer indigeste, car on aboutit facilement à des débordements vers le haut, le bas, la gauche ou la droite. Ce n’est qu’en validant un TEXTE qu’un message d’alerte sera alors généré, imposant de rectifier les coordonnées et de saisir à nouveau le texte. Aussi, le calcul des l’origines gauche minimale et la position en hauteur minimale pour ne pas déborder à gauche ou à droite sont réévaluées avant chaque affichage des caractéristiques de l’image. Du reste si l’utilisateur change la grandeur des caractères et que l’une des positions est devenue incorrecte, le logiciel la corrige automatiquement. Il en informe l’opérateur par un BIP d’alerte et un petit message d’erreur. Chaque fois que Compilateur_pour_TEXTE.ino détectera un incident ou de façon autoritaire parera un problème, il préviendra l’opérateur par un message d’alerte assorti d’un BIP sonore. Expérimentons un peu ces divers comportements :
• Effectuez un RESET puis « $g9« . Le programme se rend compte qu’avec cette grandeur le texte va sortir des limites de la machine par le haut. Il vous alerte par le texte encadré en rouge puis recalcule la plus haute Origine Image possible. En Fig.21 il impose alors d’autorité cette nouvelle valeur dans les paramètres.
• Maintenant testez « $x«  pour placer l’image tout à gauche du plateau de la machine. (Une ordonnée sans valeur N sera automatiquement initialisée à zéro.) Puis proposez « $d« . Tentez le texte « A« . Mince, le cadre double fait déborder par le haut. On rectifie avec « $y100«  par exemple. On réitère le texte « A«  et on valide. Cette fois le cadre double fait déborder par la gauche. Bon, on garde son calme, on pousse le texte à droite avec « $x50« . Et enfin on peut tester « Bonjour. » par exemple.
GLUPS de GLUPS de GLUPS cette fois c’est vers la droite que ça coince ! Et pourquoi pas vers le bas tant que nous y sommes. Et bien oui, avant de lancer la pyrograveuse par la fenêtre proposez le texte « A$B$C$D« . N’oubliez pas que le caractère ‘$‘ dans un texte fait passer la pyrogravure à la ligne suivante. On valide et pouf, on descend trop sur Y’Y et on craque, yenamarre !

Le bon conseil au bon moment.

Changer librement de taille de caractères, avec encadrement simple, ou double, engendre une combinatoire de 27 possibilités, chacune modifiant la surface qui sera occupée par le texte sur la cible. De ce fait, il faudra adapter les valeurs de X et de Y pour l’Origine Image, limiter le nombre de caractères en largeur et en hauteur en fonction des paramètres sélectionnée dans les options. Et ce n’est pas suffisant, car certains caractères sont plus larges que d’autres comme le ‘m’ ou le ‘w’. Pour la hauteur également la dernière ligne peut aussi venir titiller notre sérénité. Si elle comporte un caractère minuscule avec une queue comme le ‘g’, le ‘p’ le ‘q’ etc ou une cédille, elle sera plus encombrante vers le bas.
– Hé Totoche, ya un problème avec la pyrotruc !
– Ha bon, pourtant elle grave parfaitement cher Dudule.
– C’est que j’ai préparé les textes pour Noël.
– Et alors ?
– Ben j’ai fini par craquer et elle à volé par la fenêtre la pyrotruc !
– Du deuxième étage ? Mais alors elle est fichue espèce de Dudule !
– Ben non, yavait juste quékun qui passait pile en dessous, elle est intacte. Elle, pas le quékun !
C’est précisément pour éviter de vous prendre la tête que le programme d’exploitation intègre un calculateur qui évaluera à votre place les paramètres pertinents. Pour chaque commande, immédiatement Compilateur_pour_TEXTE.ino cogite dans son silicium et propose les valeurs de la Fig.22 en insistant bien sur le fait qu’il ne fait que conseiller. Du reste dans la zone bleu pastel les données sont inchangées. Dans la colonne GRD il se contente d’indiquer la GRanDeur de la police utilisée, pour l’information Encadrement ou Double il suffit de regarder juste plus bas dans les caractéristiques de l’image. Comme le programme n’a modifié aucune valeur, il n’y a pas de BIP sonore. Dans l’encadré rose il suggère l’Origine Image conseillée pour ne déborder ni en haut, ni à gauche. Et surtout, dans la zone verte on réalise immédiatement qu’à cette taille de caractères, on ne peut placer que quatre symboles en largeur, et deux lignes maximum en hauteur. Donc, si l’on désire absolument « Bonjour. » le plus grand possible en surface pyrogravée, il suffit de quelques manipulations faciles à conduire que je propose ici :

• Effectuez un RESET puis « $g8« . On passe à une limite de cinq caractères par ligne. Notre texte en fait huit, il faut encore diminuer un peu la taille.
• Proposez « $g7« . À peine un caractère de plus par ligne, donc on continue à diminuer la taille.
• Tentez un « $g6« qui montre que c’est encore trop grand.
• Enfin avec « $g5«  on aboutit à exactement huit.
• On impose « $x20«  et « $y157«  puis pour s’assurer que la configuration est optimale, on impose « $d«  suivi du texte « Bonjour.«  qui sera entouré par un Cadre Double. On valide et sur la Fig.23 le programme présente ce qui sera compilé. Il attend alors une confirmation paro ou par n. Tout autre caractère engendrera un BIP d’alerte. La réponse n annule le texte saisi et le programme attend une nouvelle consigne. Si on valide par o la traduction est immédiate.
Si au préalable nous avons employé les options « $i3«  et « $tDirectives«  on remarquera en A de la Fig.23 que la première ligne de remarque sera personnalisée en B.
À ce stade de la découverte des commandes il ne me paraît pas opportun de commenter le résultat de la compilation, un chapitre spécifique sera consacré à cette analyse. Il me semble plus rationnel de continuer à explorer les directives disponibles. Notez toutefois, que la réponse ‘o’ engage la traduction et le programme nous en informe par le texte COMPILE suivi entre crochets du TEXTE qui sera transformé en codes gco. On se doute un peu qu’il va compiler, cette information fleure la surabondance. Et bien ce n’est pas le cas, c’est « une assurance contre les accidents ». Durant la compilation un problème peut être détecté comme le prouve la Fig.24 qui présente alors la réaction du programme. Si le texte est court, autant le saisir à nouveau, mais si la ligne proposée contient plus de deux cents caractères … dommage ! Aussi, dans ce cas il suffit de surligner dans la fenêtre des comptes rendus tout ce qui est entre les crochets, de coller ces données dans la fenêtre de saisie. Ensuite, on rectifie le ou les caractères en cause et l’erreur est corrigée. C’est la grande force du Moniteur que de pouvoir copier tout ce que l’on veut dans sa grande zone d’affichage.

L’action raisonnée est toujours préférable aux conseils.

Puisque le programme est capable de calculer la position idoine de l’Origine Image, pourquoi nous obliger à en saisir les valeurs avec « $xNN«  et « $yNNN » ? Aussi, dans la mesure où l’on peut faire confiance, autant utiliser directement l’OPTION « $v« . Testons cette possibilité :
• Effectuez un RESET puis « $g5«  , « $x0«  suivi de « $d« .
• Proposez l’OPTION « $v« .
La Fig.25 résume les réactions du programme. Dans la première zone bleu pastel on retrouve la valeur Y’Y de 177.0 qui correspond à l’ordonnée par défaut de l’Origine Image. On y constate que l’abscisse sur X’X a bien été remplacée par zéro. Puis, la consigne « $v«  a effectué l’analyse du contexte. Dans le message de retour encadré en vert le programme précise qu’il a bien Validé les valeurs optimales qu’il a remplacé pour l’Origine Image. Il nous informe également sur le nombre maximum de caractères que l’on pourra placer dans chaque ligne et le nombre total de lignes envisageables. Comme l’image générée sera modifiée, puisque sa position sur le plateau ne sera plus celles du mode standard, alors un BIP d’alerte sonore est généré pour attirer l’attention de l’opérateur qui utilise le compilateur.

Cheminement un peu confus dans les diverses commandes acceptées par le logiciel, bien que nous sommes dans le chapitre qui est sensé traiter des Directives, force est de constater que dans la liste de la Fig.20 sont intercalées quelques OPTIONS. L’exemple typique est celui de « $v«  qui modifie le code gco qui sera généré. Remarque analogue pour « $iN«  et « $t…..«  qui modifient le contenu de la première ligne compilée. Ce sont donc des OPTIONS et non des Directives. Peu importe ces entorses à la rigueur de la syntaxe, le principal sera de bien comprendre ce que font concrètement les diverses commandes disponibles dont le rappel est obtenu à l’aide de « $h« .

Technique pour optimiser les coordonnées de l’image.

Faire confiance pour optimiser les paramètres avec la consigne « $v«  ne sera avantageux qui si nous savons comment procède le logiciel, et ainsi décider à l’avance si on conserve les valeurs calculées pour la position de l’Origine Image, ou s’il sera préférable de la définir manuellement avec « $xNN«  et « $yNNN« . Pour ce qui concerne le nombre de caractères que l’on peut insérer dans une ligne et le nombre maximum de lignes possibles, les valeurs calculées par le programme d’exploitation sont incontournables. Considérons la Fig.26 qui résume l’approche géométrique de la détermination des paramètres.
Le but visé consiste à pouvoir placer un maximum de symboles tant en largeur qu’en « hauteur » en fonction de la grandeur sélectionnée pour la police, et des surfaces couvertes par le LASER les courses étant limitées sur la machine. . Comme nous développons nos phrases de la gauche vers la droite, on comprend immédiatement que pour loger un maximum de symboles il faut commencer tout à gauche en décalant vers A. Remplissant nos pages du haut vers le bas, pour pyrograver un maximum de lignes la première phrase sera placée au plus haut vers B. Passant de la plus petite grandeur tracée en noir sur la Fig.26 il saute au yeux que celle de grandeur 2 en C devra se placer plus bas. Le haut de cette première phrase talonne toujours en Y = 102.0 qui correspond à la position maximale possible du LASER sur la machine. Enfin, pour une police de grandeur 6 par exemple on doit positionner la base encore plus bas en D.
L’encadrement, qu’il soit simple ou double place le début du tracé à gauche du texte. Pour ne pas déborder des limites de la machine, c’est à dire X = 0 dans notre cas, il faut, comme présenté sur la Fig.27 décaler les textes vers la droite. Il est évident que ce décalage sera proportionnel à la grandeur des caractères. Sur ce dessin, nous reprenons la police de grandeur 6 qui tracée en rose correspond au texte sans encadrement. En violet la commande « $e«  est utilisée. Pour optimiser le nombre de symboles affichables c’est le cadre violet qui maintenant est placé à gauche et tout en haut. Le texte est alors « bousculé » vers la droite et vers le bas d’une valeur correspondant à la distance d’encadrement, décalages représentés par les deux flèches violettes. Si on invoque la consigne « $d«  le texte sera décalé deux fois plus ce que montrent alors les flèches marron. Du coup, il peut arriver qu’avec certaines tailles de symboles, le nombre qu’il devient possible de placer dans le cadre diminue de un. C’est précisément ce que l’on observera dans le tableau figurant sur la fiche nommée Méthode pour tester les « images texte » que du reste je vous ai invité à imprimer. Le nombre de ligne maximum possible en hauteur sera également fonction du contexte.
Pour clore ce chapitre, sachez que si la dernière ligne ne comporte pas de caractères avec une queue comme le g, le j etc, elle occupera moins de place en hauteur. Au contraire, si on y rencontre des lettres minuscules comme p, q, ç etc, l’encadrement devra se tracer plus bas. Le logiciel en tient compte pour positionner le tracé. Toutefois, il ne peut savoir à l’avance combien il y aura de caractères en largeur et de lignes de texte. Si vous dépassez les valeurs indiquées dans le cadre vert de la Fig.22, la compilation détectera un débordement assorti d’un message d’alerte …

Aide au cadrage du texte en fonction des paramètres.

Abondance de bien ne nuit pas déclare le dicton populaire. C’est assez vrai, mais la richesse peut pousser aux abus, à l’exagération. C’est un peu le cas de la dernière consigne que nous allons expérimenter. Il s’agit de la directive « $a«  qui propose une aide au formatage du texte à tracer. Elle ne constitue en rien une révolution et ne doit son existence qu’à la place qui restait pour « tortiller du programme » et à ma manie de vouloir gaver la mémoire flash. L’idée consiste à apporter une aide à l’utilisateur pour qu’il puisse « dégrossir » la mise en page en fonction des circonstances.
Quand on sera dans ce mode, toute phrase proposée sera analysée jusqu’à ce que l’on désire en sortir avec la consigne « $$« . Testons cette Directive sur un exemple pour en évaluer la valeur ajoutée :
• Effectuez un RESET puis « $g3«  suivi de « $d«  pour établir un contexte.
• Saisir la directive « $a«  qui impose de confirmer avec o car le programme change de comportement.
• Soumettre le texte « Les chiens aboient et la caravane passe sans se soucier de leur présence.« .
Cette longue phrase est modifiée pour « passer en largeur ». Le programme intercale des passages à la ligne. Le texte est converti et devient :
>Les chiens abo$ient et la car$avane passe sa$ns se soucier $de leur présen$ce.<
Il est possible d’évaluer les endroits où il sera conseillé d’intercaler un passage à la ligne. Toutefois, l’approche présentée ci-avant n’est pas la meilleure, il me semble plus efficace de proposer le texte initial sans les divers espaces. Recommencez :
• Proposer « Leschiensaboientetlacaravanepassesanssesoucierdeleurprésence. ».
Le programme retourne :
>Leschiensaboie$ntetlacaravane$passesanssesou$cierdeleurprés$ence.<
On évalue alors où placer quelques passages à la ligne et l’on propose :
• Saisir « Les chiens$aboient et$la caravane$passe sans$se soucier$de leur$présence. ».
Cette fois le texte est acceptable, on peut le proposer au compilateur.
• Copier cette phrase formatée puis sortir du mode par « $$« .
• Coller le nouveau texte et validez. Le compilateur affiche le résultat qui nous le verrons plus avant conduit à une gravure correcte et bien encadrée.
NOTE : Si vous proposez une phrase trop longue, le formatage limitera le nombre de lignes au maximum compatible avec le contexte et « tronquera » le texte saisi. À titre d’exemple revenir dans le mode « $a«  et coller deux fois la phrase pour forcer un « débordement ».

Copie d’écran retravaillée, le montage de la Fig.28 résume les manipulations effectuées. Lorsqu’en 1 on confirme le désir de passer en Mode Analyse, en 2 d’autorité les origines sont calculées. Puis en 3 un rappel est affiché pour la procédure de sortie du mode. La zone en bleu clair 4 présente une partie de nos manipulations effectuées durant le Mode Analyse dont on sort en 5.
Puis la phrase réorganisée a été soumise au compilateur qui en 6 présente dans la zone délimitée ce qui sera gravé si on accepte. Notez au passage que rien n’interdit lorsque l’on propose la phrase arrangée, d’y apporter de petites modifications, vu que la fenêtre de saisie du moniteur constitue un éditeur de texte rudimentaire. Par exemple en 7 on a ajouté quelques espaces pour mieux centrer les lignes du bas. En 8 on accepte le résultat dont le listage débute en zone 9. On remarque que ce texte de « rien du tout » exige déjà 711 lignes de code gco, c’est à dire que sans le compilateur nous aurions été obligés de calculer plus de 1400 valeurs pour les X et les Y !

 

la suite est ici.