Navigation:  Macro > Exemples >

EXEMPLE MACRO14

AiM Services
Previous pageReturn to chapter overviewNext page

Lecture param

Cette macro permet la lecture interactive d'une pièce paramétrée puis la modification des variables dans un masque et la génération de la pièce dans le dessin.
 

Exemple

 MACRO "param.mac"
 !
 ! Entrée du nom de la pièce paramétrée
 File: INPUT FILE "Nom de la pièce paramétrée ?";F$
   TEXT CMP F$,"";Err
   IF NOT Err THEN STOP
 ! Lecture de la pièce paramétrée
   PARAM OPEN F$;Err
   IF Err THEN
     ERROR "PIECE PARAMETREE PAS TROUVEE"
     GOTO File
   END IF
 ! Lecture du nombre de variables de la pièce paramétrée
   PARAM REQUEST VAR Nb
 ! Création du masque d'entrée des variables
 Start: WCREATE 300,300+340,200,202+21*(Nb+3)
   WSCALE 0,340,2+21*(Nb+3),0
   WFONT "10x20b"
   WPRINT Nb+2,1,"[SELECT] : Edit part"
   WPRINT Nb+3,1,"[ESC] : Exit"
   WCOLOR 7
   WPRINT 1,1,"PART :"
   WPRINT 1,9,F$
   WCOLOR 2
   WMOVE 0,21
   WDRAW 340,21
   WMOVE 0,21*(Nb+1)+2
   WDRAW 340,21*(Nb+1)+2
   WCOLOR 6
 ! Lecture et affichage des variables
   FOR I=1 TO Nb
     PARAM REQUEST TYPE I;Type
     SELECT Type
     CASE 0
       PARAM REQUEST I;Val$,X
       WPRINT I+1,1,Val$
       WPRINT I+1,16,X
     CASE 1
       PARAM REQUEST I;Val$,X$
       WPRINT I+1,1,Val$
       WPRINT I+1,16,X$
     END SELECT
   NEXT I
 ! Modification des variables
   I=1
 Inp: PARAM REQUEST TYPE I;Type
   SELECT Type
 ! Variable de type numérique
   CASE 0
     PARAM REQUEST I;Val$,X
     WINPUT NUMBER I+1,16,16;X,Sortie
     PARAM MODIFY I,X
 ! Variable de type alphanumérique
   CASE 1
     PARAM REQUEST I;Val$,X$
     WINPUT I+1,16,50;X$,Sortie
     PARAM MODIFY I,X$
   END SELECT
   SELECT Sortie
   CASE 2
     I=(I-1) MOD Nb
     IF I=0 THEN I=Nb
   CASE 4
     GOTO Exec
   CASE 5
     GOTO Fin
   CASE ELSE
     I=(I MOD Nb)+1
   END SELECT
   GOTO Inp
 ! Génération de la pièce paramétrée à la position désirée
 Exec: WDELETE
   DISP "Position de la pièce ?"
   DIGITIZE X,Y
   PARAM EXEC X,Y,0
   GOTO Start
 ! Fin de la macro
 Fin: PARAM CLOSE
   END
   END MACRO