@DATABASE AmiPCB
@$VER: 1.07 - 23 Mai 2002 (C) Roland FLORAC
@AUTHOR FLORAC Roland
@INDEX INDEXNODE
@NODE "MAIN" "Sommaire"

    @{B}AmiPCB Version 1.07  23 mai 2002@{UB}


    @{"DISTRIBUTION             " LINK Distribution} Copyright...
    @{"PRÉSENTATION, EXIGENCES  " LINK Présentation} En grandes lignes...
    @{"INSTALLATION             " LINK Installation} Rapide...
    @{"LANCEMENT                " LINK Lancement} Comment démarrer (Shell ou Workbench)
    @{"La barre de titre        " LINK "Barre de titre"} Ce qu'on y trouve
    @{"Les différents objets    " LINK Objets}

    @{"LES MENUS                " LINK Menus}
    @{"Commandes clavier        " LINK Keys}
    @{"Quelques trucs et astuces" LINK Astuces} Réponses à quelques problèmes

	  Commandes ARexx
    @{"Liste alphabétique       " LINK Fonctions}
    @{"Liste thématique         " LINK "Index thématique"}
    @{"Les scripts              " LINK Script}
    @{"Les nombres              " LINK Nombres} Comment ils sont traités.
    @{"Chaînes de caractères    " LINK "Chaînes de caractères"} Comment elles doivent être spécifiées.
    @{"Opérateurs mathématiques " LINK Opérateurs}
    @{"How to localize          " LINK HowToLocalize} ...ARexx scripts and toolbars

    @{"BUGS (?)                 " LINK Bugs} Ouh la...
    @{"AmiPCB2Meta              " LINK AmiPCB2Meta} Conversion des fichiers
    @{"AMÉLIORATIONS futures    " LINK Améliorations} Rêvons un peu.
    @{"Historique               " LINK Historique} Quelle histoire...
    @{"L'auteur                 " LINK Auteur}

    @{"Help me!                 " LINK "AidezMoi"} Ça ce serait sympa!

    @{"Traduction               " LINK Traduction} Appel aux courageux...
@ENDNODE
@NODE "Distribution" "Distribution"
@TOC MAIN

    Le programme AmiPCB a été conçu et écrit par R.Florac. Il est
    donc sous Copyright R.Florac, il n'appartient pas au domaine public.

    Ce programme est giftware/emailware. Son utilisation @{B}personnelle@{UB}
    est libre.	Cependant son utilisation commerciale ou professionnelle
    est interdite sans mon accord.  Envoyez-moi vos suggestions quand  à
    l'amélioration du programme ainsi que les éventuels rapports de bugs.

    Vous pouvez @{"me contacter" LINK Auteur} par courier électronique.

    La distribution de ce programme est interdite sans autorisation,
    Aminet, seul, peut le distribuer sur son réseau et ses CD.
@ENDNODE
@NODE Présentation "Présentation, exigences"
@TOC MAIN

    AmiPCB est un programme  écrit en  langage C  (SAS C Compiler 6.58),
    avec aussi un peu d'assembleur (Devpac 3.14).

    Le programme ne fonctionne que sous système 3.0 au moins, avec un
    processeur 68020 ou mieux.

    C'est un logiciel permettant la conception de cartes électroniques.
    Cependant il ne travaille qu'avec des nombres entiers, pour plus de
    rapidité (et surtout une plus grande simplicité...). Certaines
    fonctions font appel à la bibliothèque @{"gtlayout.library" LINK GTLAYOUT} version 39
    ou plus. Celle-ci n'est pas distribuée avec le logiciel, vous pouvez
    vous la procurer dans le domaine public (site ou CR-ROM Aminet par
    exemple). Il possède une interface ARexx, avec plus de 140 commandes,
    avec la possibilité de définir ses propres fonctions et d'utiliser
    des variables.

    Ce programme permet de travailler sur un nombre de fenêtres
    théoriquement illimité (sauf par la mémoire disponible !). Vous
    pouvez bénéficier des fonctions avancées du système 3.0: @{"AppIcon" LINK AppIcon},
    @{"Pools" LINK Pools}...
@ENDNODE
@NODE Installation "Installation"
@TOC MAIN

    Le programme peut être copié dans tout répertoire, à votre
    convenance, sous réserve qu'il y ait assez de place libre.
    Le fichier de configuration AmiPCB.prefs doit être copié
    dans le même répertoire que le programme AmiPCB.

    ATTENTION: le programme, pour fonctionner, fait appel aux ROM 3.0,
    son fonctionnement est impossible avec une version du système
    antérieure.
@ENDNODE
@NODE Lancement "Lancement du programme / ToolTypes"
@TOC MAIN

    La taille de la pile courante du CLI (ou du Shell) peut être fixée
    à 4 ko (suffisant).
    AmiPCB peut être lancé depuis le CLI ou le Workbench (en cliquant
    deux fois sur son icône).

    @{B}Lancement depuis le CLI@{UB}
    Le modèle est le suivant:
    @{i} AmiPCB FILE/M,CLIPS/K,PUBSCREEN/K @{ui}

    Les jokers AmigaDOS sont acceptés :
    AmiPCB #?.typon ==> tous les fichiers comportant l'extension
    ".typon" seront chargés chacun dans une fenêtre (à condition qu'il y
    ait suffisamment de mémoire bien sûr).
    Vous pouvez bien sûr lancer le programme sans spécifier de
    nom de fichier (le nom "Innomé" sera alors utilisé par défaut).

    Le mot-clé CLIPS permet de spécifier où sont situés les clips:
    Exemple: AmiPCB CLIPS Work:AmiPCB/Clips

    Le mot-clé PUBSCREEN permet de lancer AmiPCB sur l'écran d'un autre
    programme.

    Bien sûr tous ces mots-clé peuvent être combinés lors du même appel
    du programme:
    AmiPCB CLIPS Work:AmiPCB/Symboles Typon_essai PUBSCREEN=AmiCAD

    @{B}Lancement depuis le Workbench@{UB}
    Il suffit de cliquer deux fois sur l'icône du programme ou
    sur celle d'un fichier possédant le nom du programme dans son champ
    TOOL-TYPES. Dans le premier cas vous pouvez utiliser la touche
    SHIFT pour sélectionner autant de fichiers que vous le désirez
    avant de cliquer sur l'icône du programme.

    L'icône du programme admet quatre types d'outils:
    @{"   CLIPS    " LINK CLIPS}
    @{"   X_ICON   " LINK X_ICON}
    @{"   Y_ICON   " LINK Y_ICON}
    @{"  PUBSCREEN " LINK PUBSCREEN}
    Utilisez le menu Information du Workbench pour les modifier.
@ENDNODE
@NODE Objets "Les divers objets manipulés par AmiPCB"

    Les objets manipulés par AmiPCB peuvent être de l'un des types suivants :

	@{"Pistes         " LINK Track}
	@{"Pastilles      " LINK Pads}
	@{"Textes         " LINK Note}
	@{"Boîtes         " LINK Boîtes}
	@{"Ellipses       " LINK Ellipses}
	@{"Triangles      " LINK Triangles}
	@{"Arcs de cercles" LINK Arcs}
	@{"Groupes        " LINK Groups}
	@{"Réseaux        " LINK Nets}

    Chacun des ces objets peut être placé manuellement, en utilisant
    le menu Dessin approprié (ou Réseaux)

    Leur modification peut être faite en ouvrant une requête, en
    cliquant deux fois dessus à l'aide du bouton gauche de la
    souris (requête gtlayout.library). La plupart de ces requêtes
    permettent d'appliquer les changements (pour tous ou partie)
    soit au seul élément ayant été sélectionné pour la requête,
    soit à plusieurs objets identiques ou de même type, en
    utilisant le bouton Application.

    Ils peuvent être déplacés en cliquant dessus avec le bouton gauche
    de la souris, puis en déplaçant celle-ci tout en maintenant ce
    bouton appuyé. Il suffit de sélectionner plusieurs objets pour
    les déplacer en même temps (en utilisant la touche SHIFT, le
    menu @{"Edition/Multisélection" LINK Multiselection}, ou en encadrant une zone à l'aide
    de la souris).
    Les objets sélectionnés peuvent également être déplacés à l'aide
    des touches fléchées avec ou sans SHIFT (déplacement par pas entier
    de la grille ou par pas de 1/1000 mm).
@ENDNODE
@NODE Track "Les pistes"
@TOC Objets

    Les pistes tracées par AmiPCB peuvent avoir une largeur quelconque,
    définie à l'aide du menu Dessin/Type pastille ou en éditant une
    piste déjà placée en cliquant deux fois dessus.
    Les pistes peuvent être placées sur l'une des faces cuivre ou
    composant, ainsi que sur la sérigraphie (mais il ne s'agit alors
    que de lignes servant de "décors", et non de pistes à proprement
    parler). La face de placement est définie dans le menu Dessin,
    en fonction de celle qui est cochée (utilisez les touches 0 à 2
    pour la changer à l'aide du clavier).

    @{b}Attention:@{ub} il est conseillé de toujours placer les extrémités
    des pistes joignant une pastille toujours au centre de celles-ci,
    afin que le programme reconnaisse convenablement les liaisons
    qui sont effectuées. Les lignes obliques qui se croisent ne sont
    pas reconnues par le programme comme ayant un point commun, si
    elles n'ont pas d'extrémité commune (ce point fera @{i}peut-être@{ui}
    l'objet d'une correction ultérieure...)
@ENDNODE
@NODE Pads "Les pastilles"
@TOC Objets

    Les pastilles permettent de souder les composants sur le circuit.
    Elles peuvent être rondes (ellipses), rectangulaires, octogonales
    ou hexagonales (deux orientations possibles).
    Le trou central peut être omis (pour les CMS par exemple, ou les
    connecteurs) en donnant un diamètre de perçage nul.

    Pour les placer, vous pouvez utiliser le menu @{"Dessin/Placer pastille" LINK "Place pad"}
    ainsi que le menu Dessin/Type de pastille pour définir les
    caractéristiques des pastilles qui seront placées.

    Elles peuvent être modifiées en cliquant deux fois dessus, la
    requête permet alors de changer les paramètres suivants :
	- les coordonnées définissant l'emplacement
	- la taille horizontale (ou verticale)
	- leur forme (ellipse, rectangle, forme hexagonale ou octogonale)
	- le diamètre de perçage.
    Cette requête permet également d'appliquer les changements à tous
    les objets sélectionnés, mais attention @{b}toutes@{ub} les caractéristiques
    sont alors recopiées (dimensions, type).

    Les dimensions maximales sont de 65,5 mm (largeur comme hauteur). Naturellement
    le trou de perçage doit avoir un diamètre inférieur à celui de la plus petite
    de ces dimensions (Version 1.05).
@ENDNODE
@NODE Note "Les textes"
@TOC Objets

    Les textes servent à apporter diverses précisions sur les
    dessins (références des composants, sur la sérigraphie, annotations
    diverses sur l'une des face cuivre ou composant).

    Ils peuvent être placés en utilisant le menu @{"Dessin/Placer texte" LINK "Place text"}.

    Il est aussi possible de les modifier en cliquant deux fois
    dessus, une requête est alors ouverte, permettant de modifier
    l'un des éléments suivants :
	- les coordonnées définissant l'emplacement
	- le type de texte (note, référence ou valeur pour un composant)
	- la chaîne de caractères le définissant
	- la largeur du tracé
	- les échelles verticale et horizontale
    La requête permet d'appliquer les changements à tous les
    textes sélectionnés, mais cependant la chaîne de caractères
    n'est pas recopiée.
@ENDNODE
@NODE Boîtes "Les boîtes (rectangles)"
@TOC Objets

    Les boîtes permettent de tracer divers décors ou bien des
    composants particuliers. Elles peuvent être vides (le contour
    seul est alors tracé) ou pleines (pour servir de plans de
    masse, par exemple).

    Leur tracé s'effectue à l'aide du menu @{"Dessin/Placer rectangle" LINK "Place box"}.

    Pour les modifier, il est possible de cliquer dans l'un des
    coins tout en maintenant le bouton gauche de la souris enfoncé,
    puis de déplacer ce coin à un autre endroit (utilisez le bouton
    droit pour annuler l'opération). À noter qu'en maintenant la
    touche CTRL enfoncée pendant cette opération, un carré est
    dessiné.

    Il est aussi possible de les modifier en cliquant deux fois
    dessus, une requête est alors ouverte, permettant de modifier
    l'un des éléments suivants :
	- coordonnées de deux des coins opposés
	- largeur du tracé (rectangles vides)
	- la nature de leur surface (vides ou pleins)
@ENDNODE
@NODE Ellipses "Les ellipses"
@TOC Objets

    Les ellipses permettent de tracer divers décors ou bien des
    composants particuliers. Elles peuvent être vides (le contour
    seul est alors tracé) ou pleines.

    Leur tracé s'effectue à l'aide du menu @{"Dessin/Placer ellipse" LINK "Place ellipse"}.

    Pour les modifier, il est possible de cliquer sur l'un des
    bords (axe horizontal ou vertical) tout en maintenant le
    bouton gauche de la souris enfoncé, de déplacer ce coin à un
    autre endroit (utilisez le bouton droit pour annuler l'opération).
    À noter qu'en maintenant la touche CTRL enfoncée pendant cette
    opération c'est un cercle qui sera dessiné.

    Il est aussi possible de les modifier en cliquant deux fois dessus,
    une requête est alors ouverte, permettant de modifier l'un des
    éléments suivants :
	- coordonnées du centre
	- rayons horizontal et vertical
	- largeur du tracé (ellipses vides)
	- la nature de leur surface (vides ou pleines)
@ENDNODE
@NODE Triangles "Les triangles"
@TOC Objets

    Les triangles permettent de tracer divers décors ou bien des
    composants particuliers. Ils peuvent être vides (le contour
    seul est alors tracé) ou pleins.

    Leur tracé s'effectue à l'aide du menu @{"Dessin/Placer triangle" LINK "Place triangle"}.

    Pour les modifier, il est possible de cliquer dans l'un des
    coins tout en maintenant le bouton gauche de la souris enfoncé,
    de déplacer ce coin à un autre endroit (utilisez le bouton
    droit pour annuler l'opération). Il est aussi possible de les
    modifier en cliquant deux fois dessus, une requête est alors
    ouverte, permettant de modifier l'un des éléments suivants :
	- coordonnées des sommets
	- largeur du tracé (pour les triangles vides)
	- la nature de leur surface (vides ou pleins).
@ENDNODE
@NODE Arcs "Arcs de cercles"
@TOC Objets

    Les arcs de cercles peuvent être placés en utilisant le menu
    @{"Dessin/Placer arc de cercle" LINK Place arc}. Ils peuvent servir à l'élaboration
    de diverses figures (boîtes aux coins arrondis par exemple),
    ou même de pistes (ils sont reconnus par la routine définissant
    les réseaux). Attention: il faut cependant que leurs extrémités
    soint reliées soit à l'extrémité d'un autre arc de cercle, soit
    au centre d'une pastille, soit enfin à l'extrémité d'une piste.

    Ce sont toujours des quarts de cercle.

    Les rayons horizontaux et verticaux peuvent être différents
    ce qui en fait plutôt des arcs "d'ellipse".

    Les arcs peuvent aussi être édités en effectuant un double clic
    à l'aide d'un double clic du bouton gauche de la souris, les
    éléments suivants peuvent alors être modifiés :
	- les coordonnées définissant l'emplacement,
	- les rayons horizontal et vertical,
	- la largeur du tracé.
    Les modifications (rayons et largeurs) peuvent être étendues à
    tous les arcs sélectionnés.
@ENDNODE
@NODE Groups "Les groupes"
@TOC Objets

    Les groupes sont des ensembles d'objets (de type quelconque, pistes,
    pastilles, textes, etc) ayant été sélectionnés puis regroupés
    dans le même sous-ensemble. Ils permettent facilement de créer des
    empreintes de composants.

    Les groupes souvent utilisés peuvent être sauvés dans des fichiers,
    en utilisant les @{"clips" LINK Clip}.

    Pour créer une empreinte de composant qui soit facilement utilisable,
    respectez les règles suivantes :
	- placez les pastilles sur la grille (pas ou demi-pas)
	- placez une référence (un texte avec cet attribut)
	- attribuez des numéros de broche corrects aux pastilles
	- vous pouvez aussi placer une valeur (texte avec attribut valeur)
	- donnez le nom du fichier au groupe.
@ENDNODE
@NODE Nets "Les réseaux"
@TOC Objets

    Les réseaux sont définis à partir du schéma de la carte. Ils
    sont constitués de liaisons reliant les diverses pastilles qui
    doivent être reliées entre elles afin de réaliser toutes les
    interconnections entre les différents composants. Chaque
    réseau constitue une équipotentielle. AmiPCB permet de gérer
    les réseaux saisis par l'utilisateur, cependant vous pouvez
    travailler sans utiliser ces liaisons.

    Il existe un script permettant de créer les réseaux sur une
    carte déjà créée, mais n'en possédant aucun (CreateNets.AmiPCB).
    Ce script doit cependant être utilisé de préférence sur une carte
    ne possédant aucun réseau, évitez son utilisation sur une carte
    ayant quelques réseaux, mais qui doit être complétée, ou supprimez
    tous les réseaux existants avant d'appeler ce script (à l'aide du
    script DeleteNets.AmiPCB).
@ENDNODE
@NODE "Barre de titre" "Barre de titre"

    La barre de titre des fenêtres de typons comportent certaines indications:
    - le nom (@{"complet ou non" LINK "Full name"}) du fichier associé au typon.
    - quelques mentions entre crochets []:
    - le signe + si le document a été modifié et n'a pas été sauvé,
    - la lettre G si @{"l'alignement sur la Grille" LINK "Snap on grid"} est valide,
    - la lettre L si les Lignes sont @{"tirées" LINK "Pull lines"} lors du déplacement de composants,
    - la lettre F suivie du signe = et d'un nombre déterminant la face sur
    laquelle s'effectueront les placements suivants (0: face cuivre, 1: face
    composants, 2: sérigraphie),
    - l'abcisse du curseur X=...,
    - une virgule,
    - l'ordonnée du curseur Y=....,
    - le rapport de zoom Z=...%
@ENDNODE
@NODE "CLIPS" "Type d'outil CLIPS"
@TOC Lancement

    Ce type d'outil permet de spécifier l'emplacement (le chemin)
    des @{"clips" LINK Clip} définis par l'utilisateur. Par défaut, ce chemin est
    celui du répertoire nommé "Clips", situé dans le chemin courant
    du programme.

    @{i}Exemples :@{ui}
	CLIPS=Work:AmiPCB/Clips
	CLIPS=Symboles_utilisateur
@ENDNODE
@NODE "PUBSCREEN" "Type d'outil PUBSCREEN"
@TOC Lancement

    Ce type d'outil permet de spécifier sur quel écran sera ouvert
    AmiPCB.
@ENDNODE
@NODE "X_ICON" "Type d'outil X_ICON"
@TOC Lancement

    Ce type d'outil permet de déterminer l'abcisse des coordonnées
    d'affichage de l'icône du programme sur l'écran du Workbench.
    Il suffit d'ajouter la ligne X_ICON=10 pour que l'icône soit
    affichée à gauche de l'écran du Workbench.

    @{i}Voir aussi :@{ui} @{"Y_ICON" LINK Y_ICON}
@ENDNODE
@NODE "Y_ICON" "Type d'outil Y_ICON"
@TOC Lancement

    Ce type d'outil permet de déterminer l'ordonnée des coordonnées
    d'affichage de l'icône du programme sur l'écran du Workbench.
    Il suffit d'ajouter la ligne Y_ICON=500 pour que l'icône soit
    affichée en bas de l'écran du Workbench.

    @{i}Voir aussi :@{ui} @{"X_ICON" LINK X_ICON}
@ENDNODE
@NODE "Menus" "Les menus AmiPCB"
@TOC Main

    Le programme AmiPCB possède six menus, pouvant être sélectionnés
    de façon classique, à l'aide du bouton droit de la souris. La plupart
    d'entre eux  peut être également appelée à l'aide de raccourcis
    clavier, sans même utiliser la touche Amiga-droite.

    @{"Menu Projet     " LINK Project}
    @{"Menu Dessin     " LINK Drawing}
    @{"Menu Édition    " LINK Edition}
    @{"Menu Réseaux    " LINK NetList}
    @{"Menu Préférences" LINK Preferences}
    @{"Menu Scripts    " LINK Scripts}
    @{"Menu Macros     " LINK Macros}
@ENDNODE
@NODE "Project" "Menu Projet"
@TOC Menus

    Ce menu possède 15 entrées:
    @{"Charger          " LINK "Load file"}     Charge un typon dans la fenêtre active.
    @{"Sauver           " LINK "Save file"}     Sauve le typon dans le fichier courant.
    @{"Sauver en        " LINK "Save as"}     Sauve le typon en spécifiant un nom de fichier.
    @{"Sauver format IFF" LINK "Save IFF"}     Sauve le typon dans un fichier au format IFF.
    @{"Renommer         " LINK Rename}     Pour renommer la fenêtre active.
    @{"Annoter fichier  " LINK Filenote}     Pour annoter un fichier.
    @{"Supprimer fichier" LINK "Kill file"}     Permet de supprimer un fichier.
    @{"Réduire fenêtre  " LINK Iconify}     Réduit la fenêtre active (icône).
    @{"Cacher fenêtre   " LINK Hide}     Ferme la fenêtre active, le texte reste en mémoire.
    @{"Autre document   " LINK "Other document"}      Ouvre une nouvelle fenêtre.
    @{"Initialiser      " LINK Initialize}     Vide la fenêtre courante.
    @{"Imprimer         " LINK "Print document"}            Impression du document contenu dans la fenêtre active
    @{"Informations     " LINK Informations}        Affiche quelques informations.
    @{"Schémas          " LINK Documents}              Donne la liste des documents en mémoire.
    @{"Help             " LINK Aide}             Demande d'aide
    @{"Quitter          " LINK Quit}             Ferme tous les documents.
@ENDNODE
@NODE "Load file" "Menu Projet/Charger"
@TOC Project

    Ce menu permet de choisir le typon à charger dans la fenêtre active.
    La boîte de requête de fichiers utilise la bibliothèque asl.library
    (celle-ci  est sur  disque).  À  noter  que celle-ci  n'est chargée
    que lors de l'appel d'une des fonctions qui en a besoin (Chargement,
    Sauver en...). La fenêtre prend le nom du fichier chargé.

    Si la fenêtre contenait un typon, celui-ci est perdu, sauf s'il avait
    été modifié mais non sauvé: le programme vous offre alors le choix de
    continuer l'opération de chargement (l'ancien typon est alors perdu)
    ou bien d'abandonner, vous permettant alors de le sauver.

    @{i}Raccourci clavier :@{ui} AMIGA-O (open) ou O

    @{i}Nota :@{ui} vous pouvez également utiliser les fonctions du système 3.0
    pour charger un fichier: voir @{"AppIcon" LINK "AppIcon"}.
@ENDNODE
@NODE "Save file" "Menu Projet/Sauver"
@TOC Project

    Permet de sauvegarder le typon dans un fichier disque en utilisant
    le nom de la fenêtre.

    Raccourci clavier : AMIGA-S (sauver) ou S
@ENDNODE
@NODE "Save as" "Menu Projet/Sauver en"
@TOC Project

    Ce menu permet de sauvegarder le typon en choisissant le fichier
    destination à l'aide d'une boîte de requête. Pour ce menu
    vous ne pouvez pas cliquer deux fois sur le nom d'un fichier pour
    le sélectionner (obligation d'utiliser le gadget VALIDE pour
    éviter les erreurs)

    Si le nom de fichier choisi correspond à un fichier déjà existant
    le programme vous demandera une confirmation avant de l'écraser.

    @{i}Raccourci clavier :@{ui} AMIGA-A (save As) ou A
@ENDNODE
@NODE "Save IFF" "Menu Projet/Sauver format IFF"
@TOC Project

    Ce menu permet de sauvegarder la fenêtre courante dans un
    fichier au format IFF, récupérable par un programme de dessin
    bitmap (Personal Paint, Deluxe Paint ou autre...).
    La sauvegarde se fait en monochrome (traits noirs sur fond blanc).
    La grille n'est pas incluse dans le fichier, même si elle
    est présente à l'écran lors de l'appel du menu.
    Si vous désirez créer une image contenant plusieurs faces en couleurs,
    il vous faudra sauver chaque face dans un fichier différent, puis
    utiliser un programme travaillant en bitmap, pour les mélanger
    et les colorier...

    Le choix du fichier destination est fait à l'aide de la requête
    de l'asl.library.

    Il n'y a @{i}pas de raccourci clavier@{ui} pour ce menu.
@ENDNODE
@NODE "Rename" "Menu Projet/Renommer"
@TOC Project

    Ce menu permet permet de renommer le fichier associé au typon
    de la fenêtre en cours.
    Le choix s'effectue à l'aide d'une boîte de requête de fichier.

    @{i}Raccourci clavier :@{ui} AMIGA-= ou =
@ENDNODE
@NODE "Filenote" "Menu Projet/Annoter fichier"
@TOC Project

    Ce menu permet d'ajouter une note à un fichier choisi à l'aide
    de la requête de l'asl.library (effet analogue à celui de la commande
    FileNote du DOS).

    Cette note sera affichée avec la commande List de l'AmigaDOS
    ou visualisée à l'aide du menu Icônes/Information du Workbench.

    Il n'y a @{i}pas de raccourci clavier@{ui} pour ce menu.
@ENDNODE
@NODE "Kill file" "Menu Projet/Supprimer fichier"
@TOC Project

    Ce menu permet, comme son nom l'indique, de supprimer un fichier...
    Le fichier est choisi à l'aide du requester (pas de double clic là
    non plus). Attention à ce que vous faites  (il faut plus  de temps
    pour créer un fichier que pour l'effacer...).

    Il n'y a @{i}pas de raccourci clavier@{ui} pour ce menu (danger...).
@ENDNODE
@NODE "Iconify" "Menu Projet/Réduire fenêtre"
@TOC Project

    Ce menu permet  de réduire les dimensions de la fenêtre active.
    Une petite fenêtre apparaît alors en haut de l'écran avec le nom du
    typon seul.
    Vous pouvez sélectionner cette fenêtre puis utiliser le bouton droit
    de la souris. Cette fonction est bien utile quand on travaille
    sur de multiples fenêtres.

    Vous pouvez déplacer cette fenêtre à n'importe quel emplacement de votre
    choix, quand ce menu sera rappelée ultérieurement, cette petite
    fenêtre reprendra cette place.

    Pour fermer une fenêtre qui a été réduite sans la rouvrir, sélectionnez-la
    puis tapez sur la touche Q au clavier (seule cette fenêtre sera fermée, s'il
    y en plusieurs d'ouvertes).

    @{i}Raccourci clavier :@{ui} AMIGA-I (icône) I
@ENDNODE
@NODE "Hide" "Menu Projet/Cacher fenêtre"
@TOC Project

    Ce menu permet de fermer la fenêtre active. Le document reste cependant
    en mémoire. Pour faire réapparaître cette fenêtre vous pouvez cliquer
    deux fois sur l'icône d'application du programme, située sur l'écran
    du Workbench, ou bien utiliser un clic sur le bouton central de la
    souris, si vous travaillez dans une autre fenêtre, une requête est
    alors affichée comportant une liste de boutons contenant chacun le
    nom des divers documents présents en mémoire. Cliquez alors sur le
    nom correspondant à celui avec lequel vous voulez travailler.

    @{i}Raccourci clavier :@{ui} AMIGA-$ ou $
@ENDNODE
@NODE "Other document" "Menu Projet/Autre document"
@TOC Project

    Cette fonction permet l'ouverture d'une nouvelle fenêtre. À noter
    que chaque document est géré par une tâche indépendante, ce qui
    rend possible l'impression d'un document tout en travaillant sur
    un autre.
@ENDNODE
@NODE "Initialize" "Menu Projet/Initialiser"
@TOC Project

    Ce menu sollicite la demande d'effacement du typon présent dans la
    fenêtre (Attention...). Si le document a été modifié, vous pourrez
    cependant annuler l'opération (Annuler la requête qui suit).

    Il n'y a @{i}pas de raccourci clavier@{ui} pour ce menu.
@ENDNODE
@NODE "Print document" "Menu Projet/Imprimer"
@TOC Project

    Ce menu permet d'envoyer le typon à l'imprimante.
    Le programme utilise les Préférences sélectionnées par le système:
    pilote d'imprimante, densité... Les faces présentes à l'écran lors
    de l'appel du menu sont normalement imprimées (par défaut), il est
    cependant possible d'utiliser les boutons présents dans la requête
    pour changer les éléments à imprimer (typon côté cuivre, côté com-
    posants ou sérigraphie).

    Spécifiez une échelle égale à 100 pour imprimer le document à sa
    taille normale (100%). Bien entendu il est impossible d'imprimer
    un document plus grand que ne le permet l'imprimante (sélectionnée
    dans les Préférences du système).

    Vous pouvez imprimer votre typon avec ou sans rotation (Paysage
    ou Portrait) : ceci permet d'orienter le typon dans le sens
    horizontal ou le sens vertical de la feuille.

    La cellule "En-tête" permet d'écrire le nom du typon ainsi que
    la date d'impression en haut de la page, quand elle est cochée.

    La cellule "Dessin contours" permet de tracer un rectangle autour
    de la carte (nécessaire uniquement si ce contour n'a pas déjà été
    tracé sur le document).

    @{i}Raccourci clavier :@{ui} AMIGA-P (Print) ou P
@ENDNODE
@NODE "Informations" "Menu Projet/Informations"
@TOC Project

    Ce menu provoque l'affichage d'un certain nombre d'informations :
    copyright, taille du document, nombre d'objets dans le typon,
    fonte utilisée par le système (menus, GUI), quantité de mémoire libre...

    @{i}Raccourci clavier :@{ui} AMIGA-K ou K
@ENDNODE
@NODE "Documents" "Menu Projet/Documents"
@TOC Project

    Ce menu permet d'afficher dans une boîte le nom des différents typons.
    Il suffit de cliquer sur le nom d'un document pour amener la fenêtre en
    avant et pouvoir y travailler.

    Vous pouvez aussi effectuer un clic sur le @{B}bouton central@{UB} de la souris
    pour appeler cette fonction.

    Il n'y a @{i}pas de raccourci clavier@{ui} pour ce menu.
@ENDNODE
@NODE Aide "Menu Projet/Aide"
@TOC Project

    Ce menu permet d'obtenir une aide spécifique. Il suffit pour cela
    de donner le nom du node du fichier guide dans la requête qui est
    ouverte.  Il est à noter qu'il est possible d'obtenir l'affichage
    de l'aide relative à chaque menu en  pressant sur la touche  HELP
    alors que le curseur est sur le nom de ce menu.
@ENDNODE
@NODE "Quit" "Menu Projet/Quitter"
@TOC Project

    Ce menu permet de fermer toutes les fenêtres et de supprimer tous
    les typons de la mémoire. Le programme quitte également en libérant
    la mémoire qu'il occupait.
    Si l'un des typons a été modifié, une sauvegarde sera proposée.

    @{i}Raccourci clavier :@{ui} AMIGA-Q (quitter)
	Q (ne ferme que la fenêtre active)
@ENDNODE
@NODE "AppIcon" "Icône d'application AmiPCB"
@TOC MAIN

    Le concept d'AppIcon (Icône d'application) autorise le chargement
    d'un fichier de façon très simple, en une seule action, à l'aide
    de la souris. Comme décrit, dans l'introduction, le programme crée
    une icône qui apparaît sur l'écran du Workbench, lors de son
    @{"lancement" LINK "Lancement"}. Cette icône porte le nom d'AmiPCB.
    Il vous suffit de "saisir" une icône correspondant à un fichier
    typon quelconque, à l'aide de la souris, et de la faire glisser
    sur cette icône pour que ce fichier soit chargé dans une nouvelle
    fenêtre.

    Cette icône possède également une autre fonction: en cliquant deux
    fois dessus rapidement, avec le bouton gauche, vous pouvez "réveiller"
    le programme si toutes les fenêtres sont cachées (la fenêtre active
    est réouverte), ou faire passer en avant-plan la fenêtre active si
    celle-ci est cachée.

    Si vous cliquez sur cette icône alors qu'aucune tâche n'est libre,
    pour cause d'impression ou de requête en cours de traitement, le
    programme vous demandera si vous voulez ouvrir une nouvelle fenêtre.
@ENDNODE
@NODE "Pools" "Gestion de la mémoire"
@TOC MAIN

    Les pools correspondent à un concept de gestion de la mémoire
    amélioré, permettant de ne pas trop fragmenter la mémoire. En
    effet chaque objet est mémorisé de façon dynamique,  dans une
    zone mémoire qui est allouée au programme  au fur et à mesure
    des besoins. Ceci a généralement pour conséquence de créer de
    nombreuses zones de mémoire libre et occupée,  en alternance,
    dans la mémoire de votre Amiga. Grâce à ce concept, cet effet
    est beaucoup  diminué,  et surtout la vitesse  est nettemment
    améliorée.	Malheureusement ce concept exige l'utilisation du
    système 3.0 au moins.
@ENDNODE
@NODE "Drawing" "Menu Dessin"
@TOC Menus
    Ce menu est  destiné à placer les  objets sur le document.	Tous
    ces objets sont des objets vectoriels, ils peuvent être modifiés
    en cliquant dessus deux fois avec le bouton gauche de la souris.
    Une requête contenant  des boutons est  alors ouverte,  selon le
    type d'objet. Il suffit alors de cliquer sur le bouton approprié
    pour changer une des caractéristiques de l'objet choisi.

    Ce menu possède 21 entrées:
    @{"Pas de la grille = 2.54" LINK "Grid size"}
    @{"Aligner sur grille     " LINK "Snap on grid"}
    @{"Pas curseur            " LINK "Cursor step"}
    @{"Rotation               " LINK Rotation}
    @{"Symétrie               " LINK Reflection}
    @{"  Côté cuivre          " LINK "Sold side"}
    @{"  Côté composant       " LINK "Component side"}
    @{"  Sérigraphie          " LINK Serigraphy}
    @{"Placer piste           " LINK "Place track"}
    @{"Largeur piste...       " LINK "Track width..."}
    @{"  Tracé orthogonal     " LINK Orthogonal}
    @{"  Tracé continu        " LINK Continuous}
    @{"Placer pastille        " LINK "Place pad"}
    @{"Type de pastille       " LINK "Pad type"}
    @{"Placer rectangle       " LINK "Place box"}
    @{"Placer triangle        " LINK "Place triangle"}
    @{"Placer ellipse         " LINK "Place ellipse"}
    @{"  Surfaces pleines     " LINK "Filled areas"}
    @{"Placer arc de cercle   " LINK "Place arc"}
    @{"Placer texte           " LINK "Place text"}
    @{"Redessiner             " LINK "Redraw all"}
@ENDNODE
@NODE "Grid size" "Menu Dessin/Pas de la grille = 2.54"
@TOC Drawing

    Ce menu détermine la taille de la grille permettant d'aligner
    plus facilement les objets et leurs connexions.
    Cette grille possède une taille par défaut de 2.54 mm. Cette
    taille correspond à un pas standard en électronique (égale à
    la distance séparant deux broches successives d'un composant).
    Vous pouvez cependant travailler avec une taille différente
    si vous le souhaitez. Mais utilisez de préférence un multiple
    de cette taille (ou un sous-multiple).

    Il n'y a @{i}pas de raccourci clavier@{ui} pour ce menu.
@ENDNODE
@NODE "Snap on grid" "Menu Dessin/Aligner sur grille"
@TOC Drawing

    Ce menu, quand il est marqué, permet de placer les objets (composants,
    fils, jonctions, etc...) directement aux intersections de la @{"grille" LINK "Grid size"}.
    Ceci permet de travailler plus vite, tout en alignant plus facilement
    les éléments qui doivent être connectés. Il est très fortement
    recommandé de toujours utiliser cette option, l'agencement des
    différents objets s'en trouvera grandement facilitée, et le
    programme s'y retrouvera aussi beaucoup plus facilement,
    notamment quand il s'agira de retrouver les divers réseaux.

    @{i}Raccourci clavier:@{ui} AMIGA-G ou G
@ENDNODE
@NODE "Cursor step" "Menu Dessin/Pas du curseur"
@TOC Drawing

    Ce menu possède lui-même quatre sous-entrées:
	- pas grille
	- demi-pas
	- tiers de pas
	- quart de pas
    Une seule de ces quatre entrées peut être sélectionnée. Vous
    pouvez ainsi placer les objets de façon plus ou moins précise.
    Attention, toutefois, l'option tiers de pas est à utiliser avec
    précaution... Je travaille la plupart du temps en demi-pas,
    quelquefois en quart de pas (mais le placement doit alors être
    minutieux).
@ENDNODE
@NODE "Rotation" "Menu Dessin/Rotation"
@TOC Drawing

    Ce menu permet de faire tourner d'un quart de tour l'objet
    courant (en cours de placement, sous le curseur) ou le bloc d'objets
    sélectionné.
    Il s'applique également sur un clip qui est en cours de
    positionnement (voir menu @{"Édition/Coller" LINK "Paste from clip"}).

    La rotation s'effectue dans le sens des aiguilles d'une montre,
    sauf si vous pressez une des touches SHIFT lors de l'appel du menu.

    @{i}Raccourci clavier :@{ui} AMIGA-R ou R (sens "normal")
	AMIGA-SHIFT-R ou SHIFT-R (sens inverse)
@ENDNODE
@NODE "Reflection" "Menu Dessin/Symétrie"
@TOC Drawing

    Ce menu permet de dessiner l'objet courant ou les objets
    sélectionnés en effectuant une symétrie par rapport à leur axe
    vertical (ou horizontal s'il ont été tournés).
    Il s'applique également sur un clip qui est en cours de
    positionnement (voir menu @{"Édition/Coller" LINK "Paste from clip"}).

    @{i}Raccourci clavier :@{ui} AMIGA-/ ou /
@ENDNODE
@NODE "Sold side" "Menu Dessin/Côté cuivre"
@TOC Drawing

    Quand ce menu est marqué les objets qui seront mis en place
    le seront du côté cuivre de la plaque de circuit imprimé.
    Si vous travaillez en double face, vous pouvez aussi utiliser
    le côté composants.

    Quand la face cuivre est sélectionné la mention F=0 apparaît dans
    la barre de titre.

    @{i}Raccourci clavier :@{ui} touche 0 du clavier numérique
@ENDNODE
@NODE "Component side" "Menu Dessin/Côté composants"
@TOC Drawing

    Quand ce menu est marqué les objets qui seront mis en place
    le seront du côté composants de la plaque de circuit imprimé.
    Vous pouvez aussi utiliser cette face pour placer des straps
    si vous travaillez en simple face (la continuité des réseaux
    est ainsi assurée).

    Quand la face composants est sélectionné la mention F=1 apparaît dans
    la barre de titre.

    @{i}Raccourci clavier :@{ui} touche 1 du clavier numérique
@ENDNODE
@NODE Serigraphy "Menu Dessin/Sérigraphie"
@TOC Drawing

    Quand ce menu est marqué les objets qui seront mis en place
    seront destinés à la sérigraphie du circuit imprimé.

    Quand cette face est sélectionné la mention F=3 apparaît dans
    la barre de titre.

    @{i}Raccourci clavier :@{ui} touche 2 du clavier numérique
@ENDNODE
@NODE "Place track" "Menu Dessin/Placer piste"
@TOC Drawing

    L'appel de ce menu fait passer le curseur en mode "placement de ligne".
    Le curseur se transforme alors pour indiquer ce mode (il prend la forme
    d'une croix). Pour placer une piste, il suffit ensuite de cliquer sur son
    point de départ, puis de recliquer sur son point d'arrivée.
    Pour interrompre ce mode, appuyez sur le bouton droit de la souris.

    La largeur des pistes dépend de leur largeur courante, définie dans
    le menu "Dessin/Largeur piste...".

    Pour modifier le tracé d'une piste, cliquez sur un de ses points de
    départ ou d'arrivée, puis tout en maintenant le bouton gauche de la
    souris appuyé, déplacez celui-ci sur le point d'arrivée souhaité, et
    relâchez le bouton. Vous pouvez appuyer sur le bouton droit avant de
    relâcher le bouton gauche si vous désirez annuler l'opération.

    Vous pouvez également utiliser le clavier pour ajuster le placement
    d'une piste: utilisez les touches fléchées pour les déplacer. Si vous
    utilisez conjointement les touches CTRL ou ALT, seul le début ou la
    fin de la piste sera déplacé, si vous utilisez aussi une touche SHIFT
    le déplacement sera plus rapide (égal au pas de la grille).

    @{i}Raccourci clavier :@{ui} AMIGA-ESPACE ou ESPACE

    @{i}Voir aussi :@{ui} @{"tracé orthogonal" LINK Orthogonal}, @{"tracé continu" LINK "Continuous"}
@ENDNODE
@NODE "Track width..." "Menu Dessin/Largeur piste..."
@TOC Drawing

    Quand ce menu est sélectionné, une requête est ouverte, dans laquelle
    vous pouvez modifier les éléments suivants :
	- largeur piste courante
	- largeur textes et lignes placées sur la sérigraphie
	- rayons des ellipses
	- rayons des arcs
    Ces éléments sont pris en compte lors du placement des objets
    correspondants quand les menus sont utilisés.

    @{i}Raccourci clavier :@{ui} AMIGA-D ou D
@ENDNODE
@NODE "Orthogonal" "Menu Dessin/Tracé orthogonal"
@TOC Drawing

    Quand ce menu est marqué, les pistes ne peuvent être @{"tracées" LINK "Place track"} que
    verticalement, horizontalement ou bien à 45°.
    Sélectionnez à nouveau ce menu pour changer son état.

    @{i}Raccourci clavier :@{ui} AMIGA-| ou |
@ENDNODE
@NODE "Continuous" "Menu Dessin/Tracé continu"
@TOC Drawing

    Quand ce menu est marqué, lors d'une opération de placement de
    pistes, dès que vous @{"placez une piste" LINK "Place track"}, le point d'arrivée du dernier objet
    qui a été placé devient le point de départ de la piste suivante.
    Appuyez sur le bouton droit de la souris pour interrompre la
    continuité du tracé, et recommencer ailleurs. Vous pouvez
    également tracer une ligne de longueur nulle, c'est à dire
    possédant les points de départ et d'arrivée confondus, la
    ligne ne sera alors pas tracée et vous pourrez commencer
    une nouvelle piste à n'importe quel autre endroit.

    Il n'y a @{i}pas de raccourci clavier@{ui} pour ce menu.
@ENDNODE
@NODE "Place pad" "Menu Dessin/Placer pastille"
@TOC Drawing

    Quand ce menu est utilisé, une pastille est placée sous le curseur
    et il suffit alors de cliquer avec le bouton gauche de la souris
    pour la placer sur la feuille de travail, sur la face active.
    Cette pastille a les caractéristiques définies dans le menu
    @{"Dessin/Type de pastille" LINK "Pad type"}

    @{i}Raccourci clavier :@{ui} AMIGA-J ou J
@ENDNODE
@NODE "Pad type" "Menu Dessin/Type de pastille"
@TOC Drawing

    Quand ce menu est appelé, une requête permettant de définir les
    pastilles "courantes" est ouverte. Toutes les pastilles placées
    par la suite auront ces caractéristiques :
	- type de pastille (rectangulaire ou ellipsoïdale),
	- dimensions (largeur, hauteur),
	- diamètre du trou de perçage (spécifiez 0 pour ne pas en avoir),
	- pastille double face ou non (simple face),
	- numéro de broche associé.

    @{i}Raccourci clavier :@{ui} Amiga-. ou .
@ENDNODE
@NODE "Place box" "Menu Dessin/Placer rectangle"
@TOC Drawing

    Ce menu est utilisé pour placer des boîtes rectangulaires, pleines
    ou vides. Pour placer un tel objet, cliquez une première fois dans
    l'un des coins présumés de la boîte, puis relâchez le bouton de la
    souris et déplacez-le au coin opposé avant de recliquer une seconde
    fois. utilisez le bouton droit de la souris pour annuler une
    opération en cours.

    Les rectangles peuvent prendre n'importe quelle largeur de
    trait, comme indiqué par le menu @{"Largeur piste" LINK "Track width..."}

    Pour éditer une boîte déjà en place, cliquez deux fois dessus, ou
    cliquez dans l'un des coins puis tout en maintenant le bouton de
    la souris appuyé, déplacez le coin choisi à un autre endroit, avant
    de le relâcher (utilisez la touche CTRL en plus, pour avoir un
    carré). Vous pouvez appuyer sur le bouton droit avant de relâcher
    le bouton gauche si vous désirez annuler l'opération.

    @{i}Raccourci clavier :@{ui} AMIGA-B ou B
@ENDNODE
@NODE "Place triangle" "Menu Dessin/Placer triangle"
@TOC Drawing

    La sélection de ce menu permet de tracer un triangle, si le menu
    Surfaces pleines est alors marqué, il sera plein.

    Les triangles peuvent prendre n'importe quelle largeur de
    trait, comme indiqué par le menu @{"Largeur piste" LINK "Track width..."}

    Pour modifier la largeur du tracé d'un triangle déjà placé,
    cliquez deux fois dessus avec la souris puis tapez la largeur
    souhaitée dans la boîte qui s'ouvre alors.

    @{i}Raccourci clavier :@{ui} AMIGA-' ou '
@ENDNODE
@NODE "Place ellipse" "Menu Dessin/Placer ellipse"
@TOC Drawing

    La sélection de ce menu fait passer le curseur en mode "placement
    d'ellipse". Le rendu dépend du menu "Surfaces pleines".
    Une ellipse est alors dessinée à l'écran et celle-ci suit les
    mouvements de la souris. Pour placer une ellipse, cliquez alors sur le
    bouton gauche. Le diamètre peut être modifié en utilisant les touches
    fléchées (FLÈCHES verticales pour le rayon vertical, FLÈCHES
    horizontales pour le rayon horizontal) qui permet d'augmenter ou de
    diminuer ces rayons d'une dimension égale au pas de la grille (si une
    touche Shift est utilisée en même temps) ou à 1/100 de mm.

    Quand une ellipse a été fixée sur le schéma, il est possible de
    la modifier en cliquant sur l'un de ses axes (vertical ou horizontal),
    près de sa périphérie, puis tout en maintenant le bouton de la souris
    appuyé, de déplacer celle-ci jusqu'à ce que la dimension souhaitée soit
    atteinte. Si vous souhaitez obtenir un cercle, maintenez la touche
    Ctrl enfoncée lors de ces opérations : les deux diamètres seront alors
    égaux. Vous pouvez aussi cliquer deux fois de suite pour ouvrir une
    requête permettant de modifier son emplacement (coordonnées), ses
    dimension, son type de rendu (pleine ou non), la largeur de son
    tracé.

    Pour déplacer une ellipse, cliquez en son centre s'il s'agit d'une
    ellipse pleine, ou sur sa périphérie, puis, tout en maintenant le
    bouton appuyé, faites glisser la souris jusqu'à ce que la position
    désirée soit atteinte.

    Pour annuler ce mode utilisez le bouton droit de la souris, ou
    choisissez un autre mode.

    @{i}Raccourci clavier :@{ui} AMIGA-E ou E
@ENDNODE
@NODE "Filled areas" "Menu Dessin/Surfaces pleines"
@TOC Drawing

    Quand ce menu est marqué, les rectangles, les triangles et les
    ellipses qui seront alors tracés seront pleins, sinon seuls leurs
    contours seront tracés, en utilisant la largeur de trait alors
    sélectionnée.

    @{i}Raccourci clavier :@{ui} AMIGA-" ou "
@ENDNODE
@NODE "Place arc" "Menu Dessin/Placer arc de cercle"
@TOC Drawing

    La sélection de ce menu fait passer le curseur en mode "placement
    d'arc". Ces arcs de cercle sont en fait des quart de cercles.
    Pour choisir les dimensions, utilisez les touches fléchées, avec
    ou sans SHIFT. La touche SHIFT permet d'avoir un changement plus rapide,
    égal au pas de la grille.
    Pour placer un arc cliquez sur le bouton gauche de la souris quand
    la position désirée est atteinte.
    Pour modifier le diamètre d'un arc déjà placé sur le schéma, cliquez
    deux fois dessus, puis saisissez les valeurs demandées.

    Pour déplacer un arc, cliquez vers son centre puis, tout en
    maintenant le bouton appuyé, faites glisser la souris jusqu'à ce que
    la position désirée soit atteinte.

    Pour annuler ce mode utilisez le bouton droit de la souris, ou
    choisissez un autre mode de dessin.

    Vous pouvez utiliser les commandes de rotation et/ou de symétrie
    pour changer rapidement l'aspect d'un arc.

    À noter que les arcs peuvent constituer des pistes, la continuité
    des pistes est en effet reconnue pour le test des réseaux si les
    pistes et les arcs se joignent à leur extrémité, de même un arc
    peut être raccordé à une pastille, à condition qu'une extrémité
    de l'arc coïncide avec le centre de la pastille.

    @{i}Raccourci clavier :@{ui} AMIGA-§ ou §
@ENDNODE
@NODE "Place text" "Menu Dessin/Placer texte"
@TOC Drawing

    La sélection de ce menu entraîne l'apparition d'une requête,
    demandant entre autre quel est le texte à placer. Si le choix
    est validé, le curseur se transforme en texte, utilisez alors le bouton
    gauche de la souris pour placer celui-ci à l'emplacement désiré.

    Pour modifier un texte, cliquez deux fois de suite sur celui-ci
    puis choisissez l'option proposée (Modifier texte, échelle verticale
    ou échelle horizontale, largeur du tracé).

    Pour annuler ce mode utilisez le bouton droit de la souris, ou
    choisissez un autre mode.

    @{i}Raccourci clavier :@{ui} AMIGA-T ou T
@ENDNODE
@NODE "Redraw all" "Menu Dessin/Redessiner"
@TOC Drawing

    Permet d'effacer toute la feuille de schéma puis de la redessiner.
    Utile après un travail de sélection, de déplacement de blocs, ou
    pour réafficher correctement la grille.

    @{i}Raccourci clavier :@{ui} AMIGA-Z ou Z
@ENDNODE
@NODE "Clip" "Les clips AmiPCB"
@TOC Edition

    Les clips sont des ensembles d'objets quelconques, ils sont définis
    simplement en @{"sélectionnant" LINK Edition} des objets puis en utilisant les menus
    @{"Édition/Copier" LINK "Copy to clip"} ou @{"Édition/Couper" LINK "Paste from clip"}. Ils peuvent alors être collés
    n'importe où sur le document (ou même sur un autre document). Ils
    peuvent être également être @{"sauvés" LINK "Save clip"} et @{"relus" LINK "Load clip"} ultérieurement.

    À noter que les clips doivent respecter quelques règles simples si
    vous voulez qu'ils soient utilisables facilement. Ainsi si vous
    voulez que les connexions soient alignées sur la grille il est
    impératif que le point de référence du clip soit lui-même aligné
    sur cette grille: ce point est défini par le coin le plus haut à
    gauche du rectangle défini par les divers objets inclus dans ce
    clip. Bien sûr les connexions doivent sur se trouver à une distance
    de ce point qui soit un multiple du pas de la grille.

    Enfin, il est souhaitable que tous les éléments constituant un clip
    soient @{"groupés" LINK New group}, surtout s'il s'agit d'une empreinte.

    Voir aussi : @{"type d'outil CLIPS" LINK CLIPS}
@ENDNODE
@NODE "Edition" "Menu Édition"
@TOC Menus

    Cette série de menus est relative aux @{"blocs" LINK Clip} d'éléments sélectionnés.
    Avant de commencer leur description il faut expliquer comment sont
    sélectionnés ces blocs.
    Cette sélection peut s'effectuer de deux manières :
    - en cliquant dans une zone ne contenant aucun élément puis en
    maintenant le bouton gauche de la souris, et en faisant glisser
    celle-ci vous pouvez encadrer une zone dans laquelle tous les éléments
    présents seront sélectionnés,
    - en cliquant sur un élément, celui-ci sera sélectionné. Cependant
    si le menu @{"Édition/Multisélection" LINK Multiselection} n'est pas marqué, seul un élément peut
    être sélectionné, sauf si vous enfoncez une des touches SHIFT au moment
    où vous cliquez.

    Quand un bloc est déjà sélectionné, vous pouvez l'étendre en pressant
    une des touches SHIFT avant de cliquer avec le bouton gauche de la souris,
    pour n'importe laquelle des deux méthodes vues précédemment.

    Pour annuler la sélection d'un élément ou d'un bloc, pressez la touche
    Ctrl en même temps que vous utilisez la souris (lors du glissement), tout
    en maintenant ou non la touche SHIFT appuyée afin de conserver la sélection
    des autres éléments déjà sélectionnés.

    Pour sélectionner un élément situé en arrière-plan, sélectionnez d'abord
    celui qui est situé "devant", puis recliquez en appuyant sur la touche ALT,
    avec ou sans la touche SHIFT (pour garder les autre sélections ou non).

    Pour annuler la sélection d'un bloc pressez la touche ESC ou cliquez
    à nouveau deux fois de suite n'importe où sur l'écran.

    Pour modifier les caractéristiques d'un objet, cliquez deux fois de
    suite dessus à l'aide du bouton gauche de la souris, puis choisissez les
    boutons correspondant aux caractéristiques que vous souhaitez modifier.

    @{"Copier          " LINK "Copy to clip"}
    @{"Coller          " LINK "Paste from clip"}
    @{"Couper          " LINK "Cut to clip"}
    @{"Effacer         " LINK "Delete selection"}
    @{"Sélection piste " LINK "Select track"}
    @{"Cloner          " LINK Clone}
    @{"Fixer sur grille" LINK "Fix on grid"}
    @{"Changer de face " LINK "Other side"}
    @{"Doubler taille  " LINK "Double size"}
    @{"Diviser taille  " LINK "Divide size"}
    @{"Échelle         " LINK Scale}
    @{"Grouper         " LINK "New group"}
    @{"Séparer         " LINK "Kill group"}
    @{"Chercher        " LINK Find}
    @{"Sauver clip     " LINK "Save clip"}
    @{"Charger clip    " LINK "Load clip"}
    @{"Multisélection  " LINK Multiselection}
    @{"Restaurer       " LINK Undo}
    @{"Libérer mémoire " LINK "Free memory"}
@ENDNODE
@NODE "Copy to clip" "Menu Édition/Copier"
@TOC Edition

    Ce menu permet la recopie du @{"bloc" LINK Edition} spécifié dans une zone mémoire.
    Si l'opération réussit, la sélection est annulée.

    @{I}Raccourci clavier :@{UI} AMIGA-C (copier) ou C

    @{i}Voir aussi :@{ui} @{"COPY" LINK COPY}
@ENDNODE
@NODE "Paste from clip" "Menu Édition/Coller"
@TOC Edition

    Le contenu de la zone mémoire valide est copié à l'emplacement actuel
    du curseur. Il se déplace avec la souris, pour placer ce bloc, cliquez
    sur le bouton gauche. Seuls les éléments qui ne débordent pas de la
    fenêtre seront placés. Vous pouvez utiliser les menus permettant la
    @{"rotation" LINK Rotation}, la @{"symétrie" LINK Reflection}, l'@{"agrandissement" LINK "Double size"} ou le @{"retrécissement" LINK "Divide size"} des
    @{"objets sélectionnés" LINK Clip} pendant l'utilisation de ce menu.

    @{I}Raccourci clavier :@{UI} AMIGA-V ou V

    @{i}Voir aussi :@{ui} @{"PASTE" LINK PASTE}
@ENDNODE
@NODE "Cut to clip" "Menu Édition/Couper"
@TOC Edition

    Ce menu permet d'effacer le bloc spécifié (le @{"bloc" LINK Clip} est copié dans la
    zone mémoire alors valide).

    @{I}Raccourci clavier :@{UI} AMIGA-X ou X

    @{i}Voir aussi :@{ui} @{"COPY" LINK COPY}, @{"DELETE" LINK DELETE}
@ENDNODE
@NODE "Delete selection" "Menu Édition/Effacer"
@TOC Edition

    Ce menu permet d'effacer le bloc spécifié. Vous pouvez aussi
    utiliser la touche DEL.

    @{I}Raccourci clavier :@{UI} AMIGA-Y, Y ou DEL

    @{i}Voir aussi :@{ui} @{"DELETE" LINK DELETE}
@ENDNODE
@NODE "Select track" "Menu Édition/Sélection piste"
@TOC Edition

    Ce menu est utilisé pour visualiser le tracé complet suivi
    par un réseau de pistes. Il suffit de cliquer sur une pastille
    ou un segment de piste pour que tous les éléments qui y sont
    reliés soient alors sélectionnés. La routine de recherche
    est cependant inopérante pour les pistes placées en oblique
    qui se croisent ailleurs qu'à leurs extrémités.

    De toute manière il est conseillé de toujours faire démarrer
    les pistes au centre des pastilles et d'éviter de les faire
    passer par dessus les pastilles sans créer un point de
    fixation dessus celles-ci.

    Pour sélectionner un ensemble de liaisons réseaux, utilisez
    le menu @{"Réseau/Sélection réseau" LINK "Select net(s)"}.

    @{i}Raccourci clavier :@{ui} AMIGA-% ou %
@ENDNODE
@NODE "Clone" "Menu Édition/Cloner"
@TOC Edition

    Ce menu permet de recopier le bloc spécifié.

    @{I}Raccourci clavier :@{UI} AMIGA-TAB ou TAB

    @{I}Appel ARexx :@{UI} MENU("Clone")
@ENDNODE
@NODE "Fix on grid" "Menu Édition/Fixer sur grille"
@TOC Edition

    Ce menu permet d'aligner les éléments appartenant au bloc
    spécifié sur la grille (leur point d'attache, déterminé par
    le point correspondant au pointeur de la souris, lors de
    leur pose, est fixé sur le point le plus proche de la grille).

    @{I}Raccourci clavier :@{UI} AMIGA-! ou !
@ENDNODE
@NODE "Other side" "Menu Édition/Changer face"
@TOC Edition

    Ce menu permet de faire passer un ou plusieurs objets du côté
    cuivre au côté composant (ou vice-versa). Seuls les objets
    sélectionnés au moment de l'appel du menu sont modifiés, les
    objets composant la sérigraphie ne sont pas affectés par ce
    menu.

    @{I}Raccourci clavier :@{UI} AMIGA-D ou D
@ENDNODE
@NODE "Double size" "Menu Édition/Doubler taille"
@TOC Edition

    Ce menu permet de doubler la taille des éléments sélectionnés.
    Cette fonction s'applique aussi à l'élément présent sous le
    curseur lorsque celui-ci est en mode "placement composant".
    Elle s'applique également sur un clip qui est en cours de
    positionnement (voir menu {"Édition/Coller" LINK "Paste from clip"}).

    La fonction ne prend effet que si l'agrandissement est possible,
    c'est à dire sans que les éléments ne sortent de la fenêtre.

    @{I}Raccourci clavier :@{UI} AMIGA-+ ou +

    @{i}Voir aussi :@{ui} @{"SETSCALE" LINK SETSCALE}
@ENDNODE
@NODE "Divide size" "Menu Édition/Diviser taille"
@TOC Edition

    Ce menu permet de diminuer la taille des éléments sélectionnés.
    La taille des éléments doit être un multiple de deux (échelles 2,
    4, 8...)
    Cette fonction s'applique aussi à l'élément présent sous le
    curseur lorsque celui-ci est en mode "placement composant".
    Elle s'applique également sur un clip qui est en cours de
    positionnement (voir menu {"Édition/Coller" LINK "Paste from clip"}).

    @{I}Raccourci clavier :@{UI} AMIGA-- ou -

    @{i}Voir aussi :@{ui} @{"SETSCALE" LINK SETSCALE}
@ENDNODE
@NODE "Scale" "Menu Édition/Échelle"
@TOC Edition

    Ce menu permet de changer la taille des éléments sélectionnés
    en laissant l'utilisateur choisir le rapport d'agrandissement.
    Si le rapport spécifié est supérieur à 100, la taille des objets
    est augmentée, si elle est inférieure, la taille diminue.

    @{I}Raccourci clavier :@{UI} AMIGA-# ou #

    @{i}Voir aussi :@{ui} @{"SETSCALE" LINK SETSCALE}
@ENDNODE
@NODE "New group" "Menu Édition/Grouper"
@TOC Edition

    Ce menu permet d'associer les éléments sélectionnés, en un
    groupe, leur sélection se fait alors en cliquant sur un seul
    d'entre eux, cependant leur édition individuelle reste toujours
    possible, s'il y a lieu, en cliquant deux fois dessus.

    Il est possible de créer un groupe ne comprenant qu'un seul
    élément, ceci est utile si vous souhaitez par exemple placer
    un "via" sur lequel vous souhaitez placer une liaison appartenant
    à un réseau: cette pastille ne sera alors pas détruite lors de
    l'annulation d'un routage.

    Lors de la création d'un groupe une requête demande quel est
    le nom de ce groupe, vous répondre en validant simplement la
    requête si vous ne souhaitez pas lui attribuer de nom.
    Cependant ce nom peut être très utile, notamment lors de la
    création de nouveaux composants. Ces noms sont en effet sauvés
    puis rechargés lors de la sauvegarde et du chargement des clips.
    Pour changer le nom d'un groupe, sélectionnez simplement celui-ci
    et rappelez ce menu, la requête sera alors réouverte.

    @{I}Raccourci clavier :@{UI} AMIGA-{ ou {

    @{i}Voir aussi :@{ui} @{"GROUP" LINK GROUP}, @{"SETNAME" LINK SETNAME}, @{"GETNAME" LINK GETNAME}
@ENDNODE
@NODE "Kill group" "Menu Édition/Séparer"
@TOC Edition

    Ce menu permet de supprimer les liens définissant un groupe
    sélectionné, les éléments retrouvent alors leur indépendance.
    Les éléments sont désélectionnés pour marquer la réussite
    de la fonction. Ceux qui n'appartiennent pas à un groupe
    restent sélectionnés.

    @{i}Raccourci clavier :@{ui} AMIGA-} ou }

    @{i}Voir aussi :@{ui} @{"UNGROUP" LINK UNGROUP}
@ENDNODE
@NODE Find "Menu Édition/Chercher"

    Ce menu permet de rechercher un composant en précisant sa
    référence (un objet texte) ou un réseau en donnant son label.
    Il est possible d'utiliser les jokers AmigaDOS pour spécifier
    la chaîne à chercher (Ex: CI* ou CI#? pour trouver tous les CI).

    Si la recherche aboutit, l'objet trouvé est sélectionné, si
    plusieurs objets sont trouvés, un message d'avertissement est
    affiché.

    Raccourci clavier : AMIGA-M ou M
@ENDNODE
@NODE "Save clip" "Menu Édition/Sauver clip"
@TOC Edition

    Les clips sont utilisés pour définir des empreintes de
    composants. Ils peuvent être créés directement dans la
    fenêtre de travail courante ou bien ou ouvrant une autre
    fenêtre. Il est préférable de grouper les éléments
    constituant un clip afin de créer une empreinte. Le
    menu Réseaux utilise les groupes pour reconnaître les
    composants. Il est également utile de donner aux groupes
    constituant les clips, ces noms étant sauvegardés.

    Ce menu permet de sauvegarder le bloc sélectionné dans un
    fichier (choisi à l'aide d'une requête).

    @{i}Raccourci clavier :@{ui} AMIGA-W ou W

    @{i}Voir aussi :@{ui} @{"SAVECLIP" LINK SAVECLIP}
@ENDNODE
@NODE "Load clip" "Menu Édition/Charger clip"
@TOC Edition

    Ce menu permet de lire un bloc précédemment sauvé dans un
    fichier (choisi à l'aide d'une requête). Si la lecture
    réussit le bloc de données est affiché sous le curseur et
    se déplace avec lui, utilisez un clic du bouton gauche
    pour le fixer à l'emplacement souhaité ou bien cliquez
    avec le bouton droit pour annuler l'opération.

    Le point d'accrochage d'un clip est le point le plus haut à
    gauche, aussi essayez de créer des clips possédant ce point
    situé sur la grille afin de pouvoir les placer facilement par
    la suite.

    @{i}Raccourci clavier :@{ui} AMIGA-L ou L

    @{i}Voir aussi :@{ui} @{"LOADCLIP" LINK LOADCLIP}
@ENDNODE
@NODE "Multiselection" "Menu Édition/Multisélection"
@TOC Edition

    Quand ce menu est marqué, vous pouvez sélectionner autant
    d'éléments que vous le désirez, en cliquant successivement
    sur chacun d'eux, sans avoir à utiliser une touche SHIFT.
    Quand il n'est pas marqué, vous devez utiliser une touche
    SHIFT pour sélectionner plusieurs éléments, sinon chaque
    nouvelle sélection annule la précédente.

    Il suffit de sélectionner ce menu pour changer son état.

    Raccourci clavier : AMIGA-*
@ENDNODE
@NODE "Undo" "Menu Édition/Restaurer"
@TOC Edition

    Ce menu est très pratique pour annuler l'effet de la dernière
    opération qui a été réalisée.

    Version 1.05: cette fonction possède maintenant 10 niveaux de
    sauvegarde, c'est à dire que vous pouvez annuler les effets des
    dix dernières opérations réalisées à l'aide du clavier ou de
    la souris. Les macros (scripts ARexx ou commandes saisies
    directement) ne peuvent pas toujours être annulées, elles
    doivent pour cela utiliser la fonction @{"SAVEALL" LINK SAVEALL}.

    Raccourci clavier : AMIGA-U ou U
@ENDNODE
@NODE "Free memory" "Menu Édition/Libérer mémoire"
@TOC Edition

    Ce menu permet de libérer la mémoire servant à gérer les opérations
    de @{"restauration" LINK Undo}. Naturellement il est ensuite impossible
    d'annuler la dernière opération ayant été effectuée avant que ce
    menu ne soit appelé. La quantité de mémoire libérée dépend bien sûr
    du nombre d'opérations qui ont été mémorisées et de la complexité
    du document en cours, cependant pour un système comprenant peu de
    mémoire, cette fonction peut être utile.

    Ce menu peut être utilisé dans le cas où vous êtes certain que les
    dernières modifications n'auront pas à être annulées, avant de réaliser
    une série de nouvelles modifications qui pourront avoir à être annulées
    il est ainsi certain qu'il n'y aura pas d'annulation malheureuse...

    Il n'y a pas de raccourci clavier pour ce menu.
@ENDNODE
@NODE NetList "Menu Réseaux"
@TOC Menus

    Cette série de menus permet de créer une liste d'équipotentielles
    et de router les pistes en s'aidant de ces liaisons, afin de
    vérifier le circuit. Il est tout à fait possible de ne pas utiliser
    ce menu pour utiliser AmiPCB, cependant il est conseillé de
    l'utiliser, notamment sur les projets un peu complexes.

    La méthode de travail proposée est la suivante :
	- placez d'abord les empreintes sur la carte (utiliser le
	menu @{"Edition/Charger clip" LINK "Load clip"}).
	- donnez leur nom aux empreintes (références des composants).
	- reliez les pastilles en utilisant le menu @{"Ajouter liaison" LINK "Add net"}
	Cette opération consiste à créer le chevelu.
	- baptisez les liaisons importantes (la masse, l'alimentation,
	les liaisons importantes) en cliquant deux fois sur la liaison
	voulue.
	- quand vous avez terminé, vous pouvez vérifier que vous n'avez
	rien oublié en utilisant le menu @{"Pastilles inutilisées?" LINK "Search unused pads"}.
	- vous pouvez ensuite vérifier que votre réseau est cohérent
	en utilisant le menu @{"Test noms réseaux" LINK "Process nets names"}. Si certaines anomalies
	sont détectées elles seront signalées.
	- vous pouvez aussi utiliser le menu @{"Réduire chevelu" LINK Minimize} afin de
	réduire la longueur des liaisons en tout ou partie.
	- vous pouvez ensuite commencer à router les pistes que vous
	voulez. Quand vous pensez avoir terminé un réseau, vous pouvez
	le vérifier en utilisant le menu @{"Test routage" LINK "Check route(s)"}.

    @{"Ajouter liaison       " LINK "Add net"}
    @{"Montrer chevelu       " LINK "Show nets"}
    @{"Pastilles inutilisées?" LINK "Search unused pads"}
    @{"Sélection réseau      " LINK "Select net(s)"}
    @{"Test noms réseaux     " LINK "Process nets names"}
    @{"Réduire chevelu       " LINK Minimize}
    @{"Test routage          " LINK "Check route(s)"}
    @{"Annuler routage       " LINK Unroute}
    @{"Cacher réseau(x)      " LINK "Hide net(s)"}
    @{"Cacher réseaux routés " LINK "Hide routed nets"}
    @{"Montrer réseau(x)     " LINK "Show net(s)"}
    @{"Montrer tout          " LINK "Show all nets"}
@ENDNODE
@NODE "Add net" "Menu Réseaux/Ajouter liaison"
@TOC NetList

    Ce menu permet la création du "chevelu". Il doit être utilisé après
    avoir placé les composants (les empreintes). Il permet de savoir
    quelles pastilles doivent être reliées entre elles. Pour un
    fonctionnement correct du programme, ces pastilles doivent
    normalement appartenir à un groupe, afin de distinguer ces
    pastilles de celles qui sont utilisées pour réaliser des
    traversées du circuit (vias). Ce travail s'effectue naturellement
    en utilisant le schéma de la carte à réaliser.

    Les liaisons peuvent être liées à un @{b}label@{ub}: pour définir celui-ci
    cliquez deux fois sur une liaison et entrez le label désiré dans
    la cellule appropriée (sept lettres maximum). Chaque réseau doit
    naturellement posséder un label différent, et le même label doit
    être utilisé pour un même réseau.
    Il est inutile de saisir le label de toutes les liaisons qui
    constituent un même réseau, si une seule liaison a été définie
    et que les autres n'ont aucune définition, l'appel du menu
    @{"Test noms réseaux" LINK "Process nets names"} permet d'étendre ce label à toutes
    les liaisons du même réseau.
@ENDNODE
@NODE "Show nets" "Menu Réseaux/Montrer chevelu"
@TOC Netlist

    Quand ce menu est marqué les liaisons constituant le chevelu (liaisons
    équipotentielles) sont visualisées par un trait fin de couleur orange.
    S'il n'est pas marqué les liaisons sont masquées.
    Ce menu est marqué automatiquement si vous utilisez le menu @{"Ajouter liaison" LINK "Add net"}.
@ENDNODE
@NODE "Search unused pads" "Menu Réseaux/Pastilles inutilisées?"
@TOC NetList

    Ce menu permet de repérer toutes les pastilles qui ne sont reliées
    à aucune liaison constituant le chevelu. Cela permet de vérifier
    que rien n'a été oublié quand les liaisons ont toutes été placées,
    les pastilles inutilisées étant sélectionnées.
    Cette vérification doit naturellement être faite en utilisant le
    schéma de la carte.

    Il n'y a pas de raccourci clavier pour ce menu.
@ENDNODE
@NODE "Select net(s)" "Menu Réseaux/Sélection réseau"
@TOC NetList

    Ce menu permet de visualiser un ensemble de liaisons constituant
    un réseau. L'une des liaisons du réseau à visualiser au moins
    doit être sélectionnée avant l'appel à ce menu.

    Il est aussi possible de sélectionner un composant puis d'appeler
    ce menu, toutes les liaisons à ce composant seront sélectionnées.
    Si vous sélectionnez uniquement une piste ou un texte, rien ne
    se passera.

    Nota : les liaisons ainsi que les pastilles qui y sont attachées
    sont sélectionnées par cette opération.

    Raccourci clavier : AMIGA-> ou >
@ENDNODE
@NODE "Process nets names" "Menu Réseaux/Test noms réseaux"
@TOC NetList

    Ce menu permet d'effectuer quelques vérifications sur le chevelu:
	- si un label est utilisé deux fois (sur deux réseaux différents)
	ou plus, un message d'erreur sera affiché.
	- si deux labels différents sont utilisés sur le même réseau,
	un message d'erreur sera aussi affiché.

    Il est à noter que les erreurs éventuelles n'interdisent pas
    d'utiliser les autres fonctions du programme, ce sont les liaisons
    qui définissent les réseaux, et ceci quelque soient leurs noms.

    Attention: les noms des réseaux sont sensibles à la casse (les
    majuscules et les minuscules sont différenciées).

    Il n'y a pas de raccourci clavier pour ce menu.
@ENDNODE
@NODE Minimize "Menu Réseaux/Réduire chevelu"
@TOC NetList

    Ce menu permet de réduire la longueur totale du chevelu. Pour
    chaque réseau sélectionné (ou pour tous les réseaux si aucun
    n'est sélectionné) le programme cherche le parcours le plus
    court et remplace le parcours existant par celui qu'il a trouvé
    s'il est plus court. L'algorythme utilisé n'est cependant pas
    forcément très performant dans tous les cas. Son utilisation
    peut cependant être utile dans certains cas, quand de multiples
    liaisons existent, le fignolage pouvant ensuite être effectué
    "à la main".

    Le programme signale combien de réseaux ont été réduits par
    cette opération. Les pastilles des réseaux testés sont sélectionnées
    à la fin de l'opération, ainsi que les liaisons qui ont été
    réduites. Les réseaux ne possédant qu'une liaison ne sont
    naturellement pas testés.

    Cette opération peut être annulée en utilisant le menu @{"Edition/Restaurer" LINK Undo}.

    Raccourci clavier : AMIGA-< ou >
@ENDNODE
@NODE "Check route(s)" "Menu Réseaux/Test routage"
@TOC NetList

    Ce menu permet de tester le routage des réseaux sélectionnés ou
    de tous les réseaux si aucun n'est sélectionné.
    Attention: il faut sélectionner une liaison et non une piste.

    Le programme teste les coupures du circuit (liaison absente)
    et les court-circuits avec les autres réseaux. Attention,
    certains tests de voisinage peuvent être relativement imprécis,
    notamment lors de l'utilisation de pastilles elliptiques ou
    de pistes placées en diagonale.
    Quand un réseau incomplet a été trouvé, les liaisons qui le
    constituent sont sélectionnées, alors que si c'est un court-circuit
    toutes les pastilles qui sont reliées entre elles sont sélectionnées.

    Le menu @{"Edition/Sélection liaison" LINK "Select track"} peut être utilisé
    pour aider à retrouver les erreurs. Quand une liaison est sélectionnée,
    le premier appel à ce menu permet de sélectionner toutes les
    pastilles reliées à ce réseau, l'appel suivant sélectionne les
    pistes reliées à ce réseau.

    Raccourci clavier : AMIGA-& ou &
@ENDNODE
@NODE Unroute "Menu Réseaux/Annuler routage"
@TOC NetList

    Ce menu permet d'annuler le routage des liaisons sélectionnés ou
    de tous les réseaux si aucun n'est sélectionné.
    Vous pouvez sélectionner une liaison ou une piste avant l'appel
    de ce menu, ou même un composant.

    Cette opération peut être annulée en utilisant le menu @{"Edition/Restaurer" LINK Undo}.

    Il n'y a @{i}pas de raccourci clavier@{ui} pour ce menu.
@ENDNODE
@NODE "Hide net(s)" "Menu Réseaux/Cacher réseau(x)"
@TOC NetList

    Ce menu permet de cacher les réseaux sélectionnés. Ceci peut
    être utile pour s'y retrouver plus facilement dans le document,
    notamment quand il existe beaucoup de liaisons qui se chevauchent.

    Il est cependant souhaitable d'effectuer un @{"test complet du routage" LINK "Hide routed nets"}
    quand vous pensez avoir terminé votre travail, certaines liaisons
    pouvant vous avoir échappé par ce biais.

    Il est possible d'annuler l'effet de cette commande en utilisant
    le menu @{"Edition/Restaurer" LINK Undo}.

    Raccourci clavier : AMIGA-: ou :
@ENDNODE
@NODE "Hide routed nets" "Menu Réseaux/Cacher réseaux routés"
@TOC NetList

    Ce menu permet de vérifier les réseaux sélectionnés ou
    tous les réseaux si aucun n'est sélectionné.
    Attention: il faut sélectionner une liaison et non une piste.
    Si le routage est correct, le réseau complet (toutes les
    liaisons qui le constituent) est caché.

    Il est souhaitable d'effectuer une vérification complète du
    routage quand vous pensez avoir terminé le travail, en appelant
    ce menu alors qu'aucune liaison n'est sélectionnée. Le programme
    visualise alors tous les réseaux, et les cache au fur et à mesure
    qu'il sont testés (s'ils sont corrects). A la fin du test seuls
    les réseaux en erreur sont visualisés (piste manquante ou court-
    circuit).

    Le menu @{"Edition/Sélection liaison" LINK "Select track"} peut être utilisé
    pour aider à retrouver les erreurs. Quand une liaison est sélectionnée,
    le premier appel à ce menu permet de sélectionner toutes les
    pastilles reliées à ce réseau, l'appel suivant sélectionne les
    pistes reliées à ce réseau.

    @{i}Raccourci clavier :@{ui} AMIGA-µ ou µ
@ENDNODE
@NODE "Show net(s)" "Menu Réseaux/Montrer réseau(x)"
@TOC NetList

    Ce menu permet de visualiser le réseau définissant une piste ou
    une pastille. Il est utile notamment si vous avez utilisé le
    menu @{"Cacher réseau(x)" LINK "Hide net(s)"} précédemment.

    Il faut sélectionner une pastille ou une piste (ou plusieurs) avant
    d'appeler ce menu.

    Raccourci clavier : AMIGA-ù
@ENDNODE
@NODE "Show all nets" "Menu Réseaux/Montrer tout"
@TOC Netlist

    Ce menu permet de visualiser toutes les liaisons de tous les
    réseaux. Si le menu @{"Montrer chevelu" LINK "Show nets"} n'était pas marqué il le sera
    automatiquement.

    Il n'y a @{i}pas de raccourci clavier@{ui} pour ce menu.
@ENDNODE
@NODE "Preferences" "Menu Préférences"
@TOC Menus

    Cette série de menus permet de sauvegarder certains réglages du
    programme dans le fichier @{B}AmiPCB.prefs@{UB}. Ce fichier est
    sauvé dans le répertoire courant.
    Ce fichier est relu automatiquement à chaque démarrage du
    programme, afin de repositionner les réglages comme voulu par
    l'utilisateur. Ce fichier est au format ASCII et peut
    donc être consulté et même modifié à l'aide d'un éditeur de
    texte.

    @{"Défilement auto      " LINK "Auto scroll"}
    @{"Créer copie          " LINK "Backup"}
    @{"Sauver icône         " LINK "Save icon"}
    @{"Tirer pistes         " LINK "Pull lines"}
    @{"Nom complet          " LINK "Full name"}
    @{"Coordonnées relatives" LINK "Relative coordinates"}
    @{"Afficher grille      " LINK "Display grid"}
    @{"Vue                  " LINK View}
    @{"Affichage            " LINK "Display"}
    @{"Dimensions document  " LINK "Document size"}
    @{"Préférences démarrage" LINK "Startup prefs"}
@ENDNODE
@NODE "Auto scroll" "Menu Préférences/Défilement auto"
@TOC Preferences

    Quand ce menu est marqué, si le curseur arrive à une bordure
    de la fenêtre de travail, le défilement du contenu de la
    feuille de travail se fait automatiquement s'il y a lieu.

    Il n'y a @{I}pas de raccourci clavier@{UI} pour cette fonction.
@ENDNODE
@NODE "Backup" "Menu Préférences/Créer copie"
@TOC Preferences

    Quand ce menu est marqué, lors de la sauvegarde, l'ancienne version
    est sauvegardée avec l'extension "@{B}.bis@{UB}" à la fin du nom.

    @{I}Voir aussi :@{UI} fonction @{"SAVECOPY" LINK SAVECOPY}.

    Il n'y a @{I}pas de raccourci clavier@{UI} pour cette fonction.
@ENDNODE
@NODE "Save icon" "Menu Préférences/Sauver icône"
@TOC Preferences

    Si ce menu est marqué une icône est créée lors de la sauvegarde
    du texte. Le nom du programme figure dans le champ TOOL-TYPES.
    L'icône utilisée est l'icône "Projet" par défaut, stockée dans
    le répertoire ENV:.

    @{I}Voir aussi :@{UI} fonction @{"SAVEICON" LINK SAVEICON}.

    Il n'y a @{I}pas de raccourci clavier@{UI} pour cette fonction.
@ENDNODE
@NODE "Pull lines" "Menu Préférences/Tirer pistes"
@TOC Preferences

    Si ce menu est marqué, lors du déplacement d'un ou plusieurs
    composants à l'aide la souris, les pistes connectées à ces
    composants seront également déplacés. Attention : cette
    opération n'a lieu qu'après avoir lâché ces composants à
    leur emplacement de destination.

    Les pistes ne sont tirées que si une de leur extrémité est située
    dans le trou de perçage d'une pastille qui est déplacée (Version 1.02b).

    @{I}Voir aussi :@{UI} fonction @{"SETPULL" LINK SETPULL}.

    @{I}Raccourci clavier :@{UI} AMIGA-F ou F
@ENDNODE
@NODE "Full name" "Menu Préférences/Nom complet"
@TOC Preferences

    Ce menu permet d'afficher le nom complet du document dans la
    @{"barre de titre" LINK "Barre de titre"}, s'il est marqué. S'il ne l'est pas, le nom
    est affiché sans le chemin, ceci permet d'obtenir les
    indications qui suivent, les coordonnées du curseur notamment,
    quand la fenêtre n'est pas suffisamment large ou quand le
    nom complet est très long (répertoires et sous répertoires
    multiples).

    Il n'y a pas de raccourci clavier pour cette fonction.
@ENDNODE
@NODE "Relative coordinates" "Menu Préférences/Coordonnées relatives"
@TOC Preferences

    Ce menu permet de travailler avec une origine (point de coordonnées
    nulles) choisie. L'origine par défaut est le coin supérieur gauche
    de la fenêtre de travail.
    Après avoir sélectionné ce menu, il faut cliquer avec le bouton
    gauche de la souris sur la nouvelle origine que vous souhaitez
    établir. Si le menu @{"Menu Dessin/Aligner sur grille" LINK "Snap on grid"} est marqué
    le point le plus proche sur la grille sera choisi. Si vous souhaitez
    annuler l'opération, cliquez sur le bouton droit de la souris.

    Pour revenir au choix de l'origine par défaut, sélectionnez à
    nouveau ce menu (il sera alors démarqué).

    Il n'y a pas de raccourci clavier pour cette fonction.
@ENDNODE
@NODE "Display grid" "Menu Préférences/Afficher grille"
@TOC Preferences

    Si ce menu est marqué, une grille est affichée sur l'écran.
    Le pas utilisé est celui défini dans le menu @{"Dessin/Pas grille" LINK "Grid size"}.
    L'écran est mis à jour après l'appel du menu.

    Il n'y a pas de raccourci clavier pour cette fonction.
@ENDNODE
@NODE View "Menu Préférences/Vue"
@TOC Preferences

    L'appel de ce menu entraîne l'ouverture d'une requête qui permet
    de choisir quels sont les éléments et faces affichés à l'écran,
    ainsi que le point de vue.

    Vous pouvez ainsi choisir d'afficher ou non :
	- le côté cuivre
	- le côté composants (tous les objets qui ont été placés sur
	l'une de ces faces)
	- la sérigraphie
	- les réseaux (le chevelu)
    Enfin vous pouvez choisir la face depuis laquelle vous voyez le
    circuit (face cuivre ou face composants).

    @{I}Voir aussi :@{UI} fonction @{"VIEW" LINK VIEW}.

    @{I}Raccourci clavier :@{UI} AMIGA-H ou H
@ENDNODE
@NODE "Display" "Menu Préférences/Affichage"
@TOC Preferences

    Cet ensemble de menus permet de choisir les caractéristiques
    de l'affichage, particulièrement l'échelle du zoom.
    Le coefficient de zoom peut être réglé par l'utilisateur ou
    par l'un des menus suivants dans une plage de 25% à 1000%.

    Un coefficient égal à @{B}100%@{UB} correspond à une vue normale (@{B}échelle 1@{UB}).


    @{"Hauteur écran  " LINK "Full height"}
    @{"Largeur écran  " LINK "Full width"}
    @{"Échelle normale" LINK "Normal scale"}
    @{"Zoom boîte     " LINK "Zoom box"}
    @{"Recentrer      " LINK "Center on point"}
    @{"Doubler échelle" LINK "Zoom in"}
    @{"Diviser échelle" LINK "Zoom out"}
    @{"Saisie échelle " LINK "Numeric zoom"}

    @{I}Voir aussi :@{UI} fonction @{"ZOOM" LINK ZOOM}.
@ENDNODE
@NODE "Full height" "Menu Préférences/Affichage/Hauteur écran"
@TOC Display

    Quand ce menu est appelé, le facteur de zoom est choisi de
    façon à ce que le document puisse être visualisé à l'écran
    sur toute sa hauteur.

    @{I}Voir aussi :@{UI} fonction @{"ZOOM" LINK ZOOM}.

    @{I}Raccourci clavier :@{UI} AMIGA-_ ou _
@ENDNODE
@NODE "Full width" "Menu Préférences/Affichage/Largeur écran"
@TOC Display

    Quand ce menu est appelé, le facteur de zoom est choisi de
    façon à ce que le document puisse être visualisé à l'écran
    sur toute sa largeur.

    @{I}Voir aussi :@{UI} fonction @{"ZOOM" LINK ZOOM}.

    @{I}Raccourci clavier :@{UI} AMIGA-\ ou \
@ENDNODE
@NODE "Normal scale" "Menu Préférences/Affichage/Échelle normale"
@TOC Display

    Ce menu permet de ramener le facteur de zoom à 100%.

    @{I}Voir aussi :@{UI} fonction @{"ZOOM" LINK ZOOM}.

    @{I}Raccourci clavier :@{UI} AMIGA-N ou N
@ENDNODE
@NODE "Zoom box" "Menu Préférences/Affichage/Zoom boîte"
@TOC Display

    Ce menu permet de définir une zone qui sera affichée dans la
    totalité de la fenêtre. Après avoir appelé ce menu, vous devez
    sélectionner la zone à afficher à l'aide du bouton gauche de
    la souris : cliquez sur un coin de la zone désirée, puis, tout
    en maintenant le bouton de la souris appuyé, déplacez le
    curseur dans le coin opposé et relâchez le bouton. Si la zone
    définie est très petite, le facteur de zoom sera limité à
    5000, et la zone sera donc agrandie.

    L'appui sur une touche du clavier ou sur le bouton droit
    de la souris entraîne l'annulation de cette fonction.

    @{I}Voir aussi :@{UI} fonction @{"ZOOM" LINK ZOOM}.

    @{I}Raccourci clavier :@{UI} AMIGA-( ou (
@ENDNODE
@NODE "Center on point" "Menu Préférences/Affichage/Recentrer"
@TOC Display

    Ce menu permet de recentrer l'affichage sur un point, sans
    changer le facteur de zoom. Cliquez simplement sur le nouveau
    centre à l'aide du bouton gauche de la souris pour définir
    ce point. un appui sur un autre bouton annule l'opération.

    @{I}Voir aussi :@{UI} fonction @{"ZOOM" LINK ZOOM}.

    @{I}Raccourci clavier :@{UI} AMIGA-) ou )
@ENDNODE
@NODE "Zoom in" "Menu Préférences/Affichage/Doubler échelle"
@TOC Display

    Ce menu permet de doubler le facteur de zoom, celui-ci est
    cependant limité à 5000.

    @{I}Voir aussi :@{UI} fonction @{"ZOOM" LINK ZOOM}.

    @{I}Raccourci clavier :@{UI} AMIGA-[ ou [
@ENDNODE
@NODE "Zoom out" "Menu Préférences/Affichage/Diviser échelle"
@TOC Display

    Ce menu permet de diviser par 2 le facteur de zoom, celui-ci
    est cependant limité à 10 au minimum.

    @{I}Voir aussi :@{UI} fonction @{"ZOOM" LINK ZOOM}.

    @{I}Raccourci clavier :@{UI} AMIGA-] ou ]
@ENDNODE
@NODE "Numeric zoom" "Menu Préférences/Affichage/Saisie échelle"
@TOC Display

    L'appel de ce menu entraîne l'ouverture d'une requête dans
    laquelle vous pouvez spécifier un facteur de zoom (compris
    entre 10 et 5000).

    @{I}Voir aussi :@{UI} fonction @{"ZOOM" LINK ZOOM}.

    Il n'y a pas de raccourci clavier pour cette fonction.
@ENDNODE
@NODE "Document size" "Menu Préférences/Dimensions document"
@TOC Preferences

    Ce menu permet de définir la largeur et la hauteur de la fenêtre
    de travail. Ces dimensions doivent être spécifiées en millimètres
    avec une précision d'un millième.

    Exemples: 100 donne 100000 millèmes de millimètres (100 mm, 10 cm)
	      120.250 donne 120250 millièmes de millimètres (12,0250 cm).

    @{I}Voir aussi :@{UI} fonction @{"DIMBOARD" LINK DIMBOARD}.

    Il n'y a pas de raccourci clavier pour cette fonction.
@ENDNODE
@NODE "Function keys" "Menu Préférences/Touches de fonction"

    Ce menu permet de programmer les touches de fonction. Il est
    apparu dans la version 2.04 du programme. Pour sauver la
    configuration, utilisez le bouton Sauver (fichier AmiPCB.keys).

    À noter que les définitions des autres touches (définies à
    l'aide de la fonction MAP) sont aussi sauvées dans le fichier
    AmiPCB.keys.
@ENDNODE
@NODE "Startup prefs" "Menu Préférences/Préférences démarrage"
@TOC Preferences

    Ce menu permet l'ouverture d'une requête à l'aide de la @{"gtlayout.library" LINK GTLAYOUT}.
    Celle-ci possède les onglets suivants :
	@{"Écran    " LINK PrefsEcran}
	@{"Affichage" LINK PrefsAffichage}
	@{"Programme" LINK PrefsProgramme}
	@{"Objets   " LINK PrefsObjets}
	@{"Palette  " LINK Palette}  (si l'écran utilisé est celui de AmiPCB)

    Les choix effectués peuvent être annulés, sauvegardés ou simplement
    utilisés pour la session en cours (ils seront pris en compte lorsque
    le menu @{"Autre document" LINK "Other document"} sera utilisé).
    Si les réglages sont sauvés, le fichier AmiPCB.prefs sera mis à
    jour en fonction des nouveaux réglages.

    Les noms des menus et les macros qui ont été définis dans les menus
    Scripts et Macros sont sauvés lors de l'opération de sauvegarde des
    préférences.
@ENDNODE
@NODE PrefsEcran "Menu Préférences/Préférences démarrage/Écran"
@TOC "Startup prefs"

    Cet onglet permet de définir si l'écran utilisé est celui de AmiPCB
    ou s'il s'agit de celui du Workbench. Si c'est celui de AmiPCB qui
    est utilisé, vous pouvez choisir le mode d'écran (requête asl.library).
    Vous pouvez également choisir une police qui sera utilisée dans les
    requêtes (messages d'erreur, demandes diverses).

    Enfin vous pouvez spécifier (dans la partie inférieure) les dimensions
    par défaut du document qui sera ouvert lors de l'utilisation du menu
    @{"Autre document" LINK "Other document"}.
@ENDNODE
@NODE PrefsAffichage "Menu Préférences/Préférences démarrage/Affichage"
@TOC "Startup prefs"

    Cet onglet permet le réglage des dimensions de la fenêtre utilisée
    par défaut (si aucun typon n'est chargé au démarrage), ainsi que
    de définir quelles faces seront affichées, et de quel point de
    vue (côté cuivre ou côté composant). Le bouton "Dimensions actuelles"
    permet de récupérer les réglages en cours.
@ENDNODE
@NODE PrefsProgramme "Menu Préférences/Préférences démarrage/Programme"
@TOC "Startup prefs"

    Cet onglet permet de positionner diverses options au lancement
    du programme :
	- @{"Défilement automatique" LINK "Auto scroll"}
	- @{"Affichage grille" LINK "Display grid"}
	- @{"Alignement sur grille" LINK "Snap on grid"}
	- @{"Taille grille" LINK "Grid size"}
	- @{"Pas curseur" LINK "Cursor step"}
	- Placement des requêtes: centrées sur la position de la souris,
	    ou centrées dans la fenêtre de travail.
	- @{"Multisélection" LINK Multiselection}
	- @{"Créer copie" LINK Backup}
	- @{"Sauver icône" LINK "Save icon"}
	- @{"Tirer pistes" LINK "Pull lines"}
	- @{"Nom complet" LINK "Full name"}
	- @{"Tracé orthogonal" LINK Orthogonal}
	- @{"Tracé continu" LINK Continuous}
@ENDNODE
@NODE PrefsObjets "Menu Préférences/Préférences démarrage/Objets"
@TOC "Startup prefs"

    Cet onglet permet divers réglages par défaut du programme :
    - forme et dimensions des pastilles qui seront placées à l'aide du
    menu @{"Dessin/Placer pastille" LINK "Place pad"}.
    - largeur des pistes (menu @{"Dessin/Placer piste" LINK "Place track"})
    - échelles verticale et horizontale des textes, ainsi que largeur du
    trait (menu @{"Dessin/Placer texte" LINK "Place text"}).
@ENDNODE
@NODE "Palette" "Menu Préférences/Préférences démarrage/Palette"
@TOC "Startup prefs"

    Cette fonction permet de choisir les couleurs de l'écran utilisé par AmiPCB.
    À noter que ces couleurs sont sauvées dans le fichier de configuration.
    Le progamme n'utilise que 16 couleurs.

    Le programme utilise normalement le vert pour dessiner les pistes et les
    pastilles du côté cuivre, le rouge pour dessiner les pistes et les pastilles
    du côté composants, le bleu ciel pour dessiner la sérigraphie, le jaune
    pour dessiner les pastilles double face. Les liaisons définissant le
    chevelu sont représentées en orange, la grille est en blanc, ainsi que
    les éléments sélectionnés. Si le programme est lancé sur l'écran du
    Workbench il tentera de trouver les couleurs les plus proches dont il
    a besoin dans la palette du Workbench, sans modifier celle-ci. Si vous
    travaillez avec peu de couleurs, les résultats peuvent être décevants,
    il faut alors utiliser un écran propre à AmiPCB (voir @{"PUBSCREEN" LINK Lancement}).

    Les couleurs 0 à 3 sont utilisées par le système pour dessiner
    les fenêtres, les menus, boutons, etc...
@ENDNODE
@NODE "Scripts" "Menu Scripts"
@TOC Menus

    Cette série de menus est dédiée aux @{"scripts ARexx" LINK Script}.

    @{"Appel script" LINK "Call script"}       Appel d'un script ARexx choisi.
    @{"ARexx...    " LINK "ARexx..."}       Appel (programmable) de 20 scripts.

@ENDNODE
@NODE "Macros" "Menu Macros"
@TOC Menus

    Cette série de menus est dédiée aux @{"macro-commandes" LINK "Ecriture commandes"}.
    Elle permet l'ajout de menus programmables par l'utilisateur, ceux-ci
    sont sauvés lors d'une opération de @{"sauvegarde des préférences" LINK "Startup prefs"}.

    @{"Mode direct   " LINK Direct}       Saisie, exécution d'une ligne de commande.
    @{"Ajouter menu  " LINK "Add menu"}       Ajout d'un article de menu
    @{"Éditer label  " LINK "Edit label"}       Édition d'une entrée de menu
    @{"Éditer macro  " LINK "Edit macro"}       Édition de la macro associée à un menu
    @{"Supprimer menu" LINK "Remove menu"}       Suppression d'un ou de tous les menus
@ENDNODE
@NODE "Add menu" "Menu Macros/Ajouter menu"
@TOC Macros

    Ce menu permet l'ajout de menus définis par l'utilisateur.
    Pour ajouter une nouvelle entrée à ce menu, il suffit de
    sélectionner le menu "Ajouter menu": le logiciel ouvre
    alors une boîte de requête pour demander quelle est la
    macro commande à associer à ce nouveau menu. Vous pouvez
    alors saisir n'importe quelle expression utilisant toutes
    les commandes ARexx définies par AmiPCB, y compris l'appel
    d'un script ARexx en utilisant la fonction CALL.
    Si vous validez votre saisie, le logiciel vous demande
    ensuite quel est le nom à associer à ce menu, entrez
    alors un nom définissant le mieux ce que la macro ou
    le script va faire. La prochaine fois que vous allez
    sélectionner le menu, ce nom va apparaître en fin de
    liste, si vous le sélectionnez la commande que vous
    avez défini précédemment sera exécutée.

    ATTENTION: si vous essayez de définir un menu possédant un
    nom ou une macro identique à ceux d'un des menus déjà définis,
    votre définition ne sera pas ajoutée à la liste existante.

    Pour définir une barre horizontale de séparation, ne donnez
    rien dans la requête de macro commande (Validez simplement),
    puis entrez la définition BAR dans la requête demandant le
    nom du menu.
@ENDNODE
@NODE "Edit label" "Menu Macros/Éditer label"
@TOC Macros

    Ce menu permet de modifier l'intitulé d'un menu défini par
    l'utilisateur. Il suffit de sélectionner ce menu puis de
    cliquer sur le label du menu à modifier dans la fenêtre qui
    s'ouvre ensuite pour réaliser cette opération.

    Spécifiez le label "BAR" pour obtenir une barre de séparation
    entre des menus successifs.
@ENDNODE
@NODE "Edit macro" "Menu Utilisateur/Éditer macro"
@TOC Macros

    Ce menu permet de modifier la macro-commande associée à un
    menu défini par l'utilisateur. Il suffit de sélectionner ce
    menu puis de cliquer sur le label du menu à modifier dans
    la fenêtre qui s'ouvre ensuite pour réaliser cette opération.

    Les @{"macro-commandes" LINK "Ecriture commandes"} peuvent utiliser toutes les @{"fonctions" LINK Fonctions}
    ARexx disponibles. Pour appeler un @{"script" LINK Script} ARexx, utilisez la
    fonction @{"CALL" LINK CALL}.
@ENDNODE
@NODE "Remove menu" "Menu Utilisateur/Supprimer menu"
@TOC Macros

    Ce menu permet de supprimer l'un des menus précédemment
    définis, s'il en existe. Il suffit de cliquer sur le
    nom du menu qui vous intéresse, dans la fenêtre ouverte
    après avoir sélectionné ce menu, pour que l'opération
    soit effectuée. Cliquez dans le bouton de fermeture de
    la fenêtre si vous désirez annuler l'opération.
@ENDNODE
@NODE "Direct" "Menu Macros/Mode direct"
@TOC Macros

    Ce menu permet la saisie d'une @{"macro-commande" LINK "Ecriture commandes"}, puis son exécution.

    Vous pouvez programmer les touches de fonction combinées avec ou
    sans les touches Shift, Alt et Ctrl pour obtenir des macros préprogrammées
    (voir @{"touches de fonction" LINK "Touches fonction"}).

    Vous pouvez provoquer l'affichage du résultat de la commande en
    faisant commencer le texte spécifiant cette commande par le signe
    égal (=).
    @{I}Exemple:@{UI}
      =4*95	  affiche le résultat de la multiplication (4 fois 95)
      =FIRSTSEL   affiche le numéro du premier objet sélectionné

    @{I}Attention:@{UI} l'opération exécutée sous le contrôle d'une macro ne peut être
    annulée (menu @{"Édition/Restaurer" LINK Undo}), à moins d'y utiliser la fonction @{"SAVEALL" LINK SAVEALL}.

    @{I}Raccourci clavier :@{UI} AMIGA-; ou ;

    @{I}Voir aussi:@{UI} fonctions @{"EXEC" LINK EXEC}, @{"MAP" LINK MAP}.

    @{I}Appel ARexx:@{UI} MENU("Mode direct")         Attention: espace "solide"
	    (ALT-ESPACE) entre Mode et direct.
@ENDNODE
@NODE "Call script" "Menu Macros/Appel script"
@TOC Scripts

    Ce menu permet la saisie d'une @{B}commande ARexx@{UB} (donnez le nom du @{"script" LINK Script},
    l'extension ".AmiPCB" n'est pas obligatoire).
    Si vous validez cette requête avec une chaîne vide la requête de fichier
    est ouverte afin de choisir le script à exécuter.

    @{I}Raccourci clavier :@{UI} AMIGA-, ou ,

    @{I}Voir aussi :@{UI} fonction @{"CALL" LINK CALL}.

    @{I}Appel ARexx:@{UI} MENU("Appel script")       Attention: espace "solide"
	    (ALT-ESPACE) entre Appel et script.
@ENDNODE
@NODE "ARexx..." "Menu Macros/ARexx..."
@TOC Scripts

    Ces 20 menus servent à définir 20 commandes pouvant être lancés par la
    sélection du menu correspondant.
    Lors du premier appel du menu, l'utilisateur doit définir sa commande,
    en donnant le nom du script à exécuter(sans le chemin).
    Les appels qui suivront permettent alors l'appel du @{"script" LINK Script} défini.
    Le nom du script apparaît ensuite dans le menu. Les 20 définitions peuvent
    être sauvegardées dans le fichier "AmiPCB.prefs", et rechargées
    automatiquement lors de l'appel du programme.
    Ces menus peuvent être redéfinis en appuyant sur l'une des touches
    SHIFT lors de la sélection du menu.

    À noter que @{B}l'édition du script@{UB} défini peut être faite de façon
    automatique dans une nouvelle fenêtre @{I}en appelant le menu tout en
    maintenant la touche CTRL appuyée@{UI} (le nom doit naturellement avoir
    été défini auparavant). Le programme lance alors l'exécution du script
    ARexx @{B}EditScript.AmiPCB@{UB} en lui passant le nom de ce script comme
    argument. Ce script (EditScript) doit être adapté à l'éditeur que
    vous utilisez et à votre installation, il est écrit pour mon éditeur de
    texte Amitex.

    La commande doit comporter le nom du script à exécuter (toujours sans
    l'extension ".AmiPCB"). Le nom ne peut compter que 11 caractères au maximum.
    Il n'est pas possible de transmettre de paramètres au script.
    Les communications avec ARexx se font grâce au @{"port" LINK Port} AmiPCB.0
    (ou AmiPCB.1, AmiPCB.2...AmiPCB.999 si plusieurs tâches sont exécutées en
    même temps). Utilisez la commande @{B}port=ADDRESS()@{UB} pour connaître le nom
    du port, si nécessaire.

    @{I}Raccourcis clavier :@{UI} AMIGA-0 à AMIGA-9

    @{I}Voir aussi :@{UI} fonction @{"CALL" LINK CALL}.

    @{I}Pas d'appel ARexx possible@{UI} pour ces menus, utilisez la fonction CALL.
@ENDNODE
@NODE "Port" "Port ARexx"
@TOC Macros

    Le programme ouvre normalement un port de communication avec l'interpréteur
    ARexx lors de son lancement, ce port s'appelle @{B}AmiPCB.0@{UB}. Si le programme est
    lancé plusieurs fois ou si une nouvelle fenêtre est ouverte, le port est appelé
    AmiPCB.1 pour la seconde tâche, puis AmiPCB.2 pour la suivante, et ainsi de suite
    jusqu'à AmiPCB.999.
@ENDNODE
@NODE "Keys" "Touches - Raccourcis clavier"
@TOC MAIN

    Rappel: la plupart des raccourcis permettant l'accés aux menus peuvent
    être obtenus sans utiliser la touche Amiga de droite.

    Certaines touches donnent accès à des fonctions :

    @{i}* (clavier numérique)@{ui} redessine l'écran
    @{i}ENTER, RETURN@{ui} permet l'ouverture de la requête d'édition d'un
	objet s'il y en a un qui est sélectionné, équivalent à un
	clic sur le bouton gauche de la souris sinon (mode placement)
    @{i}BACKSPACE@{ui} annulation de la dernière modification
    @{B}FLÈCHES déplacement curseur@{UB}

    @{I}FLÈCHES DE DÉPLACEMENT@{UI} (GAUCHE / DROITE / HAUT / BAS) :
    déplacement des éléments sélectionnés, par millièmes de millimètres
    ou par la taille de la grille si la touche SHIFT est aussi appuyée.

    @{I}ALT FLÈCHE:@{UI}
    Déplacement d'une extrémité de la ligne sélectionnée par pixel ou par
    pas de la grille si la touche SHIFT est sélectionnée.

    @{I}CONTROL FLÈCHE:@{UI}
    Déplacement d'une extrémité de la ligne sélectionnée par pixel ou par
    pas de la grille si la touche SHIFT est sélectionnée.

    @{I}CTRL@{UI} permet de désélectionner des éléments, si utilisée en même
    temps que le bouton gauche de la souris.

    @{i}ESPACE@{ui} passe en mode placement de piste.
    @{i}ALT-ESPACE@{ui} passe en mode placement de réseau.

    @{I}TAB@{UI} copie (clonage) des éléments sélectionnés.
    @{i}DEL@{ui} suppression du ou des objets sélectionnés
    @{i}HELP@{ui} lance l'affichage du guide (sous AmigaGuide)
@ENDNODE
@NODE "Touches fonction" "Utilisation des touches de fonction"
@TOC Macros

    Les dix touches de fonction peuvent être associées à des séquences de
    commandes comprenant les appels aux fonctions que vous aurez définis. Ces
    séquences programmées sont sauvegardées dans le fichier "s:AmiPCB.keys",
    à l'aide du menu @{"Préférences/Startup prefs" LINK Keys}. Celles-ci seront alors
    rechargées lors de chaque lancement du programme.

    La redéfinition de ces touches peut se faire en utilisant le menu
    @{"Préférences/Touches de fonction" LINK "Function keys"}.
@ENDNODE
@NODE "GTLAYOUT" "gtlayout.library"
@TOC MAIN

    L'auteur de la bibliothèque @{B}gtlayout.library@{UB} est @{B}Olaf `Olsen' Barthel@{UB}.

    Elle est disponible sur Aminet (dev/gui), sources comprises.
@ENDNODE
@NODE "Ecriture commandes" "Écriture d'une ligne de commande(s)"
@TOC Macros

    Les macro-commandes peuvent être exécutées en mode local ou bien par
    l'intermédiaire d'un @{"script ARexx" LINK Script}. Vous pouvez vous reporter aux scripts
    donnés en exemple, dans le répertoire ARexx. Ceux-ci doivent posséder
    l'extension ".amiPCB" à leur nom.
    Chacune de ces macro-commandes peut appeler l'une des fonctions
    ARexx, ou même plusieurs. Certaines d'entre elles nécessitent un ou
    plusieurs arguments, enfin la plupart d'entre elles retournent un résultat.
    Le programme permet aussi de manipuler des @{"variables" LINK Variable} (des types numérique
    ou chaîne de caractères). De plus vous pouvez définir vos propres fonctions.
    L'appel d'une fonction se fait en donnant son nom, suivi d'un ou
    plusieurs arguments, entourés de parenthèses, éventuellement séparés par
    des virgules.

    Ces expressions peuvent comporter les @{"opérateurs mathématiques" LINK Opérateurs} disponibles.

    Enfin il est à noter que vous pouvez placer un commentaire dans une macro
    comportant une expression mathématique en utilisant l'apostrophe vue
    plus haut.
    Exemple:
    DELETE(FIRSTSEL) ' Effacement du premier élément sélectionné

    Enfin, vous pouvez placer plusieurs appels de fonctions sur une
    même ligne, en les séparant par deux points.
    @{i}Exemple:@{ui}
	SETSCALE(FIRSTSEL,100,200):SETSCALE(NEXTSEL(FIRSTSEL),100,200)
@ENDNODE
@NODE "Opérateurs" "Les opérateurs mathématiques disponibles"

    Les opérateurs mathématiques classiques sont bien sûr disponibles :
    opérateur			signe	  priorité
    élévation à une puissance :   ^	     10
    division :			  /	      9
    multiplication :		  *	      9
    modulo :			  %	      9
    addition :			  +	      8
    soustraction :		  -	      8
    ET logique :		  &	      6
    OU exclusif :		  ?	      5
    OU logique :		  |	      4
    affectation :		  =	      2

    Ce dernier opérateur (=) peut être utilisé pour affecter les @{"variables" LINK Variable}.
    Ex : A=2, affecte la valeur 2 à la variable A.
    Il est à noter que l'écriture A=B=3 n'est pas admise, elle entraînera
    un message d'erreur "Affectation impossible". Utilisez plutôt l'écriture
    A=3:B=3

    Autres opérateurs :
    décalage à gauche : <<
    décalage à droite : >>
    Ces deux opérateurs ont une priorité égale à 7.
    test supérieur : >		test supérieur ou égal : >=
    test inférieur : <		test inférieur ou égal : <=
    test si différent : <>	test égalité : ==
    Les tests renvoient la valeur 1 s'ils sont vérifiés, 0 dans les
    autres cas. Leur priorité est égale à 3.

    Il existe un opérateur particulier qui en fait n'en est pas un, c'est le
    signe :, celui-ci permet en fait de séparer deux formules (ou davantage)
    afin de pouvoir saisir plusieurs affectations de @{"variables" LINK Variable} dans une même
    fonction. Ainsi vous pouvez saisir A=2:B=3:C=0 dans une seule commande au
    lieu d'en utiliser trois. Le résultat renvoyé est alors celui de la
    dernière opération réalisée (0 dans cet exemple). Cette possibilité peut
    également présenter un intérêt pour une fonction FOR (voir plus loin),
    afin de réaliser de multiples initialisations au début d'une boucle.
@ENDNODE
@NODE "Variable" "Les variables"
@TOC Macros

    Les variables manipulées par AmiPCB peuvent être de deux types:
    @{B}numérique@{UB} ou @{B}chaîne de caractères@{UB}. Le type est choisi lors de
    l'affectation, il ne peut ensuite être changé, à moins de
    réinitialiser cette variable (voir fonction @{"INIT" LINK INIT}).

    Pour affecter une valeur à une variable il suffit de faire suivre
    son nom du signe = et de la valeur à lui affecter.

    Exemples:
    A = 1
    B2 = "chaîne de texte"
    A2 = "Première "+B2     donne "Première chaîne de texte"

    Les @{"chaînes de caractères" LINK "Chaînes de caractères"} doivent être encadrées par des guillemets
    s'il s'agit de constantes. Les @{"valeurs numériques" LINK Nombres} sont limitées aux
    entiers (longs), utilisez ARexx pour manipuler des nombres réels.

    Les noms de variables peuvent comprendre de 1 à 21 caractères, ils
    doivent débuter par une lettre, les caractères suivants pouvant être
    des lettres (accentuées ou non), des nombres ou le caractère _.

    Exemples de noms valides:
    ESSAI
    TYPE_DONNÉE
    LIGNE1

    À noter que le programme convertit normalement les noms de fonctions
    et de variables en majuscules lors de la saisie, aussi n'y aura-t-il
    pas de différence entre deux noms comme variable et VARIABLE (ou même
    Variable), cependant dans un @{"script ARexx" LINK Script}, utilisez de préférence les
    majuscules car les chaînes issues de l'interpréteur ne sont pas
    forcément converties, et le programme différenciera alors les noms
    écrits en minuscules et/ou en majuscules.

    Attention: les variables ne sont pas utilisables directement avec ARexx,
    elles sont internes au programme AmiPCB et l'interpréteur ARexx possède
    ses propres variables. Il est cependant possible de renvoyer une valeur
    de variable à l'interpréteur simplement en donnant son nom:
    @{i}Exemple:@{ui}
    'NOM_VARIABLE'; v=result
    Le contenu de la variable NOM_VARIABLE est ainsi transféré dans
    la variable ARexx v.
    Il est souvent avantageux d'utiliser des variables internes à AmiPCB
    car leur traitement est plus rapide, d'autre part cela peut éviter l'envoi
    de certains messages entre l'interpréteur et le programme, ce qui entraîne
    un gain de vitesse énorme (voir scripts Zoom et Unzoom).
@ENDNODE
@NODE "Nombres" "Les variables numériques"
@TOC Maths

    Les nombres manipulés par AmiPCB sont limités aux nombres entiers.
    Ceux ci sont des entiers longs signés, sur 32 bits. La valeur
    maximale est doc de 2^31-1 (2147483647) et la valeur minimale
    -2^31 (-2147483648). Utilisez les capacités de l'interpréteur
    ARexx pour manipuler des nombres en virgule flottante.
@ENDNODE
@NODE "Chaînes de caractères" "Les chaînes de caractères"
@TOC Variable

    Les chaînes de caractères comprennent un nombre quelconque de
    caractères (théoriquement limité uniquement par la capacité
    mémoire de votre micro-ordinateur), en commençant par les
    chaînes nulles qui ne comprennent aucun caractère. Pour
    définir une chaîne de caractères, vous devez encadrer son
    contenu par deux guillemets. Si cette chaîne comprend
    elle-même un ou plusieurs guillemets, ceux-ci doivent être
    doublés.

    Exemples:
    "Ceci est une chaîne de caractères"
    ""
    "C'est un guillemet "" !"
@ENDNODE
@NODE "Script" "Structure des scripts ARexx"

    Les scripts ARexx sont des fichiers ASCII, se conformant à un
    format permettant leur interprétation par ce logiciel.
    Ils peuvent inclure toutes les fonctions spécifiques à ARexx
    et à ses bibliothèques (reportez-vous à leurs documentations
    pour plus de précisions), ainsi que toutes les commandes
    supportées par le programme AmiPCB (une centaine, plus les
    fonctions éventuellement définies par vos soins).

    @{B}Emplacement@{UB}
    Ces scripts doivent se situer soit dans le répertoire AmiPCB/ARexx.
    Il est conseillé de les nommer avec l'extension .AmiPCB, mais ce
    n'est pas obligatoire.

    @{B}Format@{UB}
    Ces scripts doivent toujours commencer par une remarque
    incluse entre les caractères /* et */, comme en langage C.

    Les commandes AmiPCB doivent impérativement figurer en
    majuscules. Ce sont les mêmes que celles qui sont utilisées
    en @{"mode local" LINK Direct}, cependant leur analyse par ARexx
    nécessite quelques précautions, ainsi ces commandes doivent
    impérativement être encadrées par des apostrophes (') ou des
    guillemets, afin de les différencier des fonctions internes
    à ARexx.

    @{B}Exemple@{UB}
    La structure suivante est recommandée pour ces scripts:

/* Ce fichier vous donne un exemple de structure possible
pour un fichier de macros appelé par AmiPCB, par le menu Macros */

options results     /* indispensable pour récupérer le résultat des macros */

signal on error     /* pour l'interception des erreurs */
signal on syntax

/* votre programme doit être situé dans cette zone */

exit

/* Traitement des erreurs, interruption du programme */
syntax:
erreur=RC
'MESSAGE("Erreur de syntaxe"+CHR(10)+"en ligne 'SIGL'"+CHR(10)+"'errortext(erreur)'")'
exit

error:
'MESSAGE("Erreur en ligne 'SIGL'")'
exit

    Cet exemple existe déjà prêt dans le répertoire ARexx, sous
    le nom @{B}EmptyScript.AmiPCB@{UB}.
@ENDNODE
@NODE "Fonctions" "Liste des fonctions ARexx"
@TOC Macros

    Pour chacune des fonctions, les coordonnées doivent être exprimées
    en millièmes de millimètres, à l'aide de nombre entiers.
    Exemple : soit à passer en argument les coordonnée du point situé
	au point d'abcisse 10 cm et d'ordonnée 5,5 cm, les coordonnées
	devront être passées sous la forme 100000,55000.

    @{"ABS     " LINK ABS} valeur absolue d'un nombre
    @{"ARC     " LINK ARC} trace un arc de cercle
    @{"ARRAYDIM" LINK ARRAYDIM} lecture du nombre d'éléments d'un tableau
    @{"ASC     " LINK ASC} code ASCII d'un caractère
    @{"ASKNUM  " LINK ASKNUM} saisie d'un nombre
    @{"ASKTEXT " LINK ASKTEXT} saisie d'une chaîne de caractères
    @{"BLINK   " LINK BLINK} clignotement d'un objet
    @{"BOARDS  " LINK BOARDS} nombre de fenêtres, noms des ports ARexx
    @{"BOX     " LINK BOX} trace un rectangle
    @{"CALL    " LINK CALL} appel d'un script ARexx
    @{"CHR     " LINK CHR} renvoie le caractère possédant le code ASCII spécifié
    @{"CLIPPATH" LINK CLIPPATH} choix du tiroir contenant les clips
    @{"CLIPUNIT" LINK CLIPUNIT} choix de la zone mémoire utilisée pour les opérations couper/coller
    @{"CLOSE   " LINK CLOSE} ferme la fenêtre texte spécifiée
    @{"COL     " LINK COL} numéro de colonne où est situé un objet
    @{"COORDS  " LINK COORDS} lecture des coordonnées d'un objet
    @{"COPY    " LINK COPY} copie d'un ou plusieurs objets en mémoire
    @{"CURSMODE" LINK CURSMODE} place le curseur dans le mode spécifié
    @{"CURSTEP " LINK CURSTEP} fixe le pas de déplacement du curseur
    @{"DATE    " LINK DATE} renvoie la date actuelle
    @{"DEF     " LINK DEF} définition d'une nouvelle fonction
    @{"DELARRAY" LINK DELARRAY} suppression d'un tableau de données
    @{"DELETE  " LINK DELETE} suppression d'un ou plusieurs objets
    @{"DIMARRAY" LINK DIMARRAY} dimensionnement d'un tableau de données
    @{"DIMBOARD" LINK DIMBOARD} dimensionne la fenêtre
    @{"DRAW    " LINK DRAW} tracé d'une ligne
    @{"EDIT    " LINK EDIT} appel de la requête d'édition
    @{"ELLIPSE " LINK ELLIPSE} tracé d'une ellipse ou d'un cercle
    @{"ENDCOL  " LINK ENDCOL} numéro de colonne de fin d'une ligne
    @{"ENDLINE " LINK ENDLINE} numéro de ligne de fin d'une ligne
    @{"EXEC    " LINK EXEC} interprétation d'une chaîne de caractères
    @{"FILENAME" LINK FILENAME} nom du fichier complet
    @{"FILEPART" LINK FILEPART} nom du fichier
    @{"FINDOBJ " LINK FINDOBJ} test présence objet
    @{"FIRSTSEL" LINK FIRSTSEL} renvoie le numéro du premier objet sélectionné
    @{"FONTNAME" LINK FONTNAME} renvoie le nom de la fonte de caractères utilisée
    @{"FONTSIZE" LINK FONTSIZE} renvoie la taille de la fonte de caractères utilisée
    @{"FOR     " LINK FOR} traitement d'une boucle
    @{"GETARRAY" LINK GETARRAY} retourne la valeur d'un élément de tableau
    @{"GETCOLOR" LINK GETCOLOR} lecture des niveaux d'une couleur
    @{"GETLABEL" LINK GETLABEL} lecture du label associé à un réseau
    @{"GETLINE " LINK GETLINE} définition d'une ligne à l'aide de la souris
    @{"GETNAME " LINK GETNAME} lecture du nom d'un groupe
    @{"GETNET  " LINK GETNET} lecture des réseaux asociés à une pastille
    @{"GETPAD  " LINK GETPAD} lecture du numéro des pastilles d'un réseau
    @{"GETPOINT" LINK GETPOINT} choix d'un point à l'aide de la souris
    @{"GETPOS  " LINK GETPOS} lecture du mode de placement d'un composant
    @{"GETZONE " LINK GETZONE} définition d'une zone à l'aide de la souris
    @{"GROUP   " LINK GROUP} crée un nouveau groupe
    @{"HEIGHT  " LINK HEIGHT} renvoie la largeur d'un objet
    @{"HELP    " LINK HELP} affichage d'une aide AmigaGuide
    @{"HSCALE  " LINK HSCALE} renvoie la valeur de l'échelle horizontale d'un objet
    @{"IF      " LINK IF} test
    @{"INIT    " LINK INIT} initialisation de variables
    @{"LANGUAGE" LINK LANGUAGE} renvoie le nom de la "locale"
    @{"LEN     " LINK LEN} longueur d'une chaîne de caractères
    @{"LINE    " LINK LINE} numéro de ligne où est situé un objet
    @{"LOAD    " LINK LOAD} chargement d'un schéma
    @{"LOADCLIP" LINK LOADCLIP} chargement d'un clip
    @{"LOCK    " LINK LOCK} verrouillage saisies utilisateur
    @{"MAP     " LINK MAP} programmation d'une macro clavier
    @{"MARK    " LINK MARK} marquage d'un ou plusieurs objets
    @{"MARKZONE" LINK MARKZONE} marquage des éléments compris dans la zone spécifiée
    @{"MENU    " LINK MENU} exécution de la fonction associée à un menu
    @{"MESSAGE " LINK MESSAGE} affichage d'un message
    @{"MESURE  " LINK MESURE}  renvoie une dimension de la fenêtre
    @{"MODIF   " LINK MODIF} test modification texte
    @{"MOVE    " LINK MOVE} déplacement d'un objet
    @{"NET     " LINK NET} ajoute une liaison réseau
    @{"NETNUM  " LINK NETNUM} lecture du numéro d'un réseau
    @{"NEWBOARD" LINK NEWBOARD} ouverture d'une nouvelle fenêtre
    @{"NEXTSEL " LINK NEXTSEL} numéro du prochain élément sélectionné
    @{"OBJECTS " LINK OBJECTS} renvoie le nombre d'éléments d'un schéma
    @{"OPEN    " LINK OPEN} ouverture de schéma(s)
    @{"PAD     " LINK PAD} placement d'une pastille
    @{"PADNUM  " LINK PADNUM} lit/fixe le numéro d'une pastille
    @{"PASTE   " LINK PASTE} collage du contenu d'un tampon mémoire
    @{"PCBPATH " LINK PCBPATH} lecture du chemin du programme
    @{"PICKOBJ " LINK PICKOBJ} choix d'un objet à l'aide de la souris
    @{"PIN     " LINK PIN} recherche d'une pastille dans un groupe
    @{"PRINT   " LINK PRINT} impression du schéma
    @{"READDEF " LINK READDEF} lecture de la définition d'une fonction
    @{"READMAP " LINK READMAP} lecture d'une macro clavier
    @{"READTEXT" LINK READTEXT} lecture d'un texte associé à un objet
    @{"REQFILE " LINK REQFILE} choix d'un fichier
    @{"REQLIST " LINK REQLIST} choix d'un élément dans une liste
    @{"REQNUM  " LINK REQNUM} saisie d'un nombre
    @{"REQTEXT " LINK REQTEXT} saisie d'une chaîne de caractères
    @{"REQUEST " LINK REQUEST} affichage d'un message, choix OUI/NON
    @{"RESET   " LINK RESET} réinitialisation de variables
    @{"REXXPORT" LINK REXXPORT} nom du port ARexx
    @{"ROTATE  " LINK ROTATE} rotation d'un objet ou d'un groupe
    @{"SAVE    " LINK SAVE} sauvegarde d'un schéma
    @{"SAVEALL " LINK SAVEALL} sauvegarde du contenu du document en mémoire
    @{"SAVECLIP" LINK SAVECLIP} sauvegarde d'un clip
    @{"SAVECOPY" LINK SAVECOPY} test/choix sauvegarde copie fichier
    @{"SAVEICON" LINK SAVEICON} test/choix sauvegarde avec création icône
    @{"SAVEIFF " LINK SAVEIFF} sauvegarde au format IFF
    @{"SECURITY" LINK SECURITY} détermination d'un nombre de boucles maximum avant débordement
    @{"SELECT  " LINK SELECT} choix d'une option parmi plusieurs
    @{"SETARRAY" LINK SETARRAY} affectation d'une valeur à un élément de tableau
    @{"SETCOLOR" LINK SETCOLOR} fixe une couleur de la palette
    @{"SETFILL " LINK SETFILL} sélection du mode remplissage
    @{"SETGRID " LINK SETGRID} choix du pas de la grille
    @{"SETLABEL" LINK SETLABEL} fixe un label à un réseau
    @{"SETNAME " LINK SETNAME} fixe le nom d'un groupe
    @{"SETNOTE " LINK SETNOTE} fixe le type d'un texte en note
    @{"SETORTHO" LINK SETORTHO} détermine la façon d'effectuer les tracés
    @{"SETPAD  " LINK SETPAD} fixe les caractéristiques d'une pastille
    @{"SETPULL " LINK SETPULL} fixe l'état du menu Tirer pistes
    @{"SETREF  " LINK SETREF} établit l'attribut référence d'un texte
    @{"SETSCALE" LINK SETSCALE} détermination des échelles horizontale et verticale
    @{"SETSIDE " LINK SETSIDE} fixe la face de placement
    @{"SETTEXT " LINK SETTEXT} fixe le texte d'un objet
    @{"SETVAL  " LINK SETVAL} établit l'attribut valeur d'un texte
    @{"SETWIDTH" LINK SETWIDTH} fixe la largeur d'un tracé
    @{"SGN     " LINK SGN} test du signe d'un nombre
    @{"SHEIGHT " LINK SHEIGHT} renvoie la hauteur de l'écran
    @{"SNAPGRID" LINK SNAPGRID} fixe l'état du menu aligner sur grille
    @{"STOBACK " LINK STOBACK} passage de l'écran en arrière-plan
    @{"STOFRONT" LINK STOFRONT} passage de l'écran an avant-plan
    @{"STR     " LINK STR} conversion d'un nombre en chaîne de caractères (décimal)
    @{"SWIDTH  " LINK SWIDTH} renvoie la largeur de l'écran
    @{"SYMMETRY" LINK SYMMETRY} symétrie d'un objet
    @{"TEST    " LINK TEST} test si objet sélectionné
    @{"TIME    " LINK TIME} renvoie l'heure courante
    @{"TITLE   " LINK TITLE} choix du titre affiché dans la fenêtre
    @{"TRIANGLE" LINK TRIANGLE} trace un triangle
    @{"TYPE    " LINK TYPE} renvoie le type d'un objet
    @{"TXHEIGHT" LINK TXHEIGHT} renvoie la hauteur occupée par un texte
    @{"TXWIDTH " LINK TXWIDTH} renvoie la largeur occupée par un texte
    @{"UNLOCK  " LINK UNLOCK} annule le verrouillage des actions utilisateur
    @{"UNMAP   " LINK UNMAP} annulation d'une macro clavier
    @{"UNMARK  " LINK UNMARK} annulation du marquage d'un objet
    @{"VAL     " LINK VAL} conversion d'une chaîne de caractères en nombre
    @{"VERSION " LINK VERSION} numéro de version du programme
    @{"VIEW    " LINK VIEW} fixe le mode d'affichage
    @{"VSCALE  " LINK VSCALE} renvoie la valeur de l'échelle verticale d'un objet
    @{"WHEIGHT " LINK WHEIGHT} renvoie la hauteur totale du plan de travail
    @{"WHILE   " LINK WHILE} boucle tant_que...
    @{"WIDTH   " LINK WIDTH} renvoie la largeur d'un objet
    @{"WINDOW  " LINK WINDOW} dimensionne la fenêtre schéma
    @{"WRITE   " LINK WRITE} placement d'un texte
    @{"WTOBACK " LINK WTOBACK} renvoie la fenêtre active en arrière-plan
    @{"WTOFRONT" LINK WTOFRONT} renvoie la fenêtre active en avant-plan
    @{"WWIDTH  " LINK WWIDTH} renvoie la largeur totale du plan de travail
    @{"ZOOM    " LINK ZOOM} gestion de l'affichage
    @{"Index thématique" LINK "Index thématique"}
@ENDNODE
@NODE "Index thématique" "Classement thématique des fonctions ARexx"
@TOC Fonctions

    @{"  " LINK "Traitement chaînes"} Traitement des @{"chaînes de caractères" LINK "Chaînes de caractères"}
    @{"  " LINK "Placement objets"} Placement de nouveaux objets sur le schéma
    @{"  " LINK "Gestion des objets"} Édition, modification des objets existants
    @{"  " LINK "Gestion blocs"} Fonctions portant sur des blocs d'objets
    @{"  " LINK Maths} Fonctions mathématiques
    @{"  " LINK Interactivité} Fonctions interactives
    @{"  " LINK "Gestion fenêtres"} Gestion des fenêtres
    @{"  " LINK "Gestion préférences"} Gestion des préférences
    @{"  " LINK Divers} Fonctions diverses
@ENDNODE
@NODE "Traitement chaînes" "Fonctions ARexx de traitement des chaînes de caractères"
@TOC Index thématique

    @{"ASC" LINK ASC} code ASCII d'un caractère
    @{"CHR" LINK CHR} renvoie le caractère possédant le code ASCII spécifié
    @{"LEN" LINK LEN} longueur d'une chaîne de caractères
    @{"STR" LINK STR} conversion d'un nombre en chaîne de caractères (décimal)
    @{"VAL" LINK VAL} conversion d'une chaîne de caractères en nombre
@ENDNODE
@NODE "Placement objets" "Fonctions ARexx permettant le placement de nouveaux objets"
@TOC Index thématique

    @{"ARC     " LINK ARC} trace un arc de cercle
    @{"BOX     " LINK BOX} trace un rectangle
    @{"CURSMODE" LINK CURSMODE} place le curseur dans le mode spécifié
    @{"CURSTEP " LINK CURSTEP} fixe le pas de déplacement du curseur
    @{"DELETE  " LINK DELETE} suppression d'un ou plusieurs objets
    @{"DRAW    " LINK DRAW} tracé d'une ligne
    @{"ELLIPSE " LINK ELLIPSE} tracé d'une ellipse ou d'un cercle
    @{"GROUP   " LINK GROUP} crée un nouveau groupe
    @{"NET     " LINK NET} ajoute une liaison réseau
    @{"PAD     " LINK PAD} placement d'une pastille
    @{"PADNUM  " LINK PADNUM} lit/fixe le numéro d'une pastille
    @{"SETFILL " LINK SETFILL} sélection du mode remplissage
    @{"SETORTHO" LINK SETORTHO} détermine la façon d'effectuer les tracés
    @{"SETPAD  " LINK SETPAD} fixe les caractéristiques d'une pastille
    @{"SETPULL " LINK SETPULL} fixe l'état du menu Tirer pistes
    @{"SETSIDE " LINK SETSIDE} fixe la face de placement
    @{"SETWIDTH" LINK SETWIDTH} fixe la largeur d'un tracé
    @{"SNAPGRID" LINK SNAPGRID} fixe l'état du menu aligner sur grille
    @{"TRIANGLE" LINK TRIANGLE} trace un triangle
    @{"UNGROUP " LINK UNGROUP} dissocie un groupe
    @{"WRITE   " LINK WRITE} placement d'un texte
@ENDNODE
@NODE "Gestion blocs" "Fonctions ARexx permettant de gérer les blocs d'objets"
@TOC Index thématique

    @{"CLIPUNIT" LINK CLIPUNIT} choix de la zone mémoire utilisée pour les opérations couper/coller
    @{"COL     " LINK COL} numéro de colonne où est situé le bloc courant (COL(0))
    @{"COPY    " LINK COPY} copie d'un ou plusieurs objets en mémoire
    @{"FIRSTSEL" LINK FIRSTSEL} renvoie le numéro du premier objet sélectionné
    @{"HEIGHT  " LINK HEIGHT} largeur du bloc courant (HEIGHT(0))
    @{"LINE    " LINK LINE} numéro de ligne où est situé le bloc courant (LINE(0))
    @{"LOADCLIP" LINK LOADCLIP} chargement d'un clip
    @{"MARK    " LINK MARK} marquage d'un ou plusieurs objets
    @{"MARKZONE" LINK MARKZONE} marquage des éléments compris dans la zone spécifiée
    @{"NEXTSEL " LINK NEXTSEL} numéro du prochain élément sélectionné
    @{"PASTE   " LINK PASTE} collage du contenu d'un tampon mémoire
    @{"SAVEALL " LINK SAVEALL} sauvegarde du contenu du document en mémoire
    @{"SAVECLIP" LINK SAVECLIP} sauvegarde d'un clip
    @{"TEST    " LINK TEST} test si objet sélectionné
    @{"UNMARK  " LINK UNMARK} annulation du marquage d'un objet
    @{"WIDTH   " LINK WIDTH} renvoie la largeur du bloc courant (WIDTH(0))
@ENDNODE
@NODE "Gestion des objets" "Fonctions ARexx permettant de gérer les objets"
@TOC Index thématique

    @{"BLINK   " LINK BLINK} clignotement d'un objet
    @{"CLIPPATH" LINK CLIPPATH} choix du tiroir contenant les clips
    @{"COL     " LINK COL} numéro de colonne où est situé un objet
    @{"COORDS  " LINK COORDS} lecture des coordonnées d'un objet
    @{"DELETE  " LINK DELETE} suppression d'un ou plusieurs objets
    @{"EDIT    " LINK EDIT} appel de la requête d'édition
    @{"ENDCOL  " LINK ENDCOL} numéro de colonne de fin d'une ligne
    @{"ENDLINE " LINK ENDLINE} numéro de ligne de fin d'une ligne
    @{"FINDOBJ " LINK FINDOBJ} test présence objet
    @{"GETLABEL" LINK GETLABEL} lecture du label associé à un réseau
    @{"GETNAME " LINK GETNAME} lecture du nom d'un groupe
    @{"GETNET  " LINK GETNET} lecture des réseaux asociés à une pastille
    @{"GETPAD  " LINK GETPAD} lecture du numéro des pastilles d'un réseau
    @{"GETPOS  " LINK GETPOS} lecture du mode de placement d'un composant
    @{"GROUP   " LINK GROUP} crée un nouveau groupe
    @{"HEIGHT  " LINK HEIGHT} largeur d'un objet
    @{"HSCALE  " LINK HSCALE} renvoie la valeur de l'échelle horizontale d'un objet
    @{"LINE    " LINK LINE} numéro de ligne où est situé un objet
    @{"MOVE    " LINK MOVE} déplacement d'un objet
    @{"NETNUM  " LINK NETNUM} lecture du numéro d'un réseau
    @{"OBJECTS " LINK OBJECTS} renvoie le nombre d'éléments d'un schéma
    @{"PIN     " LINK PIN} recherche d'une pastille dans un groupe
    @{"READTEXT" LINK READTEXT} lecture d'un texte associé à un objet
    @{"ROTATE  " LINK ROTATE} rotation d'un objet ou d'un groupe
    @{"SETLABEL" LINK SETLABEL} fixe un label à un réseau
    @{"SETNAME " LINK SETNAME} fixe le nom d'un groupe
    @{"SETNOTE " LINK SETNOTE} fixe le type d'un texte en note
    @{"SETPAD  " LINK SETPAD} fixe les caractéristiques d'une pastille
    @{"SETREF  " LINK SETREF} établit l'attribut référence d'un texte
    @{"SETSCALE" LINK SETSCALE} détermination des échelles horizontale et verticale
    @{"SETSIDE " LINK SETSIDE} fixe la face de placement
    @{"SETTEXT " LINK SETTEXT} fixe le texte d'un objet
    @{"SETVAL  " LINK SETVAL} établit l'attribut valeur d'un texte
    @{"SETWIDTH" LINK SETWIDTH} fixe la largeur d'un tracé
    @{"SYMMETRY" LINK SYMMETRY} symétrie d'un objet
    @{"TYPE    " LINK TYPE} renvoie le type d'un objet
    @{"TXHEIGHT" LINK TXHEIGHT} renvoie la hauteur occupée par un texte
    @{"TXWIDTH " LINK TXWIDTH} renvoie la largeur occupée par un texte
    @{"UNGROUP " LINK UNGROUP} dissocie un groupe
    @{"VSCALE  " LINK VSCALE} renvoie la valeur de l'échelle verticale d'un objet
    @{"WIDTH   " LINK WIDTH} renvoie la largeur d'un objet
@ENDNODE
@NODE "Gestion préférences" "Fonctions ARexx de gestion des préférences"
@TOC Index thématique

    @{"CURSTEP " LINK CURSTEP} fixe le pas de déplacement du curseur
    @{"FONTNAME" LINK FONTNAME} nom de la fonte de caractères utilisée
    @{"FONTSIZE" LINK FONTSIZE} taille de la fonte de caractères utilisée
    @{"GETCOLOR" LINK GETCOLOR} lecture des niveaux d'une couleur
    @{"LANGUAGE" LINK LANGUAGE} renvoie le nom de la "locale"
    @{"SAVECOPY" LINK SAVECOPY} test/choix sauvegarde copie fichier
    @{"SAVEICON" LINK SAVEICON} test/choix sauvegarde avec création icône
    @{"SETCOLOR" LINK SETCOLOR} fixe une couleur de la palette
    @{"SETGRID " LINK SETGRID} choix du pas de la grille
    @{"SHEIGHT " LINK SHEIGHT} renvoie la hauteur de l'écran
    @{"SNAPGRID" LINK SNAPGRID} fixe l'état du menu aligner sur grille
    @{"SWIDTH  " LINK SWIDTH} renvoie la largeur de l'écran
@ENDNODE
@NODE "Maths" "Fonctions ARexx de calcul"
@TOC Index thématique

    @{"ABS     " LINK ABS} valeur absolue d'un nombre
    @{"FOR     " LINK FOR} traitement d'une boucle
    @{"IF      " LINK IF} test
    @{"INIT    " LINK INIT} initialisation de variables
    @{"RESET   " LINK RESET} réinitialisation de variables
    @{"SECURITY" LINK SECURITY} nombre de boucles maximum avant débordement
    @{"SGN     " LINK SGN} test du signe d'un nombre
    @{"STR     " LINK STR} conversion d'un nombre en chaîne de caractères (décimal)
    @{"VAL     " LINK VAL} conversion d'une chaîne de caractères en nombre
    @{"WHILE   " LINK WHILE} boucle tant_que...
@ENDNODE
@NODE "Interactivité" "Fonctions ARexx permettant le dialogue avec l'utilisateur"
@TOC Index thématique

    @{"ASKNUM  " LINK ASKNUM} saisie d'un nombre
    @{"ASKTEXT " LINK ASKTEXT} saisie d'une chaîne de caractères
    @{"CURSMODE" LINK CURSMODE} place le curseur dans le mode spécifié
    @{"GETLINE " LINK GETLINE} définition d'une ligne à l'aide de la souris
    @{"GETPOINT" LINK GETPOINT} choix d'un point à l'aide de la souris
    @{"GETZONE " LINK GETZONE} définition d'une zone à l'aide de la souris
    @{"LOCK    " LINK LOCK} verrouillage saisies utilisateur
    @{"MESSAGE " LINK MESSAGE} affichage d'un message
    @{"PICKOBJ " LINK PICKOBJ} choix d'un objet à l'aide de la souris
    @{"REQFILE " LINK REQFILE} choix d'un fichier
    @{"REQLIST " LINK REQLIST} choix d'un élément dans une liste
    @{"REQNUM  " LINK REQNUM} saisie d'un nombre
    @{"REQTEXT " LINK REQTEXT} saisie d'une chaîne de caractères
    @{"REQUEST " LINK REQUEST} affichage d'un message, choix OUI/NON
    @{"SELECT  " LINK SELECT} choix d'une option parmi plusieurs
    @{"UNLOCK  " LINK UNLOCK} annule le verrouillage des actions utilisateur
@ENDNODE
@NODE "Divers" "Fonctions ARexx diverses"
@TOC Index thématique

    @{"ARRAYDIM" LINK ARRAYDIM} lecture du nombre d'éléments d'un tableau
    @{"CALL    " LINK CALL} appel d'un script ARexx
    @{"DATE    " LINK DATE} renvoie la date actuelle
    @{"DEF     " LINK DEF} définition d'une nouvelle fonction
    @{"EXEC    " LINK EXEC} interprétation d'une chaîne de caractères
    @{"DELARRAY" LINK DELARRAY} suppression d'un tableau de données
    @{"DIMARRAY" LINK DIMARRAY} dimensionnement d'un tableau de données
    @{"FINDOBJ " LINK FINDOBJ} test présence objet
    @{"GETARRAY" LINK GETARRAY} retourne la valeur d'un élément de tableau
    @{"HELP    " LINK HELP} affichage d'une aide AmigaGuide
    @{"MAP     " LINK MAP} programmation d'une macro clavier
    @{"MENU    " LINK MENU} exécution de la fonction associée à un menu
    @{"PCBPATH " LINK PCBPATH} lecture du chemin du programme
    @{"READDEF " LINK READDEF} lecture de la définition d'une fonction
    @{"READMAP " LINK READMAP} lecture d'une macro clavier
    @{"SETARRAY" LINK SETARRAY} affectation d'une valeur à un élément de tableau
    @{"TIME    " LINK TIME} renvoie l'heure courante
    @{"UNMAP   " LINK UNMAP} annulation d'une macro clavier
    @{"VERSION " LINK VERSION} numéro de version du programme
@ENDNODE
@NODE "Gestion fenêtres" "Fonctions ARexx de gestion des fenêtres"
@TOC Index thématique

    @{"BOARDS  " LINK BOARDS} nombre de fenêtres, noms des ports ARexx
    @{"CLOSE   " LINK CLOSE} ferme la fenêtre texte spécifiée
    @{"DIMBOARD" LINK DIMBOARD} dimensionne la fenêtre
    @{"FILENAME" LINK FILENAME} nom du fichier complet
    @{"FILEPART" LINK FILEPART} nom du fichier
    @{"FONTNAME" LINK FONTNAME} nom de la fonte de caractères utilisée
    @{"FONTSIZE" LINK FONTSIZE} taille de la fonte de caractères utilisée
    @{"LOAD    " LINK LOAD} chargement d'un schéma
    @{"MESURE  " LINK MESURE}  renvoie une dimension de la fenêtre
    @{"MODIF   " LINK MODIF} test modification texte
    @{"NEWBOARD" LINK NEWBOARD} ouverture d'une nouvelle fenêtre
    @{"OPEN    " LINK OPEN} ouverture de schéma(s)
    @{"PRINT   " LINK PRINT} impression du schéma
    @{"REXXPORT" LINK REXXPORT} nom du port ARexx
    @{"SAVE    " LINK SAVE} sauvegarde d'un schéma
    @{"SAVEALL " LINK SAVEALL} sauvegarde du contenu du document en mémoire
    @{"SAVEIFF " LINK SAVEIFF} sauvegarde au format IFF
    @{"SETGRID " LINK SETGRID} choix du pas de la grille
    @{"STOBACK " LINK STOBACK} passage de l'écran en arrière-plan
    @{"STOFRONT" LINK STOFRONT} passage de l'écran an avant-plan
    @{"TITLE   " LINK TITLE} choix du titre affiché dans la fenêtre
    @{"VIEW    " LINK VIEW} fixe le mode d'affichage
    @{"WHEIGHT " LINK WHEIGHT} renvoie la hauteur totale de la fenêtre
    @{"WINDOW  " LINK WINDOW} dimensionne la fenêtre schéma
    @{"WTOBACK " LINK WTOBACK} renvoie la fenêtre active en arrière-plan
    @{"WTOFRONT" LINK WTOFRONT} renvoie la fenêtre active en avant-plan
    @{"WWIDTH  " LINK WWIDTH} renvoie la largeur totale du plan de travail
    @{"ZOOM    " LINK ZOOM} gestion de l'affichage
@ENDNODE
@NODE DEF "Fonction ARexx DEF"
@TOC Fonctions

    Vous pouvez définir un nombre quelconque de fonctions utilisant
    des fonctions internes ainsi que n'importe quel opérateur.
    Une de ces fonctions peut même faire appel à une autre fonction
    précédemment définie. Les arguments peuvent être d'un type quelconque,
    il doivent simplement correspondre aux types attendus par les fonctions
    qui seront appelées ou être compatibles avec les opérateurs utilisés.

    Il ne peut y avoir plus d'une déclaration dans une même ligne.

    La forme de ces définitions est de la forme suivante:
    @{B}DEF nom_fonction(argument,...) = @{I}définition des opérations@{UI}@{UB}

    Le mot clé @{B}DEF@{UB} doit @{B}impérativement commencer@{UB} la définition, sans
    aucun espace préalable.

    Le nom des fonctions peut comprendre de 1 à 13 caractères
    alphanumériques, y compris les lettres accentuées et le soulignement (_).
    Le premier caractère doit cependant toujours être une lettre.
    Les fonctions internes ne peuvent être redéfinies.
    Le nombre des arguments est limité à 15 au maximum.
    Ce nombre est fixe pour une définition donnée (vous ne pouvez pas
    déclarer de fonction possédant un nombre variable d'arguments).
    Il doit y avoir au moins un argument dans la définition, mais celui-ci
    peut ne pas être utilisé.
    Les arguments doivent bien entendu posséder des noms distincts.

    @{I}Exemples :@{UI}
    DEF EXPAND(OBJET) = SETSCALE(OBJET,HSCALE(OBJET)+50,VSCALE(OBJET)+50)
    L'appel de la fonction sera ensuite fait comme pour toute autre
    fonction:
    EXPAND(FIRSTSEL) par exemple.

    La redéfinition d'une fonction ayant déjà été définie est possible,
    la nouvelle définition remplace alors l'ancienne. Ceci peut être utile
    lorsque vous essayez de définir une fonction complexe, il peut alors
    être nécessaire de faire plusieurs essais avant d'obtenir le bon résultat.

    @{I}Voir aussi :@{UI}
    @{"READDEF" LINK READDEF}
@ENDNODE
@NODE ABS "Fonction ARexx ABS"
@TOC Maths

    @{B}ABS(nombre)@{UB}

    Cette fonction renvoie la valeur absolue du nombre donné en
    argument. Le nombre peut appartenir à une @{"variable" LINK Variable}.

    @{I}Exemples :@{UI}
    ABS(-8)     renvoie 8
    ABS(4)      renvoie 4
    ABS(N)      renvoie la valeur absolue du nombre contenu dans
	    la variable N

    @{I}Rappel :@{UI} les nombres doivent être du type entier, les variables
    doivent naturellement être du type numérique.
@ENDNODE
@NODE ARC "Fonction ARexx ARC"
@TOC Placement objets

    @{B}ARC (x, y, rayon_horizontal, rayon_vertical, type)@{UB}

    Trace un arc de cercle. Le centre est spécifié par les coordonnées
    x et y.

    La valeur de l'argument type doit être comprise entre 0 et 3.
    Chacune de ces valeurs correspond à un quart de cercle.

    Si le placement est réussi la valeur renvoyée correspond au
    numéro du nouvel objet, sinon la valeur renvoyée est nulle.

    Pour connaître les caractéristiques d'un arc existant, utilisez
    la fonction @{"COORDS" LINK COORDS}.

    @{I}Exemple :@{UI}
    ARC(1000,1000,250,250,0):ARC(1000,1000,250,250,1)   trace un demi-cercle

    @{i}Rappel :@{ui} les coordonnées et les rayons sont exprimés en millièmes
    de millimètres.

    @{I}Voir aussi :@{UI}
    menu @{"Dessin/Placer arc de cercle" LINK "Place arc"}
    fonction @{"ELLIPSE" LINK ELLIPSE}
@ENDNODE
@NODE ARRAYDIM "Fonction ARexx ARRAYDIM"
@TOC Divers

    @{b}ARRAYDIM(tableau)@{ub}

    Cette fonction retourne le nombre d'éléments appartenant à un tableau,
    s'il existe. Sinon la valeur 0 est renvoyée. Elle peut ainsi servir à
    tester l'existence d'un tableau de données au début d'un script.

    Voir aussi : @{"DIMARRAY" LINK DIMARRAY}, @{"DELARRAY" LINK DELARRAY}, @{"GETARRAY" LINK GETARRAY}, @{"SETARRAY" LINK SETARRAY}
@ENDNODE
@NODE ASC "Fonction ARexx ASC"
@TOC Fonctions

    @{B}ASC("texte",rang)@{UB}

    Cette fonction renvoie le code ASCII du caractère appartenant
    à la chaîne de texte passée en argument, du rang spécifié.
    Le rang doit être compris entre 1 et la longueur de la chaîne
    passée en argument.

    @{I}Exemples :@{UI}
    ASC("essai",1)  renvoie 101 (code ASCII du caractère e)
    ASC(TEXTE,LEN(TEXTE))   renvoie le code ASCII du dernier
	    caractère de la @{"variable" LINK Variable} TEXTE.

    @{I}Voir aussi :@{UI} @{"CHR" LINK CHR}
@ENDNODE
@NODE ASKNUM "Fonction ARexx ASKNUM"
@TOC Interactivité

    @{B}ASKNUM("titre",nombre)@{UB}

    Ouvre une boîte de requête permmettant la saisie d'un nombre.
    Le second argument est utilisé pour initialiser cette demande.
    Si l'utilisateur clique sur Annule, une chaîne nulle est
    renvoyée, sinon une chaîne correspondant au nombre saisi est
    renvoyée. Seuls des nombres entiers peuvent être saisis.

    Cette fonction ne permet pas de savoir, quand une chaîne nulle
    est renvoyée, si c'est une saisie "nulle" qui a été effectuée
    ou bien si l'utilisateur a choisi d'annuler l'opération,
    utilisez la fonction @{"REQNUM" LINK REQNUM} en cas de besoin.

    @{I}Voir aussi :@{UI} @{"ASKTEXT" LINK ASKTEXT}, @{"REQTEXT" LINK REQTEXT}.
@ENDNODE
@NODE ASKTEXT "Fonction ARexx ASKTEXT"
@TOC Interactivité

    @{B}ASKTEXT("titre","texte")@{UB}

    Affiche une requête permettant la saisie d'une chaîne de caractères.
    Le second paramètre est utilisé pour initialiser la demande.
    Une chaîne nulle est renvoyée si l'utilisateur clique sur Annule.

    Cette fonction ne permet pas de savoir, quand une chaîne nulle
    est  renvoyée, si c'est une chaîne nulle qui a été saisie
    ou bien si l'utilisateur a choisi d'annuler l'opération,
    utilisez la fonction @{"REQTEXT" LINK REQTEXT} en cas de besoin.

    @{i}Exemple :@{ui}
	ASKTEXT("Entrez le premier"+CHR(10)+"mot puis pressez"+CHR(10)+"la touche ENTRÉE","")

    @{I}Voir aussi :@{UI} @{"ASKNUM" LINK ASKNUM}, @{"REQNUM" LINK REQNUM}
@ENDNODE
@NODE BLINK "Fonction ARexx BLINK"
@TOC Gestion des objets

    @{B}BLINK(numéro_objet)@{UB}

    Provoque le clignotement de l'objet spécifié (trois fois).
    Si l'argument est négatif, c'est le groupe (dont le numéro a
    été inversé) qui clignote, s'il est nul, tous les objets
    sélectionnés clignotent.

    Aucune valeur particulière n'est renvoyée par cette fonction.

    @{i}Exemples :@{ui}
	BLINK(FIRSTSEL)
	BLINK(-GROUP(FIRSTSEL))
@ENDNODE
@NODE BOARDS "Fonction ARexx BOARDS"
@TOC Gestion fenêtres

    @{b}BOARDS("Variable")@{ub}

    Cette fonction permet de savoir combien il y a de fenêtres, et
    quels sont leurs port ARexx respectifs. Elle ne peut pas être
    utilisée en mode local. Le nom de la variable correspond au
    nom d'une variable ARexx qui contiendra les noms des ports
    de la façon suivante:
	nom_variable.0 contient le nom du port de la première fenêtre
	nom_variable.1 contient le nom du port de la seconde fenêtre, etc
	Le nombre de fenêtres est contenu dans la variable result.

    @{i}Exemple de script :@{ui}
	options results
	'BOARDS("NOMS")'
	n=result
	do i=0 to n-1
	    address value NOMS.i
	    'MESSAGE("Document "+FILENAME("")+": port 'NOMS.i'")'
	end
@ENDNODE
@NODE BOX "Fonction ARexx BOX"
@TOC Gestion des objets

    @{B}BOX(x0, y0, x1, y1)@{UB}

    Trace un rectangle en utilisant les coordonnées spécifiées.
    Le type de ligne tracé dépend de la largeur alors valide (voir
    @{"SETWIDTH" LINK SETWIDTH}) et de la face en cours d'utilisation (voir @{"SETSIDE" LINK SETSIDE}).

    Si le placement du rectangle réussit, cette fonction renvoie
    le numéro de l'objet qui a été placé, sinon elle renvoie 0.

    @{i}Rappel :@{ui} les coordonnées sont exprimées en millièmes de millimètres.

    @{I}Voir aussi :@{UI} @{"DRAW" LINK DRAW}.
    menu @{"Dessin/Placer rectangle" LINK "Place box"}
@ENDNODE
@NODE CALL "Fonction ARexx CALL"
@TOC Divers

    @{B}CALL("script", argument1, argument2...)@{UB}

    Appel d'un script ARexx. Le nom du script, donné en argument, n'a pas
    à inclure l'extension ".amiPCB". Cette fonction n'est pas utile dans
    un script ARexx mais peut servir dans une @{"macro-commande" LINK Direct} (ALT-Fx ou
    macro locale).
    L'appel peut être fait en spécifiant de 0 à 15 arguments (@{"numériques" LINK Nombres}
    ou @{"chaînes de caractères" LINK "Chaînes de caractères"}).

    L'exécution du script se fait en asynchrone, c'est à dire que la main
    est rendue au programme appelant avant la fin de l'exécution du script.
    La valeur renvoyée est le nom du script (sans grand intérêt)...

    @{I}Exemples :@{UI}
    'CALL("EditScript","Zoom")'
    'CALL("multiplier",1.5,X)'
@ENDNODE
@NODE CHR "Fonction ARexx CHR"
@TOC Fonctions

    @{B}CHR(code)@{UB}

    Renvoie le caractère possédant le code ASCII spécifié.

    Utilisé pour obtenir un saut de ligne (CHR(10)) ou un caractère
    spécial non présent sur le clavier.  Le code peut varier de 1 à
    255 maxi.

    Cette fonction peut aussi être utilisée pour écrire des caractères
    spéciaux, qui ne font pas partie du jeu de caractères de l'Amiga.
    Ainsi les caractères suivants sont utilisables:
    - 128: symbole de l'amplification (triangle pointé à droite)
    - 129: symbole collecteur ouvert
    - 130: symbole du OU (supérieur ou égal)
    - 131: flèche dirigée à droite
    - 133: symbole utilisé pour les entrées actives sur un front (supérieur)
    - 134: symbole de l'hystérésis
    - 135: symbole "trois états" (haute impédance)
    - 136: symbole d'une impulsion
    - 137: flèche dirigée à gauche
    - 138: symbole décrivant un signal analogique
    - 139: lettre correspondant au signe "ohm" (pour la valeur des résistances)
    - 140: lettre "alpha" (pour les potentiomètres)
    - 141: lettre TAU (constantes de temps)

    Essayez ces codes à l'aide d'une macro du type (par exemple)
	WRITE(CHR(140),100,100)
    Vous pouvez ajouter un de ces caractères (ou n'importe quel
    autre à une chaîne de caractères avec une écriture de la
    forme suivante:
	"Flèche à droite: "+CHR(131)

    @{I}Voir aussi :@{UI} @{"ASC" LINK ASC}
@ENDNODE
@NODE CLIPPATH "Fonction ARexx CLIPPATH"
@TOC Gestion blocs

    @{B}CLIPPATH("chemin")@{UB}

    Détermine l'emplacement (le tiroir) où sont situés les clips.
    Cette fonction permet de modifier le chemin acquis à l'aide de
    l'outil @{"CLIPS" LINK CLIPS}.

    La fonction renvoie le chemin utilisé avant son utilisation.
    Si le chemin spécifié est une chaîne nulle, il n'y a pas de
    modification du chemin utilisé: CLIPPATH(""), seul le
    chemin courant est renvoyé.

    @{I}Exemple :@{UI}
	CLIPPATH("Work:AmiPCB/Clips")
@ENDNODE
@NODE CLIPUNIT "Fonction ARexx CLIPUNIT"
@TOC Gestion blocs

    @{B}CLIPUNIT(unité)@{UB}

    Cette fonction permet de choisir la zone mémoire
    utilisée pour les opérations de couper/coller.
    Ce numéro peut varier de 1 à 10. L'unité 5 est
    souvent utilisée dans les scripts ARexx, si
    nécessaire.

    La valeur renvoyée correspond au numéro de l'unité qui été
    utilisée AVANT l'appel à cette fonction. Si vous voulez
    connaître celui-ci sans en changer passez une valeur négative
    ou nulle en argument.

    @{b}Attention :@{ub} si la valeur renvoyée par cette fonction est nulle,
    c'est que la fonction a échoué. Cela se produit notamment si
    une tâche essaie de changer de clip actif alors que ce même
    clip est en cours d'utilisation par une autre tâche.

    @{I}Exemple de script :@{UI}
    'CLIPUNIT(2)'       choix d'une nouvelle unité (numéro 2)
    clip=RESULT 	conserver le numéro de l'ancienne unité
    ...
    'CLIPUNIT('clip')'  revalider l'ancienne unité

    @{I}Voir aussi :@{UI} @{"COPY" LINK COPY}, @{"PASTE" LINK PASTE}.
@ENDNODE
@NODE CLOSE "Fonction ARexx CLOSE"
@TOC Gestion fenêtres

    @{B}CLOSE(fenêtre)@{UB}

    Cette fonction provoque la fermeture de la fenêtre courante (argument
    positif ou nul) ou de toutes les fenêtres, si l'argument vaut -1.
    Attention, si le contenu de la fenêtre a été modifié mais non sauvé,
    les modifications seront perdues, utilisez la fonction @{"MODIF" LINK MODIF} pour
    savoir s'il y a eu des changements.
    Aucune valeur n'est renvoyée par cette fonction.

    Pour cacher une fenêtre, sans perdre ses informations,
    utilisez la commande MENU("Cacher"); pour la réduire à sa
    taille minimale, utilisez la commande MENU("Réduire").

    @{I}Exemple :@{UI}
    CLOSE(0)        Pour fermer la fenêtre courante.
    CLOSE(-1)       Ferme toutes les fenêtres.

    @{I}Voir aussi :@{UI} @{"OPEN" LINK OPEN}, @{"LOAD" LINK LOAD}.
@ENDNODE
@NODE COL "Fonction ARexx COL"
@TOC Gestion des objets

    @{B}COL(numéro_objet)@{UB}

    Cette fonction permet de connaître le numéro de colonne où est
    situé l'objet spécifié.
    L'argument doit correspondre au numéro associé à un objet, s'il est
    nul c'est la position du bord gauche du bloc sélectionné qui est
    renvoyée (ou -1 s'il n'y a aucun élément sélectionné), s'il est
    négatif c'est la position du groupe (passée sous forme négative)
    qui est renvoyée.

    @{i}Rappel :@{ui} les coordonnées sont exprimées en millièmes de millimètres.

    @{I}Voir aussi:@{UI} @{"ENDCOL" LINK ENDCOL}, @{"LINE" LINK LINE}, @{"COORDS" LINK COORDS}.
@ENDNODE
@NODE COORDS "Fonction ARexx COORDS"
@TOC Gestion des objets

    @{B}COORDS(numéro_objet)@{UB}

    Cette fonction retourne les coordonnées de l'objet spécifié sous forme
    de chaîne de caractères, séparées par des virgules.
    Si l'objet est une ligne ou une boîte les coordonnées sont de la forme
    x0,y0,x1,y1,
    si c'est un triangle elles sont de la forme
    x0,y0,x1,y1,x2,y2,
    si c'est un arc elles sont de la forme
    x,y,rayon_horizontal,rayon_vertical,type
    si c'est une ellipse elles sont de la forme
    x,y,rayon_horizontal,rayon_vertical
    alors qu'elles sont de la forme x,y pour tout autre objet.

    L'argument doit correspondre au numéro associé à un objet.

    @{I}Exemple d'utilisation :@{UI}
    'COORDS('ligne')'; coord=result
    /* retrouver les différentes coordonnées */
    PARSE VAR coord x0 ',' y0 ',' x1 ',' y1

    @{i}Rappel :@{ui} les coordonnées sont exprimées en millièmes de millimètres.

    @{I}Voir aussi :@{UI} @{"COL" LINK COL}, @{"LINE" LINK LINE}, @{"ENDCOL" LINK ENDCOL}, @{"ENDLINE" LINK ENDLINE}.
@ENDNODE
@NODE COPY "Fonction ARexx COPY"
@TOC Gestion blocs

    @{B}COPY(clip)@{UB}

    Cette fonction permet de recopier les objets sélectionnés
    dans la zone mémoire spécifiée. Le numéro de clip
    peut varier de 1 à 10.
    Utilisez la fonction @{"PASTE" LINK PASTE} pour coller les objets ainsi collés
    ou choisissez l'unité comme unité par défaut (@{"CLIPUNIT" LINK CLIPUNIT}) puis
    utilisez le menu @{"Édition/Coller" LINK "Paste from clip"}.

    La valeur renvoyée est égale à 1 si tout se passe normalement.
@ENDNODE
@NODE CURSMODE "Fonction ARexx CURSMODE"
@TOC Interactivité

    @{B}CURSMODE(type)@{UB}          @{I}Version 1.05@{UI}

    Cette fonction permet de placer le curseur dans le mode
    spécifié par son argument:
    - si type est égal à @{B}0@{UB}: mode placement @{B}clip@{UB},
    - si type est égal à @{B}2@{UB}: mode placement @{B}pistes@{UB},
    - si type est égal à @{B}3@{UB}: mode placement @{B}arcs de cercles@{UB},
    - si type est égal à @{B}4@{UB}: mode placement @{B}texte@{UB},
    - si type est égal à @{B}7@{UB}: mode placement @{B}pastilles@{UB},
    - si type est égal à @{B}10@{UB}: mode placement @{B}ellipse@{UB},
    - si type est égal à @{B}17@{UB}: mode placement @{B}réseau@{UB},
    - si type est égal à @{B}22@{UB}: mode placement @{B}rectangle@{UB}.
    - si type est égal à @{B}26@{UB}: mode placement @{B}triangle@{UB}.
    Toute autre valeur annule le mode courant.

    La valeur renvoyée est celle correspondant au mode en
    vigueur avant l'exécution de la fonction.
@ENDNODE
@NODE CURSTEP "Fonction ARexx CURSTEP"
@TOC "Gestion préférences"

    @{b}CURSTEP(pas)@{ub}

    Cette fonction permet de déterminer le pas de déplacement du curseur.
    Cependant c'est l'inverse de ce pas qui doit être passé en argument :
	- s'il est égal à 1 : le pas sera égal au pas de la grille
	- s'il est égal à 2 : le pas sera d'un demi-pas de la grille
	- s'il est égal à 3 : le pas sera d'un tiers de pas de la grille
	- s'il est égal à 4 : le pas sera égal au quart de pas de la grille.
	Toute autre valeur n'entraîne aucun changement du pas.
    La valeur en vigueur avant l'exécution de la fonction est renvoyée.
    Un pas égal à 0 permet de connaître le pas utilisé, sans le changer.

    Cette fonction a un effet analogue à celui du menu @{"Dessin/Pas du curseur" LINK "Cursor step"}
@ENDNODE
@NODE DATE "Fonction ARexx DATE"
@TOC Divers

    @{B}DATE(jour)@{UB}

    Renvoie la date courante. Si l'argument jour est différent
    de zéro, le jour de la semaine est inclus.

    @{I}Exemples :@{UI}
    DATE(0)     renvoie 18-Oct-97
    DATE(1)     renvoie Samedi 18-Oct-97

    @{I}Voir aussi :@{UI} @{"TIME" LINK TIME}.
@ENDNODE
@NODE DELARRAY "Fonction ARexx DELARRAY"
@TOC Divers

    @{b}DELARRAY(tableau)@{ub}

    Cette fonction permet de libérer la mémoire utilisée pour gérer
    un tableau de données. Si le tableau n'existe pas aucune erreur
    n'est générée, la fonction retourne alors 0 (sinon la valeur
    renvoyée est le nombre d'éléments qui avaient été déclarés).

    Voir aussi: @{"ARRAYDIM" LINK ARRAYDIM}, @{"DIMARRAY" LINK DIMARRAY}, @{"GETARRAY" LINK GETARRAY}, @{"SETARRAY" LINK SETARRAY}
@ENDNODE
@NODE DELETE "Fonction ARexx DELETE"
@TOC Gestion des objets

    @{B}DELETE(numéro_objet)@{UB}

    Supprime l'objet dont le numéro est spécifié, s'il existe. Les
    numéros des objets restants ne sont pas modifiés (contrairement
    à ce qui ce passe avec AmiCAD).

    Si l'argument est nul, tous les éléments alors sélectionnés
    dans la fenêtre courante sont effacés, si l'argument est
    négatif (normalement égal à -1), TOUS les éléments du document
    courant sont supprimés.

    Renvoie le nombre d'objets restants.
@ENDNODE
@NODE DIMARRAY "Fonction ARexx DIMARRAY"
@TOC Divers

    @{b}DIMARRAY(tableau,nombre_éléments)@{ub}

    Cette fonction permet de réserver la place en mémoire pour
    gérer un tableau de données. Les données pouvant ensuite y
    être stockées peuvent être du type nombre (entiers) ou
    chaînes de caractères, la première affectation déterminant
    le type de données à utiliser, comme pour les variables.
    Le nombre d'éléments doit être supérieur à 1 et inférieur
    ou égal à 2^24 (16777216).

    Voir aussi: @{"ARRAYDIM" LINK ARRAYDIM}, @{"GETARRAY" LINK GETARRAY}, @{"DELARRAY" LINK DELARRAY}, @{"SETARRAY" LINK SETARRAY}
@ENDNODE
@NODE DIMBOARD "Fonction ARexx DIMBOARD"
@TOC Gestion fenêtres

    @{B}DIMBOARD(largeur,hauteur)@{UB}

    Cette fonction permet de changer les dimensions de la
    fenêtre de travail courante. Ces dimensions sont données
    en millièmes de millimètres. Utilisez le menu @{"Projet/Informations" LINK Informations}
    pour connaître les dimensions de la feuille de travail.

    @{I}Valeur renvoyée:@{UI} 1 si l'opération a réussi, 0 dans le cas contraire.
    Attention, aucun contrôle n'est fait sur les valeurs passées en
    arguments, des valeurs "exotiques" peuvent provoquer des résultats
    pour le moins inattendus...

    @{I}Voir aussi:@{UI} menu @{"Préférences/Dimensions document" LINK "Document size"}, fonctions @{"WWIDTH" LINK WWIDTH}, @{"WHEIGHT" LINK WHEIGHT}
@ENDNODE
@NODE DRAW "Fonction ARexx DRAW"
@TOC Placement objets

    @{B}DRAW(x0, y0, x1, y1)@{UB}

    Trace une ligne en utilisant les coordonnées spécifiées.
    Le type de ligne tracé dépend de la face active (voir
    @{"SETSIDE" LINK SETSIDE} et de la largeur en cours (voir @{"SETWIDTH" LINK SETWIDTH}).

    Si le placement du tracé réussit, cette fonction renvoie
    le numéro de l'objet qui a été placé, sinon elle renvoie
    0.

    @{i}Rappel :@{ui} les coordonnées sont exprimées en millièmes de millimètres.

    @{I}Voir aussi :@{UI} @{"BOX" LINK BOX}, @{"COORDS" LINK COORDS}.
@ENDNODE
@NODE EDIT "Fonction ARexx EDIT"
@TOC Gestion des objets

    @{B}EDIT(numéro_objet)@{UB}

    Cette fonction appelle la requête permettant d'éditer un élément
    du schéma. Elle a le même effet qu'un double clic sur un objet à
    l'aide du bouton gauche de la souris, ou d'appuyer sur la touche
    ENTRÉE après avoir sélectionné un objet.
    Aucune valeur n'est renvoyée.

    L'argument doit correspondre au numéro associé à un objet.

    Cette fonction est utile  associée à une combinaison de  touches
    du clavier.

    @{I}Exemple :@{UI}
    MAP("alt-e","EDIT(FIRSTSEL)")
    Il suffit alors  de sélectionner un objet puis    de faire	la
    combinaison  de touches  ALT-e   au   clavier  pour appeler la
    requête d'édition du premier élément sélectionné.
@ENDNODE
@NODE ELLIPSE "Fonction ARexx ELLIPSE"
@TOC Placement objets

    @{B}ELLIPSE(x, y, rayon_horizontal, rayon_vertical)@{UB}

    Trace une ellipse, le centre est spécifié par les coordonnées
    x et y, les rayons par les deux arguments suivants. Spécifiez
    deux rayons égaux pour tracer un cercle  ou utilisez la macro
    suivante :
    DEF CERCLE(x,y,rayon)=ELLIPSE(x,y,rayon,rayon)

    Si le placement réussit, le numéro du nouvel objet est renvoyé,
    sinon c'est un 0.

    Si les coordonnées x et y sont égales à -1, les dimensions
    des rayons s'appliquent au mode curseur, lors du placement
    d'une ellipse.

    Utilisez la fonction @{"COORDS" LINK COORDS} pour lire les caractéristiques
    d'une ellipse existante.

    @{i}Rappel :@{ui} les coordonnées et les rayons sont exprimés en millièmes
    de millimètres.

    @{I}Voir aussi :@{UI} @{"ARC" LINK ARC}
@ENDNODE
@NODE ENDCOL "Fonction ARexx ENDCOL"
@TOC Gestion des objets

    @{B}ENDCOL(numéro_objet)@{UB}

    Cette fonction renvoie l'abcisse du  point déterminant la fin du
    tracé d'une ligne (pointillés ou largeur quelconque). Si l'objet
    est d'un type différent (composant, jonction ou autre) la valeur
    renvoyée n'a aucune signification.

    L'argument doit correspondre au numéro associé à un objet.

    @{i}Rappel :@{ui} les coordonnées sont exprimées en millièmes de millimètres.

    @{I}Voir aussi :@{UI} @{"COL" LINK COL}, @{"LINE" LINK LINE}, @{"ENDLINE" LINK ENDLINE}, @{"COORDS" LINK COORDS}.
@ENDNODE
@NODE ENDLINE "Fonction ARexx ENDLINE"
@TOC Gestion des objets

    @{B}ENDLINE(numéro_objet)@{UB}

    Cette fonction renvoie l'ordonnée du point déterminant la fin du
    tracé d'une ligne (pointillés ou largeur quelconque). Si l'objet
    est d'un type différent (composant, jonction ou autre) la valeur
    renvoyée n'a aucune signification.

    L'argument doit correspondre au numéro associé à un objet.

    @{i}Rappel :@{ui} les coordonnées sont exprimées en millièmes de millimètres.

    @{I}Voir aussi :@{UI} @{"COL" LINK COL}, @{"LINE" LINK LINE}, @{"ENDCOL" LINK ENDCOL}, @{"COORDS" LINK COORDS}.
@ENDNODE
@NODE EXEC "Fonction ARexx EXEC"
@TOC Divers

    @{B}EXEC("chaîne de caractères")@{UB}

    Demande l'interprétation et l'exécution de la chaîne de
    caractères passée en argument, comme s'il s'agissait
    d'une ligne de commande.
    Le résultat dépend naturellement du contenu de la
    chaîne passée en argument.

    @{I}Exemple :@{UI}
    EXEC(READTEXT(OBJET))   interprète la ligne de texte associée à l'objet spécifié
    EXEC(READMAP("CTRL-)")  exécute la séquence associée à la combinaison de touches CTRL-)
    EXEC(READMAP("F5"))     exécute la séquence associée à la touche F5.

    Une macro intéressante :
	DEF EXECKEY(X)=EXEC(READMAP(X))
	il devient alors possible d'écrire :
	    EXECKEY("F5")
	    ou
	    EXECKEY("Alt-F5")
@ENDNODE
@NODE FILENAME "Fonction ARexx FILENAME"
@TOC Gestion fenêtres

    @{B}FILENAME(nom)@{UB}

    Renomme la fenêtre courante, avec le nom spécifié.
    Si une chaîne nulle ("") est passée en argument, cette
    fonction renvoie le nom de la fenêtre, y compris le
    chemin complet.

    @{I}Voir aussi :@{UI} @{"FILEPART" LINK FILEPART}
@ENDNODE
@NODE FILEPART "Fonction ARexx FILEPART"
@TOC Gestion fenêtres

    @{B}FILEPART("nom")@{UB}

    Renomme la fenêtre courante, en conservant le chemin.
    Si une chaîne nulle ("") est passée en argument, cette
    fonction renvoie le nom de la fenêtre courante, sans le
    chemin complet.

    @{I}Exemple :@{UI}
    Supposons que le fichier courant soit "RAM:sources/Typon"
    la fonction FILEPART("") renverrait Typon, alors que la
    fonction FILEPART("Nouveau typon") renommerait le fichier
    "RAM:sources/Nouveau typon".

    @{I}Voir aussi :@{UI} @{"FILENAME" LINK FILENAME}
@ENDNODE
@NODE "FINDOBJ" "Fonction ARexx FINDOBJ"
@TOC Gestion des objets

    @{B}FINDOBJ(premier_objet,type,x,y)@{UB}

    Lance la recherche du premier objet situé aux coordonnées
    spécifiées.
    Le premier argument sert à commencer la recherche après
    un objet déjà trouvé. Cet argument doit prendre une valeur
    supérieure ou égale 0 (la recherche s'effectuera sur tous les
    objets du schéma s'il est nul).

    Le second argument précise quel est le type d'objet recherché,
    il doit correspondre à la valeur renvoyée par la fonction
    @{"TYPE" LINK TYPE}. S'il est nul, le premier objet trouvé sera renvoyé,
    quel que soit son type. S'il est négatif, la recherche ne s'effectuera
    que sur les éléments sélectionnés.

    Les coordonnées doivent correspondre au point d'ancrage
    pour les composants (c'est à dire le point où était situé
    le curseur au moment où il a été posé), à une extrémité
    pour les lignes ou au centre pour les ellipses ou jonctions.
    Si l'une des coordonnées est négative, elle n'est pas prise
    en compte. Si les deux le sont, aucune ne sera prise en compte,
    c'est à dire que l'objet sera testé sans tenir compte de son
    emplacement.

    La valeur renvoyée est égale au numéro de l'objet qui a
    été trouvé, ou à 0 si la recherche n'a pas abouti.

    @{I}Exemples :@{UI}
    FINDOBJ(0,2,100,200) renvoie le numéro d'une ligne (ou piste)
	ayant l'une de ses extrémités en 100,200, si il y en a une.
    FINDOBJ(0,-7,50,-1)  renvoie le numéro de la première pastille
	sélectionnée, située sur la colonne 50.
@ENDNODE
@NODE FIRSTSEL "Fonction ARexx FIRSTSEL"
@TOC Gestion blocs

    @{B}FIRSTSEL@{UB}

    Cette fonction renvoie le numéro du premier objet sélectionné.
    Elle ne nécessite aucun argument. Si aucun objet n'est marqué
    la valeur renvoyée est nulle.

    @{I}Voir aussi :@{UI} @{"NEXTSEL" LINK NEXTSEL}
@ENDNODE
@NODE FONTNAME "Fonction ARexx FONTNAME"
@TOC Gestion préférences

    @{B}FONTNAME@{UB}

    Renvoie le nom de la fonte utilisée dans l'écran courant.

    @{I}Voir aussi :@{UI} @{"FONTSIZE" LINK FONTSIZE}.
@ENDNODE
@NODE FONTSIZE "Fonction ARexx FONTSIZE"
@TOC Gestion préférences

    @{B}FONTSIZE@{UB}

    Renvoie la taille de la fonte utilisée dans l'écran courant.

    @{I}Voir aussi :@{UI} @{"FONTNAME" LINK FONTNAME}.
@ENDNODE
@NODE FOR "Fonction ARexx FOR"
@TOC Maths

    @{B}FOR(init,condition_fin,action1,...)@{UB}

    Cette fonction permet de définir des boucles. Le premier argument
    (init) est  exécuté une seule fois,  quand l'appel de la fonction
    vient d'être fait. Le second argument définit la condition de fin
    de boucle.	  Enfin le troisième  argument ainsi que les  arguments
    suivants, s'ils existent, sont évalués  à chaque exécution  de la
    boucle.

    L'utilisation  de cette fonction permet  souvent un  gain de temps
    important  dans l'exécution  d'un  script,  le nombre de  messages
    pouvant diminuer de façon significative si elle est utilisée à bon
    escient.

    @{I}Exemples :@{UI}
    FOR (I=0, I<10, I=I+1)
    Dans cet exemple la @{"variable" LINK Variable} I est initialisée à la valeur 0,
    tant que cette valeur est inférieure à 10, on incrémente cette
    valeur. I va donc prendre successivement les valeurs 1 à 10.

    FOR (I=10, I>0, DELETE(I), I=I-1)
    Cette formule comprend une instruction supplémentaire
    permettant de supprimer les objets dont le numéro est
    inférieur ou égal à 10.

    N=100:FOR (I=0:J=0, I<=N, J=J+I, I=I+1):J
    Cette formule permet de calculer la somme des 100 premiers
    nombres. Le résultat de la somme est renvoyé (:J à la fin).

    @{I}Remarque :@{UI} une boucle bloquée peut être interrompue par deux
    moyens: soit par le nombre de boucles maximal (défini par la
    fonction @{"SECURITY" LINK SECURITY}, soit en appuyant simultanément sur les trois
    touches CTRL, ALT et ESC.

    @{I}Voir aussi :@{UI} @{"WHILE" LINK WHILE}.
@ENDNODE
@NODE GETARRAY "Fonction ARexx GETARRAY"
@TOC Divers

    @{b}GETARRAY(tableau,indice)@{ub}

    Cette fonction retourne la valeur d'une variable
    appartenant à un tableau. L'indice doit être compris et 0
    et la valeur maximale déterminant la taille du tableau
    (diminuée de 1).

    Voir aussi: @{"ARRAYDIM" LINK ARRAYDIM}, @{"DIMARRAY" LINK DIMARRAY}, @{"DELARRAY" LINK DELARRAY}, @{"SETARRAY" LINK SETARRAY}
@ENDNODE
@NODE GETCOLOR "Fonction ARexx GETCOLOR"
@TOC Gestion préférences

    @{b}GETCOLOR(couleur)@{ub}

    Cette fonction permet de connaître les niveaux associés à une couleur
    de la palette utilisée par AmiPCB. La valeur renvoyée est une chaîne
    de caractères de la forme $rouge,$vert,$bleu.
    Le numéro de la couleur peut varier de 0 à 15.

	Voir aussi : @{"SETCOLOR" LINK SETCOLOR}
@ENDNODE
@NODE GETLABEL "Fonction ARexx GETLABEL"
@TOC Gestion des objets

    @{b}GETLABEL(numéro_objet)@{ub}

    Renvoie le label du réseau associé à l'objet dont le numéro est
    passé en argument.
    Ce numéro d'objet doit naturellement être celui d'un objet du type
    réseau (liaison) , une erreur sera générée dans le cas contraire :
    Numéro d'objet incorrect.

    @{I}Exemple :@{UI} GETLABEL(FIRSTSEL)

    Voir aussi : @{"NETNUM" LINK NETNUM}.
@ENDNODE
@NODE GETLINE "Fonction ARexx GETLINE"
@TOC Interactivité

    @{B}GETLINE("titre1","titre2")@{UB}

    Cette fonction permet de définir une ligne à l'aide
    de la souris. Le premier titre est affiché dans la barre de titre
    pendant l'attente du premier clic sur le bouton gauche de la souris
    par l'utilisateur. Quand ceci a été fait, le second titre est
    affiché à son tour, et une ligne est dessinée au fur et à mesure
    des déplacements de la souris, jusqu'à un second clic.
    Toute action sur une touche du clavier ou un autre bouton de la
    souris entraîne l'annulation de la fonction (elle renvoie alors
    une chaîne nulle).
    Si la fonction a réussi, elle renvoie une chaîne de caractères
    définissant les coordonnées de la ligne définie, comme pour la
    fonction @{"COORDS" LINK COORDS}.

    Le tracé est effectué en tenant compte des modes définis pour
    le tracé: orthogonal, alignement sur la grille ou non.

    @{I}Voir aussi :@{UI} @{"SETORTHO" LINK SETORTHO}, @{"SNAPGRID" LINK SNAPGRID}, @{"GETZONE" LINK GETZONE}, @{"GETPOINT" LINK GETPOINT}.
@ENDNODE
@NODE GETNAME "Fonction ARexx GETNAME"
@TOC Gestion des objets

    @{b}GETNAME(groupe)@{ub}

    Cette fonction renvoie le nom du groupe spécifié, s'il en existe un,
    sinon elle renvoie une chaîne nulle.

    L'argument doit correspondre à un numéro de groupe existant.

    @{i}Voir aussi :@{ui} @{"SETNAME" LINK SETNAME}, @{"GROUP" LINK GROUP}
@ENDNODE
@NODE GETNET "Fonction ARexx GETNET"
@TOC Gestion des objets

    @{b}GETNET(numéro_objet,indice)@{ub}

    Cette fonction permet de déterminer quels sont les réseaux qui
    sont connectés à une pastille. Le premier argument doit donc
    correspondre au numéro d'une pastille (il y aura une erreur
    dans le cas contraire).
    Si le second argument est négatif ou nul, la fonction renvoie le
    nombre de réseaux connectés à cette pastille. Si cet argument
    est positif, la fonction renvoie le numéro du réseau donc le rang
    est défini par cette valeur (s'il vaut 1, le numéro du premier
    réseau est renvoyé, s'il vaut 2, ce sera le second, etc...) Si
    cette valeur est supérieure au nombre de réseaux, une valeur nulle
    est renvoyée.

    @{i}Nota :@{ui} cette fonction avait un autre rôle dans la version 1.04 (voir
    @{"NETNUM" LINK NETNUM}).

    @{i}Voir aussi :@{ui} @{"GETPAD" LINK GETPAD}
@ENDNODE
@NODE GETPAD "Fonction ARexx GETPAD"
@TOC Gestion des objets

    @{b}GETPAD(numéro_objet,début/fin)@{ub}

    Cette fonction permet de trouver quelles sont les pastilles
    définissant un réseau. Le numéro d'objet passé en argument
    doit naturellement être celui d'un objet de ce type, sinon
    une erreur interviendra. Si le second argument est nul, le
    numéro de la pastille définissant le début du vecteur réseau
    est renvoyé, s'il est égal à 1, c'est le numéro de la pastille
    située à l'autre extrémité qui est renvoyé.

    @{i}Voir aussi:@{ui} @{"GETNET" LINK GETNET}, @{"NETNUM" LINK NETNUM}
@ENDNODE
@NODE GETPOINT "Fonction ARexx GETPOINT"
@TOC Interactivité

    @{B}GETPOINT("titre")@{UB}

    Cette fonction affiche le message spécifié dans la barre de
    titre et renvoie les coordonnées du point où clique l'utilisateur.
    Si la fonction a réussi, elle renvoie une chaîne de caractères
    définissant les coordonnées du point choisi, comme pour la
    fonction @{"COORDS" LINK COORDS}.
    Pour retrouver l'abcisse et l'ordonnée, vous pouvez utiliser
    l'écriture suivante dans un script ARexx:
	'GETPOINT("Cliquez sur un point")'
	PARSE VAR result x0 ',' y0

    Si l'utilisateur clique sur le bouton droit ou sur une touche du
    clavier cette fonction renvoie une chaîne nulle.

    Voir aussi : @{"GETLINE" LINK GETLINE}
@ENDNODE
@NODE GETPOS "Fonction ARexx GETPOS"
@TOC Gestion des objets

    @{B}GETPOS(numéro_objet)@{UB}

    Renvoie une valeur déterminant le mode de placement d'un
    texte. Si l'objet occupe une position normale (aucune rotation),
    cette valeur est égale à 1, sinon elle peut prendre les valeurs
    2 à 4 en fonction du nombre de rotations subi par l'objet spécifié.
    Si l'objet spécifié a subi une symétrie, la valeur renvoyée
    est négative.

    Si l'objet spécifié est d'un autre type, la valeur renvoyée
    est toujours nulle.

    @{I}Voir aussi :@{UI} @{"ROTATE" LINK ROTATE}, @{"SYMMETRY" LINK SYMMETRY}.
@ENDNODE
@NODE GETZONE "Fonction ARexx GETZONE"
@TOC Interactivité

    @{B}GETZONE("titre")@{UB}

    Cette fonction permet de définir une zone rectangulaire à l'aide
    de la souris. Le titre est affiché dans la barre de titre
    pendant la durée de l'opération. Pour définir la zone, l'utilisateur
    doit cliquer sur le bouton gauche de la souris, maintenir celui-ci
    appuyé puis le relâcher quand la zone a été définie.
    Toute action sur une touche du clavier ou un autre bouton de la
    souris entraîne l'annulation de la fonction (elle renvoie alors
    une chaîne nulle).
    Si la fonction a réussi, elle renvoie une chaîne de caractères
    définissant les coordonnées de la zone définie, comme pour la
    fonction @{"COORDS" LINK COORDS}.

    @{I}Voir aussi :@{UI} @{"GETLINE" LINK GETLINE}, @{"GETPOINT" LINK GETPOINT}.
@ENDNODE
@NODE GROUP "Fonction ARexx GROUP"
@TOC Gestion des objets

    @{B}GROUP(numéro_objet1,numéro_objet2...)@{UB}

    Crée un nouveau groupe comprenant tous les objets spécifiés.
    Renvoie le numéro du groupe créé (toujours supérieur à 0, sauf
    en cas d'erreur).
    Pour incorporer tous les éléments d'un groupe déjà existant,
    afin par exemple d'y incorporer un nouvel objet, spécifiez son
    numéro de groupe sous forme négative (Version 1.05).


    @{b}GROUP(numéro_objet)@{ub}             Variante avec un seul argument
    Renvoie le numéro du groupe dans lequel est inclus l'objet
    spécifié, ou 0 si pas d'appartenance à un groupe.

    L'argument doit naturellement correspondre au numéro associé à un objet.

    @{i}Nota :@{ui} la notion de groupe est très importante dans AmiPCB, ceux-ci
    définissent en fait les empreintes des composants.

    @{I}Voir aussi :@{UI} @{"UNGROUP" LINK UNGROUP}, @{"GETNAME" LINK GETNAME}, @{"SETNAME" LINK SETNAME}.
@ENDNODE
@NODE HEIGHT "Fonction ARexx HEIGHT"
@TOC Gestion des objets

    @{B}HEIGHT (numéro_objet)@{UB}

    Renvoie la hauteur de l'objet spécifié, en millièmes de millimètres.
    L'argument doit correspondre au numéro associé à un objet,
    s'il est nul c'est la hauteur du bloc sélectionné qui est
    renvoyée (0 s'il n'y a aucun élément sélectionné),
    s'il est négatif c'est la hauteur du clip spécifié (ou du moins
    des éléments qui y sont contenus) qui est renvoyée (0 si le clip
    est vide).
    Si vous voulez connaître la hauteur d'un groupe, copiez-le dans un
    clip, puis testez la hauteur de ce clip, par exemple :
	'UNMARK:MARK(-G):COPY(5):HEIGHT(-5)'

    @{i}Rappel :@{ui} les dimensions sont exprimées en millièmes
    de millimètres.

    @{I}Voir aussi :@{UI} @{"WIDTH" LINK WIDTH}
@ENDNODE
@NODE HELP "Fonction ARexx HELP"
@TOC Divers

    @{B}HELP("node")@{UB}

    Cette fonction permet l'appel d'AmigaGuide, comme par le
    menu @{"Projet/Aide" LINK "Aide"}. L'argument doit être le
    nom d'un noeud (node) du fichier AmiPCB.guide. Vous
    pouvez, en particulier, spécifier n'importe quel nom
    de fonction ou de menu.

    @{I}Exemples :@{UI}
	HELP("Copy to clip")        (Notez les espaces "solides")
	HELP("DRAW")
@ENDNODE
@NODE HSCALE "Fonction ARexx HSCALE"
@TOC Gestion des objets

    @{B}HSCALE(numéro_objet)@{UB}

    Cette fonction renvoie la valeur de l'échelle horizontale de
    l'objet spécifié. L'argument doit correspondre au numéro associé
    à un objet.
    Si l'argument est nul c'est la valeur de placement courante
    qui est renvoyée.

    @{I}Voir aussi :@{UI} @{"VSCALE" LINK VSCALE}, @{"SETSCALE" LINK SETSCALE}.
@ENDNODE
@NODE IF "Fonction ARexx IF"
@TOC Maths

    @{B}IF(x, a1, a2)@{UB}

    Si x est différent de zéro, renvoie a1 sinon renvoie a2.
    Seul a1 OU a2 sera évalué, selon le résultat de x. À noter que les
    arguments a1 et a2 peuvent être de n'importe quel type, ils
    peuvent également faire appel à d'autres fonctions, y compris
    d'autres fonctions IF.

    @{I}Exemples :@{UI}
    IF(A>B,A,B)                 renvoie la valeur maximale de A et B
    DEF MIN(A,B)=IF(A<B,A,B)    définition fonction MIN
    C=REQTEXT("Composant?","","NOM"):IF(NOM==1,LOADCLIP(4,C),0)
@ENDNODE
@NODE INIT "Fonction ARexx INIT"
@TOC Maths

    @{B}INIT(variable,...)@{UB}

    Cette fonction est identique à la fonction @{"RESET" LINK RESET},
    cependant le type est réinitialisé, c'est à dire que la
    @{"variable" LINK Variable} pourra ensuite prendre n'importe quel type autorisé
    (numérique ou chaîne de caractères).
    Le nombre d'arguments est quelconque.

    @{I}Exemple :@{UI}
    A=1 	    La variable A est du type numérique
    ...
    INIT(A)         A est réinitialisée (elle perd sa valeur et son type)
    ...
    A="Chaîne de caractères"    La variable A est maintenant du type chaîne

    @{I}Voir aussi :@{UI} @{"RESET" LINK RESET}
@ENDNODE
@NODE LANGUAGE "Fonction ARexx LANGUAGE"
@TOC "Gestion préférences"

    @{b}LANGUAGE@{ub}

    Renvoie le nom de la "locale" utilisée par le système.
    Pour le français la chaîne "français.language" est renvoyée.
    Cette fonction permet notamment d'internationaliser les scripts.

    @{i}Exemple d'utilisation:@{ui}
	'LANGUAGE'
	if result='français.language' then fr=1
	else fr=0
	...
	if fr=1 then 'MESSAGE("Attention, si vous continuez"+CHR(10)+"vous allez perdre vos données !")'
	else 'MESSAGE("Warning, if you continue you are"+CHR(10)+"going to loose all your work !")'
@ENDNODE
@NODE LEN "Fonction ARexx LEN"
@TOC Traitement chaînes

    @{B}LEN("chaîne")@{UB}

    Renvoie la longueur de la chaîne de caractères passée en argument.
@ENDNODE
@NODE LINE "Fonction ARexx LINE"
@TOC Gestion des objets

    @{B}LINE(numéro_objet)@{UB}

    Cette fonction renvoie le numéro de ligne où est situé l'objet
    spécifié. L'argument doit correspondre au numéro associé à un objet,
    s'il est nul c'est la position du bord haut du bloc sélectionné qui
    est renvoyée (ou -1 s'il n'y a aucun élément sélectionné), s'il est
    négatif, c'est la position du groupe spécifié (passé sous forme négative)
    qui est renvoyée.

    @{I}Voir aussi:@{UI} @{"ENDLINE" LINK ENDLINE}, @{"COL" LINK COL}, @{"COORDS" LINK COORDS}.
@ENDNODE
@NODE LOAD "Fonction ARexx LOAD"
@TOC Gestion fenêtres

    @{B}LOAD("nom_fichier")@{UB}

    Charge le fichier schéma spécifié dans la fenêtre courante.
    La fenêtre perd son contenu, même s'il avait été modifié.
    Utilisez la commande @{"MODIF" LINK MODIF} pour savoir si le schéma a été
    modifié auparavant, sans avoir été sauvé.
    La fenêtre prend le nom du fichier qui a été chargé.

    Renvoie 0 si tout s'est bien passé, sinon un code d'erreur.

    @{I}Voir aussi :@{UI} @{"OPEN" LINK OPEN}, @{"SAVE" LINK SAVE}
@ENDNODE
@NODE LOADCLIP "Fonction ARexx LOADCLIP"
@TOC Gestion blocs

    @{B}LOADCLIP(unité_clip,"fichier")@{UB}

    Charge le fichier spécifié dans l'unité spécifiée. Si le chemin
    complet du fichier n'est pas spécifié, la recherche de celui-ci
    s'effectue dans le chemin courant, puis dans le chemin spécifié
    par le type d'outil @{"CLIPS" LINK CLIPS} ou la fonction @{"CLIPPATH" LINK CLIPPATH}.

    @{i}Attention :@{ui} le clip n'est pas pour autant placé sous le curseur
    ou sur le schéma, utilisez pour cela le menu @{"Édition/Coller" LINK "Paste from clip"}
    ou la fonction @{"PASTE" LINK PASTE}.

    Cette fonction renvoie le nombre d'objets qui ont été lus.

    @{I}Voir aussi:@{UI} @{"CLIPUNIT" LINK CLIPUNIT}, @{"SAVECLIP" LINK SAVECLIP}.
@ENDNODE
@NODE LOCK "Fonction ARexx LOCK"
@TOC Interactivité

    @{B}LOCK@{UB}

    Verrouille la fenêtre courante. C'est à dire que pendant toute
    l'exécution du script l'utilisateur ne peut plus avoir accès au
    document: les menus ne sont plus accessibles et les opérations faites
    à l'aide du clavier ou de la souris ne sont plus prises en compte.
    Certaines fonctions, comme le choix d'un fichier, la sauvegarde,
    le chargement, l'impression, entraînent un verrouillage temporaire
    de toutes les fenêtres.

    Valeur renvoyée: code supérieur ou égal à zéro si opération réussie,
    -1 si verrouillage impossible (manque de mémoire ?).

    @{I}Nota :@{UI} les fenêtres sont automatiquement débloquées lorsque l'exécution
    d'un script se termine. S'il se produit un blocage vous pouvez
    également mettre fin à cette situation en cliquant deux fois sur
    l'icône du programme située sur l'écran du Workbench.
    Cette fonction ne peut être appelée depuis une macro clavier (il
    y aurait risque de blocage total des entrées/sorties).

    @{I}Voir aussi :@{UI} @{"UNLOCK" LINK UNLOCK}.
@ENDNODE
@NODE MAP "Fonction ARexx MAP"
@TOC Divers

    @{B}MAP("combinaison touches", "séquence")@{UB}

    Cette fonction permet de programmer une macro-commande, qui
    sera exécutée lors de l'appui d'une certaine combinaison de
    touches. Les touches @{B}ALT@{UB}, @{B}SHIFT@{UB} et @{B}CTRL@{UB} peuvent être utilisées
    pour définir la touche (il faut d'ailleurs utiliser au moins
    l'une d'entre elles, sauf pour les touches de fonction).
    Seules les touches définies par un seul caractère sont
    définissables (pour l'instant): vous ne pouvez définir par
    cette fonction les flèches ou certaines touches spéciales.

    La séquence peut inclure n'importe quelle autre commande, elle
    doit être incluse entre des parenthèses (chaîne de caractères).
    La définition peut commencer par le signe =, le résultat de
    la macro est alors automatiquement affiché, s'il y en a un.

    À noter que ces définitions sont sauvées dans le fichier de
    configuration AmiPCB.keys lors d'une opération de
    sauvegarde des @{"Préférences" LINK "Touches fonction"}, et sont donc récupérées
    lors d'une opération de lecture ou au lancement du programme.

    Vous pouvez également utiliser le @{"script" LINK Script} ARexx MapKey pour
    définir une séquence de touches.

    @{I}Exemples :@{UI}
    MAP("shift-ctrl-a","SAVE(""Work:Projets/Typons/Essai typon"")")
    MAP("CTRL-n ","CALL(""NewScript"")")
    MAP("F10","WTOBACK")

    @{I}Voir aussi :@{UI}
    @{"READMAP" LINK READMAP}, @{"UNMAP" LINK UNMAP}, définition des @{"touches de fonction" LINK "Touches fonction"}.
@ENDNODE
@NODE MARK "Fonction ARexx MARK"
@TOC Gestion blocs

    @{B}MARK(numéro_objet,...)@{UB}

    Permet de sélectionner un ou plusieurs objets. Les arguments doivent
    correspondre au numéro associé à un objet. Il peut aussi s'agir d'un
    nméro de groupe, sous forme négative.
    Cette fonction renvoie le nombre d'objets qui ont été
    effectivement sélectionnés (les objets qui étaient @{B}déjà@{UB}
    sélectionnés ne sont @{B}pas@{UB} comptabilisés).

    @{i}Exemples :@{ui}
	MARK(-GROUP(FIRSTSEL))              sélection du premier groupe sélectionné
	MARK(FIRSTSEL,NEXTSEL(FIRSTSEL))    sélection des deux premiers objets sélectionnés

    @{I}Voir aussi :@{UI} @{"UNMARK" LINK UNMARK}, @{"MARKZONE" LINK MARKZONE}.
@ENDNODE
@NODE MARKZONE "Fonction ARexx MARKZONE"
@TOC Gestion blocs

    @{B}MARKZONE(x0, x1, y0, y1)@{UB}

    Permet de sélectionner les objets compris dans le rectangle
    défini par les points de coordonnées x0, y0 et x1, y1. Les
    éléments doivent être entièrement dans la zone pour être
    sélectionnés.
    Cette fonction renvoie le nombre d'objets qui ont été
    sélectionnés (les objets qui étaient déjà sélectionnés
    ne sont pas comptés).

    Pour sélectionner l'ensemble des éléments du schéma, utilisez
    la commande suivante:
    MARKZONE(0,0,WWIDTH-1,WHEIGHT-1)

    @{i}Rappel :@{ui} les dimensions et les coordonnées sont exprimées en
    millièmes de millimètres.

    @{I}Voir aussi :@{UI} @{"MARK" LINK MARK}, @{"UNMARK" LINK UNMARK}.
@ENDNODE
@NODE MENU "Fonction ARexx MENU"
@TOC Divers

    @{B}MENU("intitulé menu")@{UB}

    Appelle le menu dont le titre (ou le début du titre seul) est spécifié,
    la recherche s'arrêtant pour le premier menu dont la chaîne correspond.
    Certains menus sont cependant inopérants pour cette fonction, reportez
    vous à la description des menus pour de plus amples précisions.
    Il faut aussi savoir que les titres des menus comportant des espaces,
    comme "Effacer fichier" comportent des "espaces solides", obtenus en
    frappant ALT-espace au clavier. Ceci a été rendu nécessaire par
    AmigaGuide qui ne retrouve pas les noeuds (nodes) dont le nom comporte
    des espaces (à moins que je n'aie fait une bétise ?). Il faut donc bien
    taper le nom des menus concernés avec ces "espaces solides".
    Ex: MENU ("Quit")   Entraîne la fermeture de tous les tableaux
    MENU ("Copier") Recopie des objets sélectionnés dans le tampon mémoire

    Valeur renvoyée: nom du menu s'il a été trouvé. Une erreur est générée si
    ce n'est pas le cas (Valeur argument incorrecte).

    @{I}Nota :@{UI} l'intitulé du menu peut correspondre à la chaîne localisée ou à la
    chaîne originale, en anglais. Il est préférable d'utiliser les
    chaînes en anglais afin que les scripts puissent fonctionner quelle
    que soit le langage utilisé.

    @{I}Exemple :@{UI} MENU("Copier") en français est équivalent à MENU("Copy").
@ENDNODE
@NODE MESSAGE "Fonction ARexx MESSAGE"
@TOC Interactivité

    @{B}MESSAGE("chaîne")@{UB}

    Affiche une requête contenant le message spécifié. Ce texte peut
    contenir des sauts de lignes.

    @{I}Exemple :@{UI} MESSAGE("Ceci est un"+CHR(10)+"message.")
@ENDNODE
@NODE MESURE "Fonction ARexx MESURE"
@TOC Gestion fenêtres

    @{B}MESURE(dimension fenêtre)@{UB}

    Renvoie une des dimensions de la fenêtre courante. La valeur qui
    est renvoyée dépend de celle passée en argument:
      égal 0: @{B}coordonnée gauche@{UB} de l'emplacement de la fenêtre
      égal 1: @{B}coordonnée haute@{UB} de l'emplacement de la fenêtre
      égal 2: @{B}largeur@{UB} de la fenêtre (en pixels)
      égal 3: @{B}hauteur@{UB} de la fenêtre (en pixels)
      égal 4: @{B}largeur maximale@{UB} pouvant être prise par la fenêtre
      égal 5: @{B}hauteur maximale@{UB} pouvant être prise par la fenêtre
      égal 6: @{B}largeur de l'écran@{UB} (idem @{"SWIDTH" LINK SWIDTH})
      égal 7: @{B}hauteur de l'écran@{UB} (idem @{"SHEIGHT" LINK SHEIGHT}

    Si la fenêtre est @{B}cachée@{UB} la valeur renvoyée est toujours nulle,
    sauf pour les dimensions de l'écran, nulles uniquement si l'écran
    est fermé (quand toutes les fenêtres sont cachées).

    Si la fenêtre est @{B}réduite@{UB} la valeur déterminant sa dimension
    est renvoyée sous forme négative (soit pour les valeurs de
    l'argument égales de 0 à 3 compris).

    @{I}Voir aussi :@{UI} @{"WINDOW" LINK WINDOW}
@ENDNODE
@NODE MODIF "Fonction ARexx MODIF"
@TOC Gestion fenêtres

    @{B}MODIF@{UB}

    Permet de savoir si la fenêtre courante contient un document ayant
    été modifié, sans avoir été sauvé.

    La valeur renvoyée est nulle si le typon n'a pas été
    modifié depuis la dernière sauvegarde, sinon elle est
    normalement égale à 1.

    @{I}Exemple :@{UI}
    'MODIF'
    if result~=0 then 'MENU("Sauver")'
    'CLOSE(0)'

    Autre écriture (plus rapide):
    'IF(MODIF,MENU("Sauver"),0):CLOSE(0)'

    Ce petit script peut être utilisé pour une sauvegarde
    automatique (voir script SauverAuto.AmiPCB).
@ENDNODE
@NODE MOVE "Fonction ARexx MOVE"
@TOC Gestion des objets

    @{B}MOVE(numéro_objet, dx, dy)@{UB}

    Cette fonction permet de déplacer un objet du nombre de
    millièmes de millimètres spécifié par les valeurs de dx et dy.
    S'il s'agit d'une pastille les pistes qui lui sont connectées
    seront tirées, selon l'état du menu @{"Tirer pistes" LINK "Pull lines"}.

    L'argument doit correspondre au numéro associé à un objet,
    s'il est nul, tous les objets sélectionnés seront déplacés.
    Si l'argument est négatif, c'est le groupe d'indice correspondant
    qui est déplacé (en fait d'indice égal à l'opposé de l'arguemnt).

    La valeur renvoyée par cette fonction correspond au nombre d'objets
    qui ont pu être déplacés. Si le résultat est négatif, s'il que le
    déplacement était impossible (manque de place, débordement).

    @{i}Exemples :@{ui}
	MOVE(FIRSTSEL,1000,1000)            déplace le premier objet sélectionné
	MOVE(-GROUP(FIRSTSEL),1000,1000)    déplace le premier groupe sélectionné
@ENDNODE
@NODE NET "Fonction ARexx NET"
@TOC Placement objets

    @{B}NET(pastille1,pastille2)@{UB}

    Cette fonction permet d'ajouter une liaison réseau entre les
    deux pastilles dont les numéros sont passés en argument. Si
    ces numéros correspondent à un objet d'un type différent, il
    y aura un message d'erreur (Type d'objet incorrect).

    Si la fonction réussit le numéro de l'objet réseau qui a été
    créé est renvoyé. Pour connaître le numéro de réseau associé
    à cet objet, utilisez la fonction NETNUM, pour lui fixer un
    label, utilisez la fonction SETLABEL.

    Nota : il est impossible de créer une liaison reliant une
    pastille à elle-même (Ex: NET(4,4)).

    @{i}Voir aussi :@{ui} menu @{"Réseaux/Ajouter liaison" LINK "Add net"}, @{"NETNUM" LINK NETNUM}, @{"GETLABEL" LINK GETLABEL}, @{"SETLABEL" LINK SETLABEL}
@ENDNODE
@NODE NETNUM "Fonction ARexx NETNUM"
@TOC Gestion des objets

    @{b}NETNUM(numéro_objet)@{ub}

    Cette fonction renvoie le numéro du réseau associé à un objet
    de ce type. Le numéro d'objet doit être celui d'un objet du
    type réseau (liaison) ou d'une pastille. Les réseaux peuvent
    aussi posséder un label, mais comme ce n'est pas obligatoire,
    seul ce numéro permet de savoir s'il appartiennent bien
    au même ensemble de réseaux.

    @{i}Nota :@{ui} cette fonction était appelée @{"GETNET" LINK GETNET} dans la version 1.04.

    @{i}Voir aussi :@{ui} @{"GETLABEL" LINK GETLABEL}.
@ENDNODE
@NODE NEWBOARD "Fonction ARexx NEWBOARD"
@TOC Gestion fenêtres

    @{B}NEWBOARD@{UB}

    Cette fonction ne prend aucun argument. Elle permet l'ouverture
    d'une nouvelle fenêtre. Elle renvoie un indice supérieur ou égal
    à 0 si l'opération a réussi, négatif si l'opération échoue. En
    fait l'indice correspond à celui de la nouvelle tâche qui a été
    créée. La fenêtre est ouverte après, à condition qu'il y ait
    assez de ressources système. Chaque nouvelle fenêtre possède
    son propre port ARexx, appelé AmiPCB.x où x correspond à l'indice
    renvoyé par cette fonction.
    Les dimensions prises par la fenêtre sont celles spécifiées dans
    les préférences (dimensions document). Elles peuvent être changées
    en utilisant la fonction @{"DIMBOARD" LINK DIMBOARD}.

    Utilisez le script NewWindow si vous voulez ouvrir une nouvelle
    fenêtre, la valeur renvoyée peut en effet, dans certains cas ne
    pas concorder si la fenêtre ne peut être ouverte, ce script gère
    ces problèmes éventuels.
    Exemple d'appel:
	call 'NewWindow.AmiPCB' [nom_fichier]
	code = result
	if code < 0 then exit
	address value "AmiPCB."||code
    Ces quatre lignes permettent d'ouvrir une fenêtre qui prend le nom
    spécifié en argument (nom_fichier). Le code retourné correspond à
    l'indice renvoyé par la fonction NEWBOARD.
@ENDNODE
@NODE NEXTSEL "Fonction ARexx NEXTSEL"
@TOC Gestion blocs

    @{B}NEXTSEL(numéro_objet)@{UB}

    Renvoie le numéro d'objet sélectionné, suivant celui qui
    est spécifié en argument. Cette fonction permet ainsi,
    associée à @{"FIRSTSEL" LINK FIRSTSEL}, de parcourir tous les éléments
    sélectionnés.
@ENDNODE
@NODE OBJECTS "Fonction ARexx OBJECTS"
@TOC Gestion des objets

    @{B}OBJECTS@{UB}

    Cette fonction renvoie le nombre d'éléments appartenant à
    la fenêtre courante.

    Attention : les objets ont un numéro qui leur est attribué lors
    de leur création. Celui-ci ne change pas par la suite, même si
    des objets sont supprimés. La plupart du temps certains objets
    ont donc des numéros supérieurs au nombre d'objets présents
    sur la feuille de travail. Il n'est donc pas possible de
    scanner tous les objets à l'aide d'une boucle comme celle
    qui suit :
	FOR(I=1,I<O=OBJECTS,..,I+I+1)
    Il faut utiliser une boucle possédant la structure suivante :
	I=FINDOBJ(0,0,-1,-1):WHILE(I>0,...,I=FINDOBJ(I,0,-1,-1))
@ENDNODE
@NODE OPEN "Fonction ARexx OPEN"
@TOC Gestion fenêtres

    @{B}OPEN("nom_fichier#?")@{UB}

    Cette fonction permet de charger un fichier dans une @{B}nouvelle@{UB}
    fenêtre, mais à la différence de la fonction @{"LOAD" LINK LOAD}, elle
    permet également le chargement de plusieurs fichiers. Il
    suffit pour cela de spécifier des caractères génériques
    (#?[]) dans le nom du fichier, comme prévu sous DOS.
    Tous les schémas correspondant à ce format seront chargés.
    Une nouvelle fenêtre est ouverte pour chacun des schémas
    trouvés, correspondant à la demande.

    La fonction renvoie le nombre de fenêtres ayant été ouvertes.


    @{I}Exemples :@{UI}
      OPEN("Travail:AmiPCB/Typons/Projet_TV/#?") demande le
    chargement de tous les fichiers du répertoire Projet_TV

      OPEN("#?.brd")  demande de charger tous les fichiers ayant
    l'extension .brd, situés dans le répertoire courant

      OPEN("Typons/Carte ampli")  demande le chargement du
    fichier "Carte ampli" situé dans le répertoire Typons.


    @{I}Voir aussi :@{UI} @{"CLOSE" LINK CLOSE}, @{"LOAD" LINK LOAD}.
@ENDNODE
@NODE PAD "Fonction ARexx PAD"
@TOC Placement objets

    @{B}PAD(x, y)@{UB}

    Cette fonction permet de placer une pastille à l'emplacement
    spécifié par les coordonnées x et y.

    Elle renvoie le numéro de l'objet qui a été placé, si elle
    réussit, sinon elle renvoie 0.

    Les dimensions de la pastille ainsi que son type sont définis
    par le menu @{"Dessin/Type de pastille" LINK "Pad type"} (ou la fonction @{"SETPAD" LINK SETPAD}).

    @{i}Voir aussi :@{ui} @{"SETPAD" LINK SETPAD}, @{"SETSIDE" LINK SETSIDE}
@ENDNODE
@NODE PADNUM "Fonction ARexx PADNUM"
@TOC Gestion des objets

    @{B}PADNUM(numéro_objet,numéro_borne)@{UB}

    Cette fonction permet de lire et/ou de changer le numéro de
    la borne associée à une pastille. Pour ne pas changer le
    numéro, passez une valeur négative (normalement -1).

    La valeur renvoyée est le numéro en cours avant l'exécution
    de la fonction.

    L'argument doit correspondre au numéro associé à un objet
    du type pastille.

    @{i}Nota :@{ui} le numéro de borne peut être compris entre 0 et 32767
    compris. Une valeur supérieure passée en argument donnera un
    message d'erreur (Valeur paramètre incorrect).

    @{I}Voir aussi :@{UI} @{"SETPAD" LINK SETPAD}
@ENDNODE
@NODE PASTE "Fonction ARexx PASTE"
@TOC Gestion blocs

    @{B}PASTE(clip, x, y)@{UB}

    Collage du contenu du tampon mémoire spécifié, à l'emplacement
    donné par les arguments x et y.

    Cette fonction renvoie le nombre d'objets qui ont pu être placés
    sur le document.

    @{I}Voir aussi :@{UI} @{"COPY" LINK COPY}, @{"CLIPUNIT" LINK CLIPUNIT}, @{"LOADCLIP" LINK LOADCLIP}.
@ENDNODE
@NODE PCBPATH "Fonction ARexx PCBPATH"
@TOC Divers

    @{b}PCBPATH@{ub}

    Cette fonction renvoie le chemin où est situé le programme (l'exécutable).
    Le chemin comprend toujours un ':' ou un '/' terminal.

    Exemple, pour trouver le chemin des scripts ARexx :
	'PCBPATH'
	pcbpath=result
	'MESSAGE("Les scripts ARexx sont dans"+CHR(10)+"'pcbpath'ARexx")'
@ENDNODE
@NODE PICKOBJ "Fonction ARexx PICKOBJ"
@TOC Interactivité

    @{B}PICKOBJ("message")@{UB}

    Affiche le message spécifié dans la barre de titre de la fenêtre,
    puis attend un clic de l'utilisateur dans la fenêtre. Renvoie le
    numéro de l'objet sur lequel a eu lieu le clic (0, s'il n'y en a pas).
    L'utilisateur peut faire défiler le document à l'aide des ascenseurs
    et des boutons associés.Il peut aussi annuler l'opération en appuyant
    sur le bouton droit de la souris ou sur une touche du clavier, la
    valeur renvoyée est alors -1.

    @{I}Voir aussi :@{UI} @{"GETPOINT" LINK GETPOINT}.
@ENDNODE
@NODE PIN "Fonction ARexx PIN"
@TOC Gestion des objets

    @{B}PIN(numéro_broche,groupe)@{UB}

    Cette fonction renvoie le numéro de l'objet (pastille) appartenant
    au groupe spécifié, et dont le numéro de broche correspond à celui
    recherché.

    La valeur renvoyée est positive si le groupe a été trouvé, ainsi
    que la borne, elle est nulle si le groupe a été trouvé mais pas
    la borne, enfin elle est égale à -1 si le groupe n'a pas été
    trouvé.

    @{i}Nota :@{ui} les groupes correspondent en fait aux composants.
    Elle sert donc à retrouver la pastille correspondant à une borne
    particulière d'un composant.
@ENDNODE
@NODE PRINT "Fonction ARexx PRINT"
@TOC Gestion fenêtres

    @{B}PRINT(rapport, rotation, bords, en-tête)@{UB}

    @{"Imprime" LINK "Print document"} le document, en tenant compte des arguments
    rapport (facteur d'agrandissement, doit être compris entre 25 et
    1000), rotation (si égal à 0, le document est imprimé
    comme il est visible à l'écran, si égal à 1, le schéma est
    imprimé avec une rotation de 90 degrés), bords (si non nul,
    le contour sera imprimé) et l'en-tête (imprimé si non nul).

    Renvoie 0 si tout se passe bien, un code d'erreur dans le
    cas contraire.
@ENDNODE
@NODE READDEF "Fonction ARexx READDEF"
@TOC Divers

    @{B}READDEF("fonction")@{UB}

    Cette fonction permet de connaître la définition associée à
    une fonction. Le nom de la fonction passée en argument doit
    figurer en MAJUSCULES, entre parenthèses. Cette fonction
    doit bien sûr avoir été préalablement définie à l'aide de
    la fonction DEF, sinon une chaîne nulle est renvoyée.
    Vous ne pouvez lire les définitions préprogrammées, comme
    ABS, ARC, ASC, etc...

    @{I}Exemple :@{UI}
    READDEF("CIRCLE")   renvoie la définition associée à la
	fonction CIRCLE, si elle existe.

    @{I}Voir aussi :@{UI}  @{"DEF" LINK DEF}
@ENDNODE
@NODE READMAP "Fonction ARexx READMAP"
@TOC Divers

    @{B}READMAP("combinaison touches")@{UB}

    Cette fonction renvoie une chaîne de caractère contenant la
    séquence de commande associée à la combinaison de touches
    spécifiée. Elle permet ainsi de créer des macros qui peuvent
    s'appeler les unes les autres. Sa vocation est cependant de
    vérifier qu'une séquence n'existe pas déjà pour une combinaison
    de touches donnée, ou de déterminer connaître la macro déjà
    programmée afin de l'éditer (comme dans le script MapKey).

    @{I}Exemples :@{UI}
      READMAP("shift-ctrl-a")
      READMAP("CTRL-i")
      READMAP("ALT-µ")
      EXEC(READMAP("F1"))   Exécute la commande associée à la touche F1

    @{I}Voir aussi :@{UI} @{"MAP" LINK MAP}, @{"UNMAP" LINK UNMAP}
@ENDNODE
@NODE READTEXT "Fonction ARexx READTEXT"
@TOC Gestion des objets

    @{B}READTEXT(numéro_objet)@{UB}

    Renvoie le texte associé à un objet, cet objet doit être un
    élément de texte.
    Si ce texte n'existe pas ou si l'objet est d'un type différent
    la fonction renvoie une chaîne nulle.

    L'argument doit correspondre au numéro associé à un objet
    du type texte (note, référence ou valeur).

    @{I}Voir aussi :@{UI} @{"SETTEXT" LINK SETTEXT}
@ENDNODE
@NODE REQFILE "Fonction ARexx REQFILE"
@TOC Interactivité

    @{B}REQFILE("titre_requête","chemin","fichier")@{UB}

    Ouvre la boîte de requête de fichier, avec le titre spécifié.
    La requête s'ouvre en explorant le chemin spécifié. Ce chemin
    doit correspondre à celui d'un répertoire ou d'un volume.

    Renvoie le nom du fichier sélectionné ou une chaîne nulle
    si l'utilisateur clique sur le bouton Annule.

    @{I}Exemple :@{UI}
    REQFILE("Choisissez un fichier","Work:AmiPCB",FILEPART(""))
@ENDNODE
@NODE REQLIST "Fonction ARexx REQLIST"
@TOC Interactivité

    @{b}REQLIST("Titre","Entrée1"...)@{ub}

    Cette fonction permet l'ouverture d'une fenêtre possédant le
    titre spécifié. Elle contient autant de lignes déterminées par
    les arguments qui suivent (entrée1, etc...). Elle renvoie le
    numéro de l'entrée (1 à n) sur lequel l'utilisateur clique avec
    le bouton gauche de la souris, ou -1 si l'opération est annulée
    (clic sur le bouton de fermeture de la fenêtre).

    Si la fenêtre n'a pu être ouverte (manque mémoire ou autre),
    la valeur 0 est renvoyée.
@ENDNODE
@NODE REQNUM "Fonction ARexx REQNUM"
@TOC Interactivité

    @{b}REQNUM("Titre",nombre,"Variable")@{ub}

    Affiche une requête comportant le message de titre spécifié,
    un gadget numérique contenant le nombre spécifié en second
    argument permet de saisir un nombre entier.
    Si l'utilisateur valide son choix, la variable dont le nom
    est passé en troisième argument est positionnée à 1, sinon
    elle est positionnée à 0. Si cette commande est reçue d'un
    script ARexx, c'est une variable ARexx qui sera initialisée
    alors que si la commande est envoyée depuis une requête
    AmiPCB, c'est une variable AmiPCB qui sera utilisée.

    Exemple de script :
	'REQNUM("Entrez un nombre",0,"VALIDE")'
	if valide=1 then do
	    n=result
	    'MESSAGE("Vous avez saisi le nombre 'n'")'
	end
	else 'MESSAGE("Opération annulée")'

    Exemple de macro :
	N=REQNUM("Entrez un nombre",0,"VALIDE"):IF(VALIDE==1,MESSAGE("Vous avez saisi "+STR(N)),MESSAGE("Opération annulée"))

    @{i}Voir aussi :@{ui} @{"ASKNUM" link ASKNUM}  @{"ASKTEXT" link ASKTEXT}  @{"REQTEXT" link REQTEXT}
@ENDNODE
@NODE REQTEXT "Fonction ARexx REQTEXT"
@TOC Interactivité

    @{b}REQTEXT("Titre","Chaîne","Variable")@{ub}

    Affiche une requête comportant le message de titre spécifié,
    un gadget de chaîne contenant la chaîne spécifiée en second
    argument permet de saisir une chaîne de caractères.
    Si l'utilisateur valide son choix, la variable dont le nom
    est passé en troisième argument est positionnée à 1, sinon
    elle est positionnée à 0. Si cette commande est reçue d'un
    script ARexx, c'est une variable ARexx qui sera initialisée
    alors que si la commande est envoyée depuis une requête
    AmiPCB, c'est une variable AmiPCB qui sera utilisée.

    Exemple de script :
	'REQTEXT("Entrez un nom","Durand","VALIDE")'
	if valide=1 then do
	    nom=result
	    'MESSAGE("Vous avez saisi le nom 'nom'")'
	end
	else 'MESSAGE("Opération annulée")'

    Exemple de macro :
	N=REQTEXT("Entrez un nom","Dupont","VALIDE"):IF(VALIDE==1,MESSAGE("Vous avez saisi "+N),MESSAGE("Opération annulée"))

    @{i}Voir aussi :@{ui} @{"ASKNUM" link ASKNUM}  @{"ASKTEXT" link ASKTEXT}  @{"REQTEXT" link REQTEXT}
@ENDNODE
@NODE REQUEST "Fonction ARexx REQUEST"
@TOC Interactivité

    @{B}REQUEST("titre")@{UB}

    Affiche une requête avec le texte spécifié, et deux boutons
    Valider et Annuler. Si l'utilisateur clique sur le bouton
    Valider ou appuie sur ENTRÉE, cette fonction renvoie 1.

    Si l'utilisateur clique sur le bouton Annuler ou appuie sur
    la touche ESC, la valeur renvoyée est 2.

    En cas de problème (manque mémoire par exemple), la valeur
    renvoyée est négative ou nulle.
@ENDNODE
@NODE RESET "Fonction ARexx RESET"
@TOC Maths

    @{B}RESET(variable,...)@{UB}

    Cette fonction est identique à la fonction @{"INIT" LINK INIT},
    cependant le type des variables n'est pas réinitialisé.
    Si la @{"variable" LINK Variable} est du type numérique elle prend la valeur 0, si
    c'est une chaîne de caractères elle devient une chaîne vide ("").
    Le nombre d'arguments est quelconque.

    @{I}Exemple :@{UI} RESET(A,B,C)

    @{I}Voir aussi :@{UI} @{"INIT" LINK INIT}
@ENDNODE
@NODE REXXPORT "Fonction ARexx REXXPORT"
@TOC Gestion fenêtres

    @{b}REXXPORT("nom_fichier")@{ub}

    Cette fonction permet de connaître le nom du port ARexx associé à un
    document, s'il est présent en mémoire. Une chaîne nulle est renvoyée
    si le document n'existe pas.
    L'argument n'a pas à inclure le chemin complet (optionnel). Si c'est
    une chaîne nulle ("") le nom du port ARexx de la fenêtre courante
    est renvoyé.

    @{I}Voir aussi :@{UI} @{"BOARDS" LINK BOARDS}
@ENDNODE
@NODE ROTATE "Fonction ARexx ROTATE"
@TOC Gestion des objets

    @{B}ROTATE(numéro_objet, rotations)@{UB}

    Fait tourner un objet du nombre de quarts de tour spécifié.
    Si le numéro d'objet est nul, c'est le mode de placement courant
    qui est affecté: les placements effectués ensuite tiendront
    compte de cette nouvelle position, que ce soit par une macro
    ou un menu (placement d'un texte par exemple).

    Si le numéro d'objet est négatif, c'est le groupe dont le
    numéro est passé en argument (sous forme négative) qui est
    tourné (le nombre de rotations ne peut alors être que d'une
    seule fois, même si l'argument est supérieur).

    Cette fonction renvoie 0 si l'opération a échoué (par
    manque de place par exemple), sinon elle renvoie 1.

    @{I}Voir aussi :@{UI} @{"SYMMETRY" LINK SYMMETRY}, @{"SETSCALE" LINK SETSCALE}, @{"GETPOS" LINK GETPOS}.

    @{i}Exemples :@{ui}
	ROTATE(-GROUP(FIRSTSEL),1)  Fait tourner le 1er groupe sélectionné
	ROTATE(-GROUP(FIRSTSEL),2)  Fait tourner le 1er groupe sélectionné (1 seule fois)
	ROTATE(FIRSTSEL,2)      Fait tourner le premier objet sélectionné
				de deux quarts de tour.
@ENDNODE
@NODE SAVE "Fonction ARexx SAVE"
@TOC Gestion fenêtres

    @{B}SAVE("nom_fichier")@{UB}

    Sauve le document sous le nom spécifié. Si le fichier existait déjà
    aucun avertissement n'a lieu. Renvoie 1 si aucun problème ne
    survient, sinon 0. Un fichier .info comportant une icône est
    créée si le menu @{"Préférences/Sauver icône" LINK "Save icon"} est marqué, un fichier
    comportant l'extension .bis est créé si le menu
    @{"Préférences/Créer copie" LINK "Backup"} est marqué.

    @{I}Voir aussi:@{UI} @{"SAVECOPY" LINK SAVECOPY}, @{"SAVEICON" LINK SAVEICON}.
@ENDNODE
@NODE SAVEALL "Fonction ARexx SAVEALL"
@TOC Gestion fenêtres

    @{B}SAVEALL@{UB}

    Cette fonction permet de sauver le contenu du document en mémoire.
    Son intérêt est de pouvoir annuler les modifications induites par
    un script ARexx à l'aide du menu "@{"Édition/Restaurer" LINK Undo}". L'appel à
    cette fonction doit naturellement être faite au début au script.
@ENDNODE
@NODE SAVECLIP "Fonction ARexx SAVECLIP"
@TOC Gestion blocs

    @{B}SAVECLIP(unité,"nom_fichier")@{UB}

    Cette fonction permet de sauver le clip spécifié dans le fichier
    spécifié. Naturellement le clip doit auparavant avoir été rempli
    à l'aide de la fonction COPY, par exemple.
    Si le nom de fichier spécifié ne contient pas de chemin, le clip
    sera placé dans le répertoire défini par la fonction @{"CLIPPATH" LINK CLIPPATH}
    ou par le type d'outil @{"CLIPS" LINK CLIPS}.

    @{I}Voir aussi :@{UI} @{"LOADCLIP" LINK LOADCLIP}, @{"CLIPUNIT" LINK CLIPUNIT}.
@ENDNODE
@NODE SAVECOPY "Fonction ARexx SAVECOPY"
@TOC Gestion préférences

    @{B}SAVECOPY(1/0/-1)@{UB}

    Cette fonction permet de déterminer, comme le menu @{"Préférences/Créer copie" LINK "Backup"},
    si une copie du schéma sera créée lors d'une opération de sauvegarde.
    Cette fonction renvoie 1 si le menu était marqué AVANT l'exécution
    de la fonction, ou 0 s'il ne l'était pas.
    Si l'argument vaut -1 l'état du menu est changé.

    Pour lire l'état du menu sans le modifier, utilisez la commande
    SAVECOPY(-2).

    @{I}Voir aussi :@{UI} @{"SAVEICON" LINK SAVEICON}.
@ENDNODE
@NODE SAVEICON "Fonction ARexx SAVEICON"
@TOC Gestion préférences

    @{B}SAVEICON(1/0/-1)@{UB}

    Cette fonction permet de fixer, comme le menu @{"Préférences/Sauver icône" LINK "Save icon"},
    si une icône sera créée lors d'une opération de sauvegarde.

    Cette fonction renvoie 1 si le menu était marqué AVANT l'exécution
    de la fonction, ou 0 s'il ne l'était pas.
    Si l'argument vaut -1 l'état du menu est changé.

    Pour lire l'état du menu sans le modifier, utilisez la commande
    SAVEICON(-2).

    @{I}Voir aussi :@{UI} @{"SAVECOPY" LINK SAVECOPY}.
@ENDNODE
@NODE SAVEIFF "Fonction ARexx SAVEIFF"
@TOC Gestion fenêtres

    @{B}SAVEIFF("nom_fichier",rapport_affichage,rotation,contours)@{UB}

    Sauve le document au format ILBM (image BitMap) en noir et blanc.
    Aucune valeur particulière n'est renvoyée par cette fonction, si.
    une erreur survient, une requête affichant quelle est sa cause
    est affichée (Manque mémoire, erreur ouverture fichier).

    Le rapport d'affichage correspond à un facteur d'agrandissement
    (ou de diminution) de la taille de l'image, il est exprimé en
    pourcentage (égal à 100 pour avoir une taille d'image normale).
    Les arguments rotation et contours doivent être positionnés à 1
    ou à 0, le premier permettant de faire tourner le document de 90°,
    le second permettant de dessiner les contours du document.

    @{I}Exemple :@{UI}
    SAVEIFF("Work:Images/Carte_amplificateur", 200, 0, 0)

    @{I}Voir aussi :@{UI} menu @{"Projet/Sauver format IFF" LINK "Save IFF"}
@ENDNODE
@NODE SECURITY "Fonction ARexx SECURITY"
@TOC Maths

    @{B}SECURITY(nombre boucles)@{UB}

    Cette fonction détermine le @{B}nombre maximal de boucles@{UB} pouvant
    être effectuées par une des fonctions @{"FOR" LINK FOR} ou @{"WHILE" LINK WHILE}. Ceci
    permet de sortir des boucles sans fin assez simplement.
    La valeur par défaut est égale à 500. Vous pouvez entrer
    une valeur allant de 1 jusqu'à 2^31-1 (2147483647). La
    fonction renvoie la valeur en cours avant son exécution.

    Vous pouvez donner à cette fonction un argument de grande
    valeur sans craindre de blocage, il est effet maintenant
    possible d'interrompre une boucle en appuyant simultanément
    sur les touches @{B}CTRL, ALT et ESC@{UB}.

    Si la valeur passée en argument est nulle seule la valeur
    actuelle est renvoyée, sans modification.
@ENDNODE
@NODE "SELECT" "Fonction ARexx SELECT"
@TOC Interactivité

    @{B}SELECT("Titre","Bouton 1"...)@{UB}

    Cette fonction permet d'ouvrir une boîte de requête comportant
    un nombre variable de boutons,  comportant chacun un texte
    choisi par l'utilisateur. Si l'utilisateur clique sur l'un
    de ces boutons, la fonction renvoie le rang du bouton (en
    commençant par la valeur 1 pour le premier, 2 pour le
    second, etc...).

    Le texte passé en premier argument peut comporter des sauts de
    ligne.

    Si la valeur renvoyée est négative ou nulle, c'est que
    l'utilisateur a appuyé sur le bouton droit ou sur la touche
    Esc, ou bien que la requête n'a pu être ouverte.

    @{I}Exemple :@{UI}
    SELECT("Nombre de bornes ?","10 bornes","20 bornes","À déterminer")
@ENDNODE
@NODE SETARRAY "Fonction ARexx SETARRAY"
@TOC Divers

    @{b}SETARRAY(tableau,indice,valeur)@{ub}

    Cette fonction permet d'affecter une valeur à une variable
    appartenant à un tableau. L'indice doit être compris entre 0
    et la valeur maximale déterminant la taille du tableau
    (diminuée de 1), si cet indice est inférieur à 0, tous
    les éléments du tableau prennent la valeur spécifiée.
    La valeur doit toujours être du même type (nombre ou
    chaîne de caractères, la première affectation détermine
    le type utilisé par la suite).

    @{i}Exemple:@{ui}
	'DIMARRAY(N,100)'
	'FOR(I=0,I<100,SETARRAY(N,I,I*2),I=I+1)'
	'GETARRAY(N,50)'            retourne 100
	'SETARRAY(N,-1,0)'
	'GETARRAY(N,50)'            retourne 0

    Voir aussi: @{"ARRAYDIM" LINK ARRAYDIM}, @{"DIMARRAY" LINK DIMARRAY}, @{"DELARRAY" LINK DELARRAY}, @{"GETARRAY" LINK GETARRAY}
@ENDNODE
@NODE SETCOLOR "Fonction ARexx SETCOLOR"
@TOC Gestion préférences

    @{b}SETCOLOR(couleur,rouge,vert,bleu)@{ub}

    Cette fonction permet de définir une couleur utilisée par le programme.
    Elle doit être utilisée avec précaution si vous travaillez sur un écran
    autre que celui du programme, le Workbench notamment.
    Utilisez le script FixPalette si vous voulez travailler sur un écran
    visité par AmiPCB.
    La couleur doit être comprise entre 0 et 15, les niveaux de couleur peuvent
    être compris entre 0 et $FFFFFFFF.

    Aucune valeur n'est renvoyée par cette fonction.

	Voir aussi : @{"GETCOLOR" LINK GETCOLOR}
@ENDNODE
@NODE SETFILL "Fonction ARexx SETFILL"
@TOC Placement objets

    @{B}SETFILL(0/1/-1)@{UB}

    Détermine quel est le mode de remplissage utilisé pour dessiner
    les objets du type rectangle, triangle ou ellipse.

    Si l'argument vaut 1, les objets seront pleins,  s'il vaut 0
    il seront vides. S'il vaut -1 le mode actuel reste inchangé,
    la valeur en vigueur @{B}avant@{UB} l'appel de la fonction est  alors
    renvoyée.
@ENDNODE
@NODE SETGRID "Fonction ARexx SETGRID"
@TOC Gestion fenêtres

    @{B}SETGRID(pas_grille)@{UB}

    Détermine la @{I}taille de la grille@{UI} utilisée pour placer les
    composants sur le schéma.  À noter que  cette fonction ne
    met pas à jour la grille à l'écran, ce qui peut poser des
    problèmes,	utilisez le menu  "Dessin/Redessiner tout" si
    vous souhaitez qu'elle soit mise à jour, en utilisant par
    exemple la commande suivante :

    SETGRID(254):MENU("Redessiner")


    @{I}Valeur renvoyée :@{UI} valeur du pas utilisée @{B}avant@{UB} l'exécution
    de la commande.

    Utilisez la commande  SETGRID(0)  pour connaître le pas de
    la grille sans le modifier.

    @{i}Nota :@{ui} le pas est exprimé en millièmes de millimètres.

    @{I}Voir aussi :@{UI}  @{"SNAPGRID" LINK SNAPGRID}.
@ENDNODE
@NODE SETLABEL "Fonction ARexx SETLABEL"
@TOC Gestion des objets

    @{b}SETLABEL(numéro_objet,"Label")@{ub}

    La valeur spécifiée (sous forme de chaîne de caractères) est
    attribuée à l'objet spécifié. Si l'objet spécifié possédait
    déjà un label, il est remplacé. Cet objet doit naturellement
    être du type liaison réseau. Attention : les labels ne peuvent
    posséder plus de 7 caractères pour déterminer leur nom.

    @{I}Exemple :@{UI}	SETLABEL(FIRSTSEL,"Label1")

    @{I}Voir aussi :@{UI} @{"GETLABEL" LINK GETLABEL}
@ENDNODE
@NODE SETNAME "Fonction ARexx SETNAME"
@TOC Gestion des objets

    @{b}SETNAME(groupe,"nom")@{ub}

    Cette fonction permet d'attribuer un nom au groupe spécifié. Ces
    noms permettent d'identifier les empreintes.

    Le premier argument doit correspondre à un numéro de groupe existant.

    @{i}Voir aussi :@{ui} @{"GETNAME" LINK GETNAME}, @{"GROUP" LINK GROUP}
@ENDNODE
@NODE SETNOTE "Fonction ARexx SETNOTE"
@TOC Gestion des objets

    @{b}SETNOTE(numéro_objet)@{ub}

    Cette fonction fixe l'attribut de l'objet (de type texte)
    au type note.

    @{i}Voir aussi :@{ui} @{"SETREF" LINK SETREF}, @{"SETVAL" LINK SETVAL}
@ENDNODE
@NODE SETORTHO "Fonction ARexx SETORTHO"
@TOC Placement objets

    @{B}SETORTHO(action)@{UB}

    Cette fonction permet de déterminer si les tracés seront ou
    non effectués à 45° lors de leur placement par l'utilisateur.
    Elle est analogue au menu @{"Dessin/Tracé orthogonal" LINK Orthogonal}.

    Si action est égal à 1, le menu sera marqué,
    si action est égal à 0, le menu est démarqué,
    si action vaut -1, le menu change d'état.
    Pour toute autre valeur il ne se passe rien.

    La fonction renvoie l'état du menu (1 quand il est
    marqué, 0 sinon) tel qu'il était avant son exécution.
@ENDNODE
@NODE SETPAD "Fonction ARexx SETPAD"
@TOC Gestion des objets

    @{b}SETPAD(numéro_objet,type,largeur,hauteur,trou_perçage)@{ub}

    Cette fonction permet de déterminer les caractéristiques d'une
    pastille :
	- son type : 1 (ellipse), 2 (rectangle), 3 ou 4 (hexagones)
	ou 5 (octogonale), pour que la pastille soit en double face
	donnez une valeur négative
	- sa largeur
	- sa hauteur (dimensions en millièmes de millimètres)
	- le diamètre du trou de perçage (supérieur ou égal à 0).

    Le numéro d'objet doit naturellement être celui d'une pastille,
    s'il est nul les données s'appliquent au mode de placement des
    composants.
    Pour ne pas changer les dimensions, utilisez une valeur égale à
    -1, pour ne pas changer le type, utilisez la valeur 0.

    La valeur renvoyée est celle correspondant au type de la pastille,
    avant que la fonction n'ait été exécutée.


    @{i}Exemples :@{ui}
	Pour que les pastilles suivantes soient hexagonales lors du
	placement (double-face) :
	    SETPAD(0,-3,-1,-1,-1)
	Programmation d'une séquence de touche, pour que les pastilles
	suivantes soient octogonales (double-face) :
	    MAP("alt-o","SETPAD(0,-5,-1,-1,-1)")
	Pour que la pastille sélectionnée n'ait plus de trou de perçage :
	    SETPAD(FIRSTSEL,0,-1,-1,0)
	Pour lire le type d'une pastille, sans la modifier :
	    SETPAD(objet,0,-1,-1,-1)

    @{i}Voir aussi :@{ui} @{"PAD" LINK PAD}, @{"PADNUM" LINK PADNUM}
@ENDNODE
@NODE SETPULL "Fonction ARexx SETPULL"
@TOC Gestion préférences

    @{b}SETPULL(0/1/-1)@{ub}

    Cette fonction permet de lire ou de fixer l'état du menu
    @{"Préférences/Tirer lignes" LINK "Pull lines"}. Si l'argument est positif, le
    mode est validé, s'il est nul le mode est annulé, s'il
    est négatif, le mode est inchangé.
    Dans tous les cas, la valeur correspondant au mode avant
    l'exécution de la fonction est renvoyé.
@ENDNODE
@NODE SETREF "Fonction ARexx SETREF"
@TOC Gestion des objets

    @{B}SETREF(numéro_objet)@{UB}

    L'objet spécifié (du type texte) prend l'attribut référence.
    Il peut alors servir à définir la référence d'un composant,
    en le regroupant aux autres éléments définissant celui-ci.

    @{I}Exemple :@{UI} SETREF(FIRSTSEL)

    @{I}Voir aussi :@{UI} @{"SETVAL" LINK SETVAL}, @{"SETNOTE" LINK SETNOTE}
@ENDNODE
@NODE SETSCALE "Fonction ARexx SETSCALE"
@TOC Gestion des objets

    @{B}SETSCALE(numéro_objet, échelle_horizontale, échelle_verticale)@{UB}

    L'argument doit correspondre au numéro associé à un objet,
    s'il est nul, la fonction fixe les valeurs par défaut des
    échelles, utilisées lors du placement des objets, comme avec
    le menu @{"Dessin/Placer texte" LINK "Place text"}.
    Si l'une des valeurs des arguments correspondant à une
    échelle est négative, cette échelle restera inchangée.

    Cette fonction renvoie 1 si elle a réussi, 0 dans le cas
    contraire (manque de place, échelle incorrecte...).

    Si un script est appelé a changer l'échelle de placement courante,
    aussi bien horizontale que verticale, il est souvent souhaitable de
    rétablir les valeurs qui étaient en vigueur avant l'exécution du
    script. Pour cela la structure suivante peut être utilisée :

	/* Soit à utiliser l'échelle horizontale x et l'échelle verticale y */
	'_EH_=HSCALE(0):_EV_=VSCALE(0):SETSCALE(0,x,y)'
	...
	'SETSCALE(0,_EH_,_EV_)'

    @{I}Voir aussi :@{UI} @{"HSCALE" LINK HSCALE}, @{"VSCALE" LINK VSCALE}
@ENDNODE
@NODE SETSIDE "Fonction ARexx SETSIDE"
@TOC Gestion des objets

    @{b}SETSIDE(numéro_objet,face)@{ub}

    Cette fonction permet de déterminer sur quelle face sera placé
    l'objet spécifié. Si ce numéro est nul, c'est le mode de placement
    courant qui est affecté (identique à l'utilisation des menus
    Dessin/Côté cuivre (face = 1), Côté composants (face = 2) ou
    Sérigraphie (face = 4)).

    Si le second argument est nul, ou s'il est différent de l'une des
    quatre valeurs valides (1, 2 ou 4) le placement ne sera pas modifié,
    seul l'état du placement en cours sera renvoyé.

    Exemple :
	Pour programmer une séquence de touches permettant de faire
	passer le premier objet sélectionné sur la sérigraphie :
	    MAP("alt-s","SETSIDE(FIRSTSEL,4)")
	Pour connaître la face de placement du premier objet sélectionné :
	    SETSIDE(FIRSTSEL,0)
@ENDNODE
@NODE SETTEXT "Fonction ARexx SETTEXT"
@TOC Gestion des objets

    @{B}SETTEXT(numéro_objet,"chaîne")@{UB}

    Cette fonction permet de fixer le texte associé à un objet.
    Cet objet doit être du type texte, valeur ou référence de
    composant.

    La valeur renvoyée est égale à 1 si la fonction a réussi,
    sinon elle est nulle.

    @{I}Voir aussi :@{UI} @{"READTEXT" LINK READTEXT}
@ENDNODE
@NODE SETVAL "Fonction ARexx SETVAL"
@TOC Gestion des objets

    @{B}SETVAL(numéro_objet)@{UB}

    L'objet spécifié (du type texte) prend l'attribut valeur.
    Il peut alors servir à définir la valeur ou le type d'un composant,
    en le regroupant aux autres éléments définissant celui-ci.

    @{I}Exemple :@{UI} SETVAL(FIRSTSEL)

    @{I}Voir aussi :@{UI} @{"SETREF" LINK SETREF}, @{"SETNOTE" LINK SETNOTE}
@ENDNODE
@NODE SETWIDTH "Fonction ARexx SETWIDTH"
@TOC Gestion des objets

    @{b}SETWIDTH(numéro_objet,largeur)@{ub}

    L'objet spécifié (du type piste ou ligne, boîte, ellipse, arc...)
    prend la largeur spécifiée (exprimée en millièmes de millimètres).
    Si le numéro d'objet est nul, la fonction modifie le mode de
    placement courant. Pour connaître la largeur en vigueur, sans
    la changer, passer une valeur égale à -1 (dans tous les cas la
    fonction renvoie la valeur qui était en cours avant son exécution).
@ENDNODE
@NODE SGN "Fonction ARexx SGN"
@TOC Maths

    @{B}SGN(nombre)@{UB}

    Renvoie 1 si l'argument est positif, -1 s'il est négatif,
    zéro s'il est nul.
@ENDNODE
@NODE SHEIGHT "Fonction ARexx SHEIGHT"
@TOC Gestion préférences

    @{B}SHEIGHT@{UB}

    Cette fonction renvoie la hauteur de l'écran courant.
    Elle ne nécessite aucun argument. Elle équivaut à
    MESURE(7).

    @{B}Voir aussi:@{UB} @{"SWIDTH" LINK SWIDTH}, @{"MESURE" LINK MESURE}
@ENDNODE
@NODE SNAPGRID "Fonction ARexx SNAPGRID"
@TOC Placement objets

    @{B}SNAPGRID(action)@{UB}

    Cette fonction permet de déterminer si les éléments seront ou
    non @{B}alignés sur la grille@{UB} lors de leur placement par l'utilisateur.
    Elle est liée au menu @{"Dessin/Aligner sur grille" LINK "Snap on grid"}.

    Si action est égal à 1, le menu sera marqué,
    si action est égal à 0, le menu est démarqué,
    si action vaut -1, le menu change d'état.
    Pour toute autre valeur il ne se passe rien.


    La fonction renvoie l'état du menu (1 quand il est
    marqué, 0 sinon) tel qu'il était avant son exécution.


    @{I}Voir aussi:@{UI} @{"SETGRID" LINK SETGRID}.
@ENDNODE
@NODE STOBACK "Fonction ARexx STOBACK"
@TOC Gestion fenêtres

    @{B}STOBACK@{UB}

    Cette fonction fait passer l'écran d'AmiPCB en arrière-plan.
    Elle ne nécessite aucun argument.

    @{I}Voir aussi :@{UI} @{"STOFRONT" LINK STOFRONT} @{"WTOBACK" LINK WTOBACK} @{"WTOFRONT" LINK WTOFRONT}
@ENDNODE
@NODE STOFRONT "Fonction ARexx STOFRONT"
@TOC Gestion fenêtres

    @{B}STOFRONT@{UB}

    Cette fonction fait passer l'écran d'AmiPCB au premier plan.
    Elle ne nécessite aucun argument.

    @{I}Voir aussi :@{UI} @{"STOBACK" LINK STOBACK} @{"WTOBACK" LINK WTOBACK} @{"WTOFRONT" LINK WTOFRONT}
@ENDNODE
@NODE STR "Fonction ARexx STR"
@TOC Maths

    @{B}STR(nombre)@{UB}

    Renvoie la chaîne de caractères correspondant à un nombre.
    La base utilisée pour la conversion est la base 10 (décimal).
@ENDNODE
@NODE SWIDTH "Fonction ARexx SWIDTH"
@TOC Gestion préférences

    @{B}SWIDTH@{UB}

    Cette fonction renvoie la largeur de l'écran courant.
    Elle ne nécessite aucun argument. Elle équivaut à
    MESURE(6).

    @{I}Voir aussi :@{UI} @{"SHEIGHT" LINK SHEIGHT}, @{"MESURE" LINK MESURE}
@ENDNODE
@NODE SYMMETRY "Fonction ARexx SYMMETRY"
@TOC Gestion des objets

    @{B}SYMMETRY(numéro_objet, position)@{UB}

    Cette fonction permet de symétriser on non un objet, par
    rapport à son axe vertical (ou son axe horizontal, s'il
    a été tourné d'un ou trois quarts de tour).

    L'argument doit correspondre au numéro associé à un objet.
    Si ce numéro est nul, la fonction modifie la façon de
    placer un texte (menu "Dessin/Placer texte").
    Si ce numéro est négatif, la symétrie est réalisée sur
    le groupe (dont le numéro est passé sous forme négative),
    le second argument peut alors être quelconque.

    L'argument position peut prendre trois valeurs :
    - égal à 1: la symétrie est réalisée,
    - égal à 0: pas de symétrie,
    - égal à -1: inversion de la position.

    La valeur renvoyée est égale à 1 s'il y a eu une modification
    de la position de l'objet, 0 dans le cas contraire.

    @{I}Voir aussi :@{UI} @{"ROTATE" LINK ROTATE}, @{"SETSCALE" LINK SETSCALE}, @{"GETPOS" LINK GETPOS}.
@ENDNODE
@NODE TEST "Fonction ARexx TEST"
@TOC Gestion blocs

    @{B}TEST(numéro_objet)@{UB}

    Permet de savoir si un objet est @{B}sélectionné@{UB} ou non.
    L'argument doit correspondre au numéro associé à un objet.

    La fonction renvoie 1 si l'objet est sélectionné, 0
    dans le cas contraire.
@ENDNODE
@NODE TIME "Fonction ARexx TIME"
@TOC Divers

    @{B}TIME(secondes)@{UB}

    Renvoie l'heure courante, si l'argument est non nul, les
    secondes sont comprises.

    @{I}Exemples :@{UI}
    TIME(0)                 renvoie 23:24
    TIME(1)                 renvoie 23:24:27
    WRITE(TIME(1),0,0)      écrit l'heure courante "sous" le curseur

    @{I}Voir aussi :@{UI} @{"DATE" LINK DATE}
@ENDNODE
@NODE TITLE "Fonction ARexx TITLE"
@TOC Gestion fenêtres

    @{B}TITLE("titre")@{UB}

    Spécifie le titre de la fenêtre courante. Si l'argument
    est une chaîne nulle, le titre reprend son état normal,
    c'est à dire que le nom du fichier y réapparaît.
    Cette fonction permet de signaler une opération un peu
    longue en prévenant l'utilisateur, sans pour autant
    bloquer la fenêtre ni le programme.

    @{I}Exemple de script :@{UI}
	'TITLE("Traitement en cours...")'
	...	   traitement...
	'TITLE("")'         on remet le titre normal
@ENDNODE
@NODE TRIANGLE "Fonction ARexx TRIANGLE"
@TOC Placement objets

    @{B}TRIANGLE(x0,y0,x1,y1,x2,y2)@{UB}

    Trace un triangle selon les coordonnées spécifiées.
    La largeur du tracé dépend du mode courant (voir @{"SETWIDTH" LINK SETWIDTH})
    et du mode de remplissage (voir @{"SETFILL" LINK SETFILL}).

    Le numéro de l'objet qui a été créé est renvoyé (0 si erreur).

    Utilisez la fonction @{"COORDS" LINK COORDS} pour connaître les coordonnées
    d'un triangle existant.
@ENDNODE
@NODE TXHEIGHT "Fonction ARexx TXHEIGHT"
@TOC Gestion des objets

    @{B}TXHEIGHT("texte")@{UB}

    Renvoie la hauteur du texte spécifié, en millièmes de millimètres.
    Cette fonction prend en compte l'échelle courante, ainsi que le
    mode de placement (rotation éventuelle).
    Dans tous les cas c'est l'espace vertical occupé qui est renvoyé.

    @{I}Voir aussi :@{UI} @{"TXWIDTH" LINK TXWIDTH}
@ENDNODE
@NODE TXWIDTH "Fonction ARexx TXWIDTH"
@TOC Gestion des objets

    @{B}TXWIDTH("texte")@{UB}

    Renvoie la largeur du texte spécifié, en millièmes de millimètres.
    Cette fonction prend en compte l'échelle courante, ainsi que le
    mode de placement (rotation éventuelle).
    Dans tous les cas c'est l'espace horizontal occupé qui est renvoyé.

    Cette fonction est utile pour centrer un texte dans un rectangle.

    @{I}Exemple@{UI} :
      texte="Essai texte"
      xx=3000;y=3000
      'SETSCALE(0,180,180):SETSIDE(0,4):TXWIDTH("'texte'")'
      l=result
      'TXHEIGHT("'texte'")'
      h=result
      'WRITE("'texte'",'xx','y')'
      obj=result
      'ABS(GETPOS('obj'))'
      if result=1 then 'BOX('xx','y','xx+l','y-h')'
      else if result=2 then 'BOX('xx','y','xx+l','y+h')'
      else if result=3 then 'BOX('xx-l','y','xx','y+h')'
      else 'BOX('xx-l','y-h','xx','y')'

    @{I}Voir aussi :@{UI} @{"TXHEIGHT" LINK TXHEIGHT}
@ENDNODE
@NODE TYPE "Fonction ARexx TYPE"
@TOC Gestion des objets

    @{B}TYPE(numéro_objet)@{UB}

    Cette fonction permet de connaître la nature d'un objet.
    L'argument doit correspondre au numéro associé à un objet.

    La valeur renvoyée dépend de son type :
    - égale à 2: c'est une @{B}piste@{UB} ou une ligne
    - égale à 3: c'est un @{B}arc de cercle@{UB}
    - égale à 4: c'est un @{B}texte (note)@{UB}
    - égale à 5: c'est une @{B}référence@{UB}
    - égale à 6: c'est une @{B}valeur@{UB}
    - égale à 7: c'est une @{B}pastille@{UB}
    - égale à 10: c'est une @{B}ellipse@{UB}
    - égale à 17: c'est une @{b}liaison réseau@{ub}
    - égale à 18: c'est une @{b}liaison réseau@{ub} cachée
    - égale à 22: c'est un @{B}rectangle@{UB}
    - égale à 24: c'est un @{B}rectangle plein@{UB}
    - égale à 25: c'est une @{b}ellipse pleine@{ub}
    - égale à 26: c'est un @{B}triangle@{UB}
    - égale à 27: c'est un @{B}triangle plein@{UB}.

    Vous pouvez ainsi définir des fonctions permettant de reconnaître
    les objets :
    DEF PISTE(O) = IF (TYPE(O) == 2, 1, 0)
    DEF TEXTE(O) = IF ((TYPE(O)==4) | (TYPE(O)==5) | (TYPE(O)==6), 1, 0)
    Chacune de ces fonctions renvoie 1 si l'objet est du type testé
    sinon elles renvoient 0.

    @{B}Nota:@{UB}  le script InitObjets.AmiPCB  initialise des variables au
    nom correspondant à la valeur du type.
    Ainsi on y trouve PISTE=2,	ceci permet alors d'utiliser le
    nom d'un objet et non  la valeur du type qui lui associée. Pour
    utiliser ces définitions il suffit d'appeler ce script au début
    d'un script qui l'utilise.
@ENDNODE
@NODE UNGROUP "Fonction ARexx UNGROUP"
@TOC Gestion des objets

    @{B}UNGROUP(groupe)@{UB}

    Le groupe dont le numéro est spécifié est dissocié.
    Renvoie le nombre d'éléments appartenant au groupe.

    @{I}Voir aussi :@{UI} @{"GROUP" LINK GROUP}.
@ENDNODE
@NODE UNLOCK "Fonction ARexx UNLOCK"
@TOC Interactivité

    @{B}UNLOCK@{UB}

    Annule le verrouillage de la fenêtre courante, réalisé par la
    fonction @{"LOCK" LINK LOCK}.
@ENDNODE
@NODE UNMAP "Fonction ARexx UNMAP"
@TOC Divers

    @{B}UNMAP("combinaison touches")@{UB}

    Cette fonction permet d'annuler la programmation d'une macro-commande,
    associée à une certaine combinaison de touches. Les touches ALT, SHIFT
    et CTRL peuvent être utilisées pour définir la touche (il faut
    d'ailleurs utiliser au moins l'une d'entre elles, sauf pour les touches
    de fonction).

    @{I}Exemples :@{UI}
      UNMAP("shift-ctrl-a")
      UNMAP("ctrl-shift-a")
      UNMAP("CTRL-)")
      UNMAP("ALT-µ")
      UNMAP("F2")

    @{I}Voir aussi :@{UI} @{"MAP" LINK MAP}, @{"READMAP" LINK READMAP}
@ENDNODE
@NODE UNMARK "Fonction ARexx UNMARK"
@TOC Gestion blocs

    @{B}UNMARK(numéro_objet,...)@{UB}

    Annule le marquage des objets spécifiés. Les arguments doivent
    correspondre au numéro associé à un objet. Il peut aussi s'agir
    d'un nméro de groupe, sous forme négative..

    @{I}Note :@{UI} l'appel de la fonction avec un argument égal à 0 entraîne
    l'annulation de la sélection de tous les objets du document
    courant.

    @{I}Voir aussi :@{UI} @{"MARK" LINK MARK}, @{"MARKZONE" LINK MARKZONE}
@ENDNODE
@NODE VAL "Fonction ARexx VAL"
@TOC Maths

    @{B}VAL("chaîne")@{UB}

    Renvoie la valeur numérique correspondant à la chaîne de
    caractères passée en argument. Seuls les caractères
    correspondant à des nombres entiers sont pris en compte.
    Le nombre doit figurer sous forme décimale, sauf s'il est
    précédé du préfixe $, qui signale qu'il s'agit d'un
    nombre sous forme hexadécimale.

    @{I}Exemples :@{UI}
      VAL("14")       renvoie 14
      VAL("14.3")     renvoie 14
      VAL("$5F")      renvoie 95 (le $ spécifie une chaîne hexadécimale)

    @{I}Voir aussi :@{UI} @{"STR" LINK STR}
@ENDNODE
@NODE VERSION "Fonction ARexx VERSION"
@TOC Divers

    @{B}VERSION@{UB}

    Cette fonction renvoie le numéro de version du programme.

    @{i}Exemple de script:@{ui}
    'VERSION'
    if result < 1.04 then do
	'MESSAGE("Cette version du programme"+CHR(10)+"ne convient pas.")'
	exit
    end
    ...
@ENDNODE
@NODE VIEW "Fonction ARexx VIEW"
@TOC Gestion fenêtres

    @{b}VIEW(faces)@{ub}

    Cette fonction permet de fixer quelles sont les faces à visualiser.
    Pour cela chacune des faces a un bit qui lui est attribué :
	- la face cuivre correspond au bit 0 (donc égal à 1)
	- la face composants correspond au bit 1 (égal à 2)
	- la sérigraphie correspond au bit 2 (égal à 4)
	- le chevelu correspond au bit 3 (égal à 8).
    Si la valeur transmise est négative, la vue sera faite
    du côté cuivre, sinon c'est du côté composants que le
    document est visualisé.
    Si l'argument est nul, l'affichage n'est pas modifié.

    La valeur renvoyée est toujours celle correspondant au mode
    en vigueur avant l'appel de la fonction.

    Voir aussi : menu @{"Menu Préférences/Vue" LINK "Menu Préférences/Vue"}
@ENDNODE
@NODE VSCALE "Fonction ARexx VSCALE"
@TOC Gestion des objets

    @{B}VSCALE(numéro_objet)@{UB}

    Cette fonction renvoie la valeur de l'échelle verticale de
    l'objet spécifié.
    Si l'argument est nul c'est la valeur de placement courante
    qui est renvoyée (v2.07).

    @{I}Voir aussi :@{UI} @{"HSCALE" LINK HSCALE}
@ENDNODE
@NODE WHEIGHT "Fonction ARexx WHEIGHT"
@TOC Gestion fenêtres

    @{B}WHEIGHT@{UB}

    Renvoie la hauteur utile de la fenêtre spécifiée.
    La valeur renvoyée correspond en fait à la largeur du document,
    en millièmes de millimètres.

    @{I}Voir aussi :@{UI} @{"WWIDTH" LINK WWIDTH}, @{"MESURE" LINK MESURE}, @{"WINDOW" LINK WINDOW}, @{"DIMBOARD" LINK DIMBOARD}
@ENDNODE
@NODE WHILE "Fonction ARexx WHILE"
@TOC Maths

    @{B}WHILE(fin,action1,...)@{UB}

    Cette fonction est identique à la fonction @{"FOR" LINK FOR}, il
    lui manque juste le premier argument. L'initialisation des
    @{"variables" LINK Variable} ou des cellules testées aura donc du être effectuée
    auparavant.

    @{I}Voir aussi :@{UI} @{"SECURITY" LINK SECURITY}
@ENDNODE
@NODE WIDTH "Fonction ARexx WIDTH"
@TOC Gestion des objets

    @{B}WIDTH(numéro_objet)@{UB}

    Renvoie la @{B}largeur de l'objet@{UB} spécifié, en millièmes de millimètres.

    Le numéro d'objet doit avoir sa valeur comprise entre 1
    et @{"OBJECTS" LINK OBJECTS}, s'il est nul c'est la largeur du
    @{B}bloc sélectionné@{UB} qui est renvoyée (ou -1 s'il n'y a
    aucun élément sélectionné), s'il est négatif c'est la largeur
    du clip spécifié (ou du moins des éléments qui y sont contenus)
    qui est renvoyée (0 si le clip est vide).

    Si vous voulez connaître la largeur d'un groupe, copiez-le dans
    un clip, puis testez la largeur de ce clip, par exemple :
	'UNMARK:MARK(-G):COPY(5):WIDTH(-5)'.

    @{I}Voir aussi :@{UI} @{"HEIGHT" LINK HEIGHT}
@ENDNODE
@NODE WINDOW "Fonction ARexx WINDOW"
@TOC Gestion fenêtres

    @{B}WINDOW(x, y, largeur, hauteur)@{UB}

    Cette fonction permet de redimensionner la fenêtre courante, ou
    de la déplacer.
    Les deux premiers arguments correspondent aux coordonnées du coin
    supérieur gauche de la fenêtre dans l'écran. Les deux arguments
    suivants déterminent ses dimensions.
    Attention: cette fonction ne fonctionne que pour les fenêtres
    "normales".Pour les fenêtres réduites, seules les coordonnées
    x et y peuvent être modifiées (pour déplacer les fenêtres).
    Les fenêtres cachées ne peuvent naturellement pas être modifiées,
    mais il suffit de spécifier la commande WINDOW(-1,-1,-1,-1) pour
    permettre leur réouverture.
    Si vous ne voulez pas modifier un ou plusieurs de ces paramètres
    et que vous ne connaissiez pas leur valeur, donnez-leur une valeur
    négative (-1). Si les arguments ont des valeurs trop grandes ou
    aberrantes, le programme essaiera d'y remédier au mieux.
    La valeur renvoyée est égale au nombre de valeurs ayant été prises
    en compte.

    @{I}Exemples :@{UI}
    WINDOW(0,0,-1,-1)   déplace la fenêtre en haut à gauche de l'écran
	sans modifier ses dimensions.
    WINDOW(-1,-1,200,50) change les dimensions de la fenêtre

    @{I}Voir aussi :@{UI} @{"MESURE" LINK MESURE}
@ENDNODE
@NODE WRITE "Fonction ARexx WRITE"
@TOC Placement objets

    @{B}WRITE("chaîne", x, y)@{UB}

    Écriture d'une @{B}chaîne de caractères@{UB} à l'emplacement spécifié
    par les arguments @{B}x et y@{UB}.

    L'échelle verticale et l'échelle horizontale courantes sont prises
    en compte pour déterminer les dimensions de cet élément (voir @{"SETSCALE" LINK SETSCALE},
    @{"ROTATE" LINK ROTATE}, @{"SYMMETRY" LINK SYMMETRY}).


    Si la fonction réussit, elle renvoie le numéro de l'objet
    qui a été placé, sinon elle renvoie 0.


    @{I}Voir aussi :@{UI} @{"READTEXT" LINK READTEXT}.
@ENDNODE
@NODE WTOBACK "Fonction ARexx WTOBACK"
@TOC Gestion fenêtres

    @{B}WTOBACK@{UB}

    Envoie la fenêtre courante en arrière-plan.

    @{I}Voir aussi :@{UI} @{"WTOFRONT" LINK WTOFRONT}, @{"STOBACK" LINK STOBACK}, @{"STOFRONT" LINK STOFRONT}
@ENDNODE
@NODE WTOFRONT "Fonction ARexx WTOFRONT"
@TOC Gestion fenêtres

    @{B}WTOFRONT@{UB}

    Envoie la fenêtre courante à l'avant-plan.

    @{I}Voir aussi :@{UI} @{"WTOBACK" LINK WTOBACK}
@ENDNODE
@NODE WWIDTH "Fonction ARexx WWIDTH"
@TOC Gestion fenêtres

    @{B}WWIDTH@{UB}

    Renvoie la largeur utile de la fenêtre courante.
    La valeur renvoyée correspond en fait à la hauteur du document,
    en millièmes de millimètres.

    @{I}Voir aussi :@{UI} @{"WHEIGHT" LINK WHEIGHT}, @{"MESURE" LINK MESURE}, @{"WINDOW" LINK WINDOW}, @{"DIMBOARD" LINK DIMBOARD}
@ENDNODE
@NODE ZOOM "Fonction ARexx ZOOM"
@TOC Gestion fenêtres

    @{B}ZOOM(rapport)@{UB}

    Cette commande permet de connaître et de modifier le rapport de zoom
    définissant l'affichage.
    Pour le modifier, spécifiez une valeur de l'argument comprise entre
    25 (vue d'ensemble, la taille est alors réduite à 25% de la taille
    normale) et 1000 (zoom avec grossissement égal à 10 fois).
    Si l'argument n'est pas compris entre ces deux valeurs la fonction
    n'a aucun effet.

    La valeur renvoyée est la valeur du rapport en vigueur avant l'appel
    de la fonction.
@ENDNODE
@NODE "HowToLocalize" "How to loacalize Your ARexx scripts and the toolbars"

    @{B}How to loacalize Your ARexx scripts and the toolbars@{UB}

    1) Add Your language to @{"'ARexx/InitVars.AmiPCB'" LINK ARexx/InitVars.AmiPCB/Main}
    This script is called from (nearly) every AmiPCB script to initialize some
    general AmiPCB variables and to open requesters with the users language.
    For now, we have the following three language definitions:
      lg = 0 : English (this is the default, if no other language is defined)
      lg = 1 : Français (French)
      lg = 2 : Deutsch (German)
    If You don't know which language is set up, just call from AmiPCB the
    @{"'ARexx/ShowLanguage.AmiPCB'" LINK ARexx/ShowLanguage.AmiPCB/Main} script.

    2) Add Your language to @{"'ARexx/_Error.rexx'" LINK ARexx/_Error.rexx/Main} and @{"'ARexx/_Syntax.rexx'" LINK ARexx/_Syntax.rexx/Main}
    These scripts are called from the ARexx scripts if an error occurs. The
    difference between both is:
    -> SYNTAX errors are handled by ARexx and they will show up with the line
       number and the description of the syntax error in question.
    -> ERROR messages are handled by the calling script, as they may occur by
       a call of an AmiPCB ARexx command.

    3) Add Your localized strings to the ARexx scripts
    You'll have to search for structures like this
      ...
      select
	  when fr=1 then 'MESSAGE("Format fichier incorrect")'
	  when fr=2 then 'MESSAGE("Falsches Dateiformat")'
	  otherwise	'MESSAGE("incorrect file format")'
      end
      ...
    and add Your strings to it. The variable 'fr' contains the language code
    that 'InitVars.AmiPCB' returns. Its value is the same as 'lg' in step 1).

    In some cases it's easier to read (and edit) the scripts if the strings
    are placed to variables, that will be inserted in the ARexx command calls
    later on. See @{"'ARexx/CheckPads.AmiPCB'" LINK ARexx/CheckPads.AmiPCB/Main} for an example.

    If You want to write Your own scripts for AmiPCB, You'll find a skeleton
    in @{"'ARexx/EmptyScript.AmiPCB'" LINK ARexx/EmptyScript.AmiPCB/Main}.

    4) If You want to localize the toolbars to Your language, You'll have to edit
    the toolbar's info file (and probably the 'ARexx/_Messages.rexx' file).

    a) First, search in the toolbar's info file for the message to be localized.
    For example, in the unlocalized 'Barres/Réseaux.info' file You'll find:
    COMMAND(4,3)=IF(FIRSTSEL,EDIT(FIRSTSEL),@{U}MESSAGE("Aucune sélection en cours")@{UU})
    Replace it with
    COMMAND(4,3)=IF(FIRSTSEL,EDIT(FIRSTSEL),@{U}CALL(PCBPATH+"ARexx/_Messages.rexx","No object is selected")@{UU})
    Only change the underlined parts.
    For now, we only have two localized strings (French, German or defaulting
    to English) :
      "No object is selected"
	-> opens just a message @{FG SHINE}No object is selected@{FG TEXT}
    And
      "The document has been changed !"
	-> opens a requester			@{FG SHINE}ATTENTION !
					The document has been changed !
					Do you want to close anyway ?@{FG TEXT}
	where You can select if You want to quit (without saving the changes)
	or not.

    b) Second, when you are going to add new strings (that should be localized)
    to the toolbars, edit the @{"'ARexx/_Messages.rexx'" LINK ARexx/_Messages.rexx/Main} script. You'll have to
    -> define a string that is passed to the script
    -> compare the string and define the action(s) to be done in the script.
    Please keep in mind that several actions ca be taken in the script, not
    only a message to be shown.
    If no argument (or an empty one) is passed to the script, You'll get a
    message from the script. If no comparison can be made (i. e. You forgot
    to define it), the argument is passed through the script and shown in a
    message unlocalized. The argument sent to the script is not case sensitive
    as its contents is turned to uppercase, but You should take care of the
    spaces in it.

    As this method enables some reduces in ARexx coding, it may take effect
    in the ARexx scripts in the future. So, before You add new strings to the
    toolbars or to the ARexx scripts, take a look at '_Messages.rexx' if they
    don't exist yet.

    Much success,
    Axel
@ENDNODE
@NODE "AmiPCB2Meta" "Utilitaire de conversion des fichiers"

    @{B}AmiPCB2META@{UB} est un petit programme permettant de transformer un
    fichier au format AmiPCB (c'est à dire sauvé à l'aide de AmiPCB) en
    un format spécial utilisé par le programme MetaView et la bibliothèque
    amigametaformat.library. Ces deux programmes ont été écrits par Henk
    Jonas et permettent de sauver les fichiers AMF aux formats vectoriels
    supportés par cette bibliothèque. Pour l'instant les formats suivants
    sont supportés:
    - WMF
    - DR2D
    - CGM
    - GEM
    - EPS
    - AI
    - HPGL
    - ILBM
    Il vous faudra obtenir ces programmes sur Aminet pour pouvoir les
    utiliser (gfx/conv/MetaView, util/dtype/DT_MetaView, util/libs/amf_library),
    ceux-ci n'étant pas distribués avec AmiPCB.

    Pour utiliser AmiPCB2Meta vous devez directement l'appeler dans une
    fenêtre Shell, la syntaxe d'appel de ce programme est la suivante:

    AmiPCB2Meta FROM/A,TO/K,FORCE/S,VERBOSE/S,QUIET/S,SIDES/N,NETS/S


    Le@{B} premier argument @{UB}est obligatoire (FROM), il spécifie quel est le fichier
    à traiter. Il doit s'agir d'un fichier préalablement créé lors d'une sauvegarde
    par AmiPCB. Le mot clé FROM peut être omis.

    @{I}Exemples:@{UI} AmiPCB2Meta Work:AmiPCB/Boards/Logo
      AmiPCB2Meta FROM Work:AmiPCB/Boards/Logo


    Le @{B}second argument@{UB} (TO) spécifie le nom du fichier AMF destination (au
    format Meta). S'il n'est pas donné aucune conversion ne se fera. Cela peut
    cependant être utile pour vérifier un fichier. Si ce fichier destination
    existe déjà, utilisez l'option FORCE pour qu'il soit ré-écrit.
    Exemple: AmiPCB2Meta ... TO ... FORCE


    @{B}L'argument SIDES@{UB} permet de préciser quelles sont les faces à traiter :
	- pour traiter la face cuivre, utilisez SIDES=1,
	- pour traiter la face composants, utilisez SIDES=2
	- pour traiter la sérigraphie, utilisez SIDES=4
    Vous pouvez traiter plusieurs faces en même temps, en ajoutant chacune de ces
    valeurs.
    Exemple: AmiPCB2Meta ... SIDES=6 (4 + 2 = 6 => faces composants et sérigraphie
    seront traités).


    @{B}L'argument VERBOSE@{UB} permet d'afficher un certain nombre d'informations à
    l'écran alors que l'argument QUIET permet de n'avoir aucun affichage (utile
    dans un script ARexx). Ces deux derniers arguments doivent être naturellement
    être utilisés l'un sans l'autre. Si aucun d'entre eux n'est spécifié, seules
    les phases de traitement en cours sont signalées, sans précisions.
    Exemple: AmiPCB2Meta ... VERBOSE


    Le @{B}dernier argument (NETS)@{UB} permet de traiter le chevelu.


    @{I}Exemples d'appel :@{UI}
    AmiPCB2Meta Work:AmiPCB/Typons/Essai TO Work:MetaView/AmiPCB/Essai.amf
    AmiPCB2Meta Work:AmiPCB/Typons/Essai VERBOSE


    @{b}Historique@{ub}

    Version 1.02: 29 décembre 2001
	Prise en compte du nouveau format des fichiers (dimensions au millième).
	Ne lit plus les fichiers au format précédent.

    Version 1.01: 25 novembre 2001
	Ajout traitement références et valeurs, ainsi que du nom des groupes.

    Version 1.0: 3 juin 2001
@ENDNODE
@NODE "Bugs" "BUG(s) ?   (mais oui !  sûrement... (malheureusement !) )"

    Ce programme m'a demandé beaucoup de travail aussi je vous
    demanderais de bien vouloir être indulgent quant aux erreurs toujours
    possibles survenant lors de son utilisation. Je vous saurais gré de
    bien vouloir @{"m'avertir" LINK "Auteur"} si vous constatez une ou des anomalies.

    L'utilisation du programme sous un écran CyberGraphics peut
    donner des résultats quelquefois bizarres (en fait la fonction
    de dessin en mode COMPLEMENT ne fonctionne alors pas ou très mal,
    pour les remplissages de surfaces, alors que le même programme
    fonctionne parfaitement sous les modes AGA). Ceci est dû au driver
    de la CyberVision 64 3D sous CyberGraphics, qui est bugué et
    toujours pas corrigé (il ne le sera sûrement jamais). Ce problème
    n'existe pas sous Picasso.

    L'écran AmiPCB est un écran public, ainsi vous pouvez ouvrir une
    (ou même plusieurs) autre(s) application(s) sur son écran.
    Cependant, fermez toujours ces autre fenêtres AVANT de quitter
    AmiPCB, sinon il peut y avoir quelques problèmes...
@ENDNODE
@NODE Astuces "Quelques trucs et astuces"

    @{b}Comment "couper" une piste@{ub}
	Cliquez sur la piste, à l'endroit où vous souhaitez la
	modifier, tout en maintenant la touche AMIGA de droite
	appuyée. La piste comprend alors deux segments et il est
	possible de déplacer ce point ou l'un des deux segments.
	Ceci ne fonctionne cependant qu'à la condition qu'il n'y
	ait aucun autre objet à l'endroit où vous cliquez.

    @{b}Les éléments sélectionnés ne se déplacent pas@{ub} quand on déplace
	la souris : afin d'éviter les désagréments d'une prise en compte
	trop hâtive du clic sur le bouton gauche (qui provoque des déplacements
	d'objets intempestifs), il est nécessaire que l'appui sur le bouton
	gauche dure au moins le temps réglé dans les préférences du système
	pour un double clic avant qu'un déplacement soit pris en compte. Si
	ce temps vous paraît trop long, changez ce réglage à l'aide de
	l'utilitaire système Input (dans Prefs).

    @{b}Sorties Postscript@{ub}
	Utilisez l'utilitaire @{"AmiPCB2Meta" LINK AmiPCB2Meta} (sous Shell uniquement...) afin
	de convertir les fichiers au format EPSF.
@ENDNODE
@NODE "Historique" "Historique"

@{b}Version 1.07@{ub}	 @{I}23 Mai 2002@{UI}
    Ajout macros @{"GETCOLOR" LINK GETCOLOR} et @{"SETCOLOR" LINK SETCOLOR}.
    Modification de quelques fonctions pour gérer les groupes (BLINK,
    MOVE, ROTATE, SYMMETRY).
    New Visible gadget when editiong nets.

@{b}Version 1.06e@{ub}	 @{I}19 Avril 2002@{UI}
    Modification macro MOVE (peut déplacer des groupes si argument
    négatif).

@{b}Version 1.06d@{ub}	 @{I}13 Mars 2002@{UI}
    Ajout traitement fenêtre lors du traitement des requêtes Asl.

@{b}Version 1.06c@{ub}	 @{I}4 Mars 2002@{UI}
    Correction bug sélection fenêtre active (la gestion de la barre
    pouvait être plantée).

@{b}Version 1.06b@{ub}	 @{I}Février 2002@{UI}
    Correction bug blocage fenêtre si utilisation du menu "Réseaux/Test
    noms réseaux" avec erreur puis acquittement.

@{B}Version 1.06@{UB}	 @{I}16 Janvier 2002@{UI}
    Correction bug tracé triangles (pouvait provoquer un plantage).
    Nouvelle macro @{"PCBPATH" LINK PCBPATH}.
    Correction bug argument PUBSCREEN si lancement par Shell.

@{B}Version 1.05@{UB}	 @{I}16 Novembre 2001@{UI}
    Correction bug déplacement composants avec liaisons réseaux.
    Ajout barre d'outils.
    Ajout macros ARexx @{"CURSMODE" LINK CURSMODE}, @{"GETPAD" LINK GETPAD}, @{"SETPULL" LINK SETPULL}, @{"VIEW" LINK VIEW}.
    Modification macro @{"GETNET" LINK GETNET} (devenue @{"NETNUM" LINK NETNUM}), @{"ROTATE" LINK ROTATE}, @{"SYMMETRY" LINK SYMMETRY}.
    Ajout attribut nom aux groupes, ajout macros @{"GETNAME" LINK GETNAME} et @{"SETNAME" LINK SETNAME}.
    Correction bug fonction SETSCALE (Ne fonctionnait pas pour les échelles
    courantes).
    Changement numéro de version de la rexxsyslib de 37 à 36.
    Correction bug impression de l'en-tête (pouvait conduire à un plantage).
    La précision des coordonnées est maintenant du millième de millimètre.
    La fonction Restaurer a maintenant 10 niveaux de sauvegarde.
    Header printing bug hopefully removed (could lead to a crash).

@{B}Version 1.04@{UB}	 @{I}21 Août 2001@{UI}
    Correction bug chargement préférences (les menus ne correspondaient
    pas toujours aux choix faits dans les préférences).
    Extension traitement appui touche HELP (fonctionne depuis toutes les
    requêtes).
    Ajout menu Réseaux/Sélection réseau.
    Ajout script permettant d'importer une netlist, créée depuis un schéma
    fait sous AmiCAD (à l'aide d'un second script, pour AmiCAD).

@{B}Version 1.03@{UB}	 @{I}10 Juin 2001@{UI}

    Modification routine "tirage pistes" (les pistes suivent
    maintenant les pastilles, même si leur extrémité n'est pas placée
    à leur centre exact, mais aussi quand elles sont dans le trou de
    perçage).
    Ajout possibilité édition coordonnées placement objets.
    Ajout pastilles hexagonales et octogonales.
    Mention de l'indice et du label lors de l'édition d'une piste,
    d'un arc ou d'une pastille connectée à un réseau.
    Ecriture de l'utilitaire AmiPCB2Meta (conversion des fichiers
    AmiPCB au format Meta).

@{B}Version 1.02@{UB}	 @{I}30 Mars 2001@{UI}
    Ajout du menu Réseaux.
    Ajout de la cellule "En-tête" dans la boîte gérant l'impression,
    afin d'imprimer le nom du document ainsi que la date d'impression
    en haut de la page.
    Nombreuses améliorations et corrections de bogues... (Hum ?)
    Ecriture du guide français.

@{B}Version 1.01@{UB}	 @{I}13 Mai 2000@{UI}
    Correction de quelques bugs
    Meilleur algorythme pour le menu "Edition/Sélection liaison" (plus
    rapide).
    Correction bogue ALT+bouton gauche souris.
    Menu "Edition/Fixer sur grille" corrigé pour les groupes.
    Placement requêtes sous la souris ou au centre des fenêtres, au choix.
    Annulation de la sélection des objets cachés.
    Possibilité de "couper" une piste (en cliquant sur une piste tout
    en appuyant sur la touche Amiga à droite de la barre d'espace)
    Coordonnées relatives (Menu Préférences).
    Meilleur placement des requêtes sur une vue côté-cuivre.
    De nombreux nouveaux clips de freenet Kunde <a-freak@freenet.de>.
    Catalogue italien (par Virginio Savani <elghigno@libero.it>).

@{B}Version 1.00@{UB}	 @{I}Février 2000@{UI}
    Première version, écrite pour système 3.0. 1ère diffusion sur Aminet.
@ENDNODE
@NODE "AidezMoi" "Aidez-moi!"

    Ce programme peut naturellement être très amélioré, je manque
    pour cela de documentations et surtout de temps pour développer
    toutes mes idées. Aussi si vous pouvez répondre à certaines de mes
    attentes, merci de me @{"contacter" LINK Auteur}.

    Pour le moment je recherche de la documentation sur les points
    suivants:
    - comment utiliser des polices vectorielles (CompuGraphics ou
    Adobe...) comme ProPage ou WordWorth,
    - toutes routines (rapides) ou algorythmes permettant de tester
    le recouvrement de deux ellipses, de lignes quelconques (largeur
    et direction) avec la meilleure précision possible, sans être
    trop lentes.
    - etc... (toute suggestion de votre part)

    Merci pour votre collaboration.
@ENDNODE
@NODE Améliorations "AMÉLIORATIONS POSSIBLES"

    Les améliorations suivantes seront faites si le besoin s'en fait
    sentir et si j'en ai le temps (et aussi si j'en ai le courage !) :
      - choix de l'icône créée par le programme lors d'une sauvegarde,
      - et plus encore... (voir @{"HELP!" LINK AidezMoi})

    Si vous souhaitez traduire cette documentation ou bien le
    fichier catalogue, merci de me les communiquer afin qu'ils soient
    distribués avec le programme. Attention: les noms des nodes ne
    doivent pas être changés pour que le guide soit utilisable
    directement avec AmiPCB.
@ENDNODE
@NODE Traduction "Traduction"

    Le programme est écrit en anglais, j'ai moi-même réalisé
    le catalogue français.

    Le catalogue @{I}allemand@{UI} a été réalisé par @{b}Bernd (Gucky)@{ub}
	E-mail: gu0cky@yahoo.de
    Il a été repris par @{I}Greve Axel@{UI}
	E-mail: Axel.Greve@icn.siemens.de

    Le catalogue @{I}espagnol@{UI} a été réalisé par @{b}Guillermo Amat Gomariz@{ub}
	E-mail: uji01473@uji.infomail.es

    Le catalogue @{I}italien@{UI} a été réalisé par @{b}Virginio Savani@{ub}
	E-mail: elghigno@libero.it

    Le catalogue @{I}danois@{UI} a été réalisé par @{b}Bo Simmons@{ub}
	E-mail: boss@iname.com

    Si vous voulez traduire le catalogue dans une autre langue,
    merci de bien vouloir me l'envoyer.

    Je recherche des volontaires pour traduire la doc AmigaGuide
    en anglais ou en allemand... Tous les bénévoles sont les bienvenus.
    Attention: les noms des nodes ne doivent pas être modifiés pour que
    le programme puisse correctement utiliser l'aide sous AmigaGuide.
@ENDNODE
@NODE "Auteur" "L'auteur"

    Pour me contacter:

    @{B}FLORAC Roland@{UB}
    6 Rue des Chardonnerets
    Chez Corbin
    17610 Chaniers
    France
    Tél: 05 46 93 95 71

    E-mail: @{b}rflorac@free.fr@{ub}
@ENDNODE
@NODE "INDEXNODE" "Index"


A

@{"ABS" LINK ABS}
@{"Aide" LINK Aide}
@{"Améliorations futures" LINK Améliorations}
@{"AppIcon" LINK AppIcon}
@{"ARC" LINK ARC}
@{"Arcs de cercles" LINK Arcs}
@{"ARRAYDIM" LINK ARRAYDIM}
@{"ASC" LINK ASC}
@{"ASKNUM" LINK ASKNUM}
@{"ASKTEXT" LINK ASKTEXT}


B

@{"Barre de titre" LINK "Barre de titre"}
@{"BLINK" LINK BLINK}
@{"BOARDS" LINK BOARDS}
@{"Boîtes" LINK Boîtes}
@{"BOX" LINK BOX}
@{"Bugs (?)" LINK Bugs}


C

@{"CALL" LINK CALL}
@{"CHR" LINK CHR}
@{"Les clips" LINK Clip}
@{"CLIPPATH" LINK CLIPPATH}
@{"CLIPS" LINK CLIPS}
@{"CLIPUNIT" LINK CLIPUNIT}
@{"CLOSE" LINK CLOSE}
@{"COL" LINK COL}
@{"Commandes clavier" LINK Keys}
@{"COORDS" LINK COORDS}
@{"COPY" LINK COPY}
@{"COORDS" LINK COORDS}
@{"CURSMODE" LINK CURSMODE}
@{"CURSTEP" LINK CURSTEP}


D

@{"DATE" LINK DATE}
@{"DEF" LINK DEF}
@{"Distribution" LINK Distribution}
@{"DELARRAY" LINK DELARRAY}
@{"DELETE" LINK DELETE}
@{"DIMARRAY" LINK DIMARRAY}
@{"DIMBOARD" LINK DIMBOARD}
@{"DRAW" LINK DRAW}

E

@{"EDIT" LINK EDIT}
@{"ELLIPSE" LINK ELLIPSE}
@{"Ellipses" LINK Ellipses}
@{"ENDCOL" LINK ENDCOL}
@{"ENDLINE" LINK ENDLINE}
@{"EXEC" LINK EXEC}


F

@{"FILENAME" LINK FILENAME}
@{"FILEPART" LINK FILEPART}
@{"FINDOBJ" LINK FINDOBJ}
@{"FIRSTSEL" LINK FIRSTSEL}
@{"FONTNAME" LINK FONTNAME}
@{"FONTSIZE" LINK FONTSIZE}
@{"FOR" LINK FOR}


G

@{"GETARRAY" LINK GETARRAY}
@{"GETCOLOR" LINK GETCOLOR}
@{"GETLABEL" LINK GETLABEL}
@{"GETLINE" LINK GETLINE}
@{"GETNET" LINK GETNET}
@{"GETPAD" LINK GETPAD}
@{"GETPOINT" LINK GETPOINT}
@{"GETPOS" LINK GETPOS}
@{"GETZONE" LINK GETZONE}
@{"GROUP" LINK GROUP}
@{"Groupes" LINK Groups}
@{"GTLAYOUT" LINK GTLAYOUT}


H

@{"HEIGHT" LINK HEIGHT}
@{"HELP" LINK HELP}
@{"HSCALE" LINK HSCALE}


I

@{"Installation du programme" LINK Installation}
@{"IF" LINK IF}
@{"INIT" LINK INIT}

J


L

@{"Labels" LINK "Add net"}
@{"LANGUAGE" LINK LANGUAGE}
@{"L'auteur" LINK Auteur}
@{"Lancement du programme" LINK Lancement}
@{"LEN" LINK LEN}
@{"Les menus" LINK Menus}
@{"LINE" LINK LINE}
@{"LOAD" LINK LOAD}
@{"LOADCLIP" LINK LOADCLIP}
@{"LOCK" LINK LOCK}

M

@{"MAP" LINK MAP}
@{"MARK" LINK MARK}
@{"MARKZONE" LINK MARKZONE}
@{"MENU" LINK MENU}
@{"Menu Dessin" LINK Drawing}
@{"Menu Édition" LINK Edition}
@{"Menu Projet" LINK Project}
@{"Menu Préférences" LINK Preferences}
@{"MESSAGE" LINK MESSAGE}
@{"MESURE" LINK MESURE}
@{"MODIF" LINK MODIF}
@{"MOVE" LINK MOVE}


N

@{"NET" LINK NET}
@{"NETNUM" LINK NETNUM}
@{"NEWBOARD" LINK NEWBOARD}
@{"NEXTSEL" LINK NEXTSEL}


O

@{"OBJECTS" LINK OBJECTS}
@{"Objets" LINK Objets}
@{"OPEN" LINK OPEN}


P

@{"PAD" LINK PAD}
@{"PADNUM" LINK PADNUM}
@{"Palette" LINK Palette}
@{"PASTE" LINK PASTE}
@{"PCBPATH" LINK PCBPATH}
@{"PICKOBJ" LINK PICKOBJ}
@{"PIN" LINK PIN}
@{"PRINT" LINK PRINT}


R

@{"READDEF" LINK READDEF}
@{"READMAP" LINK READMAP}
@{"READTEXT" LINK READTEXT}
@{"Rectangles" LINK Box}
@{"REQFILE" LINK REQFILE}
@{"REQLIST" LINK REQLIST}
@{"REQNUM" LINK REQNUM}
@{"REQTEXT" LINK REQTEXT}
@{"REQUEST" LINK REQUEST}
@{"RESET" LINK RESET}
@{"REXXPORT" LINK REXXPORT}
@{"ROTATE" LINK ROTATE}


S

@{"SAVE" LINK SAVE}
@{"SAVEALL" LINK SAVEALL}
@{"SAVECLIP" LINK SAVECLIP}
@{"SAVECOPY" LINK SAVECOPY}
@{"SAVEICON" LINK SAVEICON}
@{"SAVEIFF" LINK SAVEIFF}
@{"SECURITY" LINK SECURITY}
@{"SELECT" LINK SELECT}
@{"SETARRAY" LINK SETARRAY}
@{"SETCOLOR" LINK SETCOLOR}
@{"SETFILL" LINK SETFILL}
@{"SETGRID" LINK SETGRID}
@{"SETLABEL" LINK SETLABEL}
@{"SETNAME" LINK SETNAME}
@{"SETNOTE" LINK SETNOTE}
@{"SETORTHO" LINK SETORTHO}
@{"SETPAD" LINK SETPAD}
@{"SETPULL" LINK SETPULL}
@{"SETREF" LINK SETREF}
@{"SETSCALE" LINK SETSCALE}
@{"SETSIDE" LINK SETSIDE}
@{"SETTEXT" LINK SETTEXT}
@{"SETVAL" LINK SETVAL}
@{"SETWIDTH" LINK SETWIDTH}
@{"SGN" LINK SGN}
@{"SHEIGHT" LINK SHEIGHT}
@{"SNAPGRID" LINK SNAPGRID}
@{"STOBACK" LINK STOBACK}
@{"STOFRONT" LINK STOFRONT}
@{"STR" LINK STR}
@{"SWIDTH" LINK SWIDTH}
@{"SYMMETRY" LINK SYMMETRY}


T

@{"TEST" LINK TEST}
@{"Textes" LINK Note}
@{"TIME" LINK TIME}
@{"TITLE" LINK TITLE}
@{"Touches" LINK Keys}
@{"TRIANGLE" LINK TRIANGLE}
@{"Triangles" LINK Triangles}
@{"TYPE" LINK TYPE}
@{"TXHEIGHT" LINK TXHEIGHT}
@{"TXWIDTH" LINK TXWIDTH}


U

@{"UNLOCK" LINK UNLOCK}
@{"UNMAP" LINK UNMAP}
@{"UNMARK" LINK UNMARK}


V

@{"VAL" LINK VAL}
@{"VERSION" LINK VERSION}
@{"VIEW" LINK VIEW}
@{"VSCALE" LINK VSCALE}


W

@{"WHEIGHT" LINK WHEIGHT}
@{"WHILE" LINK WHILE}
@{"WIDTH" LINK WIDTH}
@{"WINDOW" LINK WINDOW}
@{"WRITE" LINK WRITE}
@{"WTOBACK" LINK WTOBACK}
@{"WTOFRONT" LINK WTOFRONT}
@{"WWIDTH" LINK WWIDTH}


X

@{"X_ICON" LINK "X_ICON"}


Y

@{"Y_ICON" LINK "Y_ICON"}


Z

@{"ZOOM" LINK ZOOM}
@ENDNODE
