BiN_Reset

Fonction Catégorie Version
BIN 02 BiN_Reset Gestion de Fonction 1.0 - Janvier 2007

Description

But Réinitialise les modes aux valeurs actives avant le programme
Prototype (BiN_Reset)
Argument Néant
Retours Néant
Var. globales $MLST
Description Replace les anciennes valeurs des modes en fonction avant le début du programme.
Notes Si changé, réactive le calque (plan) qui était courant avant le programme.
Le programme lit dans la variable globale $MLST quels sont les modes et leurs valeurs correspondantes qui ont été stockés et leur affecte ces valeurs.
Cette fonction doit se placer en fin de programme.
BiN_Init doit obligatoirement avoir été lancé en début de programme.
Exemples

(Bin_Init '("blipmode" "clayer"))
    ; 1ère ligne du programme : dans ce cas les modes "blipmode" et
    ;  "Cmdecho" ainsi que le calque courant sont conservés)
    (... ...)
    (... ...)
    (BiN_Reset)                ; dernière ligne du programme
  A la sortie, le calque courant et les modes conservés sont redéfinis
  tels qu'ils étaient à l'entrée du programme.

Autre exemple :	

(Bin_Init '())     ; si aucun mode à conserver autre que Cmdecho
    (... ...)
    (BiN_Reset)                ; dernière ligne du programme

La fonction


  1- 	(defun BiN_Reset ()

  2-   		(setvar "cmdecho" 0)						
  3-     	(repeat (length $MLST)
  4-		  	(if (= (caar $MLST) "CLAYER")		
  5-         		    (command "._LAYER" "_s" (cadar $MLST) "")	
  6-         		    (setvar (caar $MLST) (cadar $MLST))	
  7-        		)   		.
  8-      		(setq $MLST (cdr $MLST))		
  9-   		)	
 10-    	(princ)		
 11- 	)
Ligne 2 :  Suppression de l'affichage de message pendant la commande Calque (ou Plan 
                    selon la version),si CLAYER existe dans la liste $MLST
Ligne 3 :    Boucle  à répéter autant de fois qu'il y a d'éléments dans la variable 
                    globale $MLST.
Ligne 4 :      Si le 1er élément de la 1ère liste est 'CLAYER'
Ligne 5 :        Alors active le  calque correspondant conservé dans $MLST.
Ligne 6 :        Sinon restitue au 1er élément de la 1ère liste, la valeur du second 
                     élément de la 1ère liste
Ligne 7 :      Fin du If ligne 4
Ligne 8 :      Supprime la 1ère liste de $MLST
Ligne 9 :    Fin de boucle repeat
Ligne 10 :   Pour une sortie 'propre', sans retour parasite.

   Exemple de liste $MLST :  ((orthomode 0) (clayer MURS) (blipmode 1) (cmdecho 1))	


Repeat : Ici, repète les lignes 4 à 8 pour toutes les sous-listes de $MLST.
Length : Renvoie un nombre entier indiquant le nombre d'éléments contenus dans une liste.
Caar : Equivaut à (car (car $MLST) : 1er élément de la première liste de $MLST
Cadar : équivaut à (car (cdr (car $MLST) : dans la 1ère liste de $MLST, prendre le 1er élément après y avoir retiré le 1er élément, soit en clair le second élément de la première liste de $MLST .
Cdr : Renvoie une liste contenant tous les éléments de cette liste sauf le premier.
Princ : Sans argument, donc n'affiche rien au lieu, ici, de retourner le résultat de la routine.