N° | Fonction | Catégorie | Version |
---|---|---|---|
BIN 01 | BiN_Init | Gestion de Fonction | 1.0 - Janvier 2007 |
But | Initialisation d'un programme en Autolisp. |
Prototype | (BiN_Init '(ListModes)) |
Argument | '(ListModes)) - Liste des modes dont on veut conserver les valeurs - Liste - |
Retours | Néant |
Var. globales | $MLST, $OldError |
Description | Conserve la valeur des modes courants avant le début du programme ;
|
Notes | On doit placer dans l'argument tous les modes à conserver
(sauf Cmdecho qui sera fait d'office). Dans le programme à traiter, il faut placer la liste des modes dont on veut sauvegarder les valeurs courantes sous forme d'une liste de chaînes comme argument à BiN_Init. Le programme stocke ces modes et leurs valeurs correspondantes dans la variable globale $MLST qui sera lue par la routine BiN_Reset en fin de programme. Les variables stockables ne doivent pas être du type 'protégé contre l'écriture' (à l'exception de 'CLAYER', le calque courant, qui peut être également conservé.) Cette fonction doit se placer en début de programme. BiN_Reset doit être lancé en fin de programme, pour pouvoir réinstaller les modes aux valeurs précédentes. |
Exemples | (BiN_Init '("orthomode" "clayer")) ; 1ère ligne du programme : dans ce cas les modes "orthomode" 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 |
1- (defun BiN_Init (*Lvar / OldCmd) 2- (setq *Lvar (append *Lvar '("cmdecho"))) 3- (setq $MLST '()) 4- (repeat (length *Lvar) 5- (setq $MLST (append $MLST 6- (list (list (car *Lvar) (getvar (car *Lvar)))))) 7- (setq *Lvar (cdr *Lvar)) 8- ) 9- (setq OldCmd (getvar "cmdecho")) 10- (setvar "cmdecho" 0) 11- (setq $OldError *error* 12- *error* BiE_Error) 13- (command "_UNDO" "_M") 14- (setvar "cmdecho" oldcmd) 15- )
Ligne 2 : Cmdecho est ajouté dans la liste des variables *Lvar Ligne 3 : La variable globale $MLST est vidée. Ligne 4 : Boucle repète autant de fois qu'il y a de modes dans *Lvar Lignes 5-6: Ajoute à $MLST une liste comprenant le 1er mode de la liste *Lvar et sa valeur Getvar Ligne 7 : Supprime le 1er mode de la liste. Ligne 8 : Fin de boucle repeat Ligne 9 : La valeur de Cmdecho est conservée dans OldCmd Ligne 10 : On supprime l'affichage des messages de Commandes Ligne 11 : Conserve l'éventuelle routine de gestion des erreurs en cours. Ligne 12 : Gestion des erreurs adaptée à BiRaRR. - Voir routine BiE_Error Ligne 13 : Marque le début pour la commande Annuler. Voir manuel AutoCAD pour plus de précisions. Ligne 15 : Sa valeur initiale est redonnée à Cmdecho.