Navigation:  Macro > Exemples >

EXEMPLE MACRO13

AiM Services
Previous pageReturn to chapter overviewNext page

Percage

Cette macro recherche tous les symboles de type 'PUNCH' et génère la liste des coordonnées de perçage. Les coordonnées sont triées par distance afin d'optimaliser le déplacement lors du perçage.
 

Exemple

 MACRO "drilling".mac"
 !
   DIM Cx(200),Cy(200),Index(200)
 ! Recherche des symboles de perçage de type 'PUNCH'
   Nb=0
   FOR I=1 TO NB_ELEM
     REQUEST I,#CODE;C
     IF C=#SYMBOL THEN
       REQUEST I,#TYPE;T$
       TEXT CMP T$,"PUNCH";N
       IF N=0 THEN
         REQUEST I+1,#X;X
         REQUEST I+1,#Y;Y
         REQUEST I+1,#R;R
         Nb=Nb+1
         Cx(Nb)=X
         Cy(Nb)=Y
       END IF
     END IF
   NEXT I
 ! Test si aucun symbole n'a été trouvé
   IF Nb=0 THEN
     ERROR "PAS DE SYMBOLES DE TYPE 'PUNCH' TROUVE"
     EXIT MACRO
   END IF
 ! Tri par distance pour l'optimalisation du
 ! déplacement lors du perçage
   REDIM Cx(Nb),Cy(Nb),Index(Nb)
   MAT SORT DIST 0,0,Cx(*),Cy(*) TO Index(*)
 ! Initialisation de la fenêtre alphanumérique
   ALPHA CLEAR
   ALPHA ON
 ! Définition des codes de perçages
   PP DEF "N",2,0,"4D",2,2
   PP DEF "X",0,0,"4D.2D",1
   PP DEF "Y",0,0,"4D.2D",1
 ! Affichage des coordonnées de perçage
   PRINT "%"
   FOR I=1 TO Nb
     J=Index(I)
     PP OUTPUT "X",Cx(J)
     PP OUTPUT "Y",Cy(J)
     PP BLOCK A$
     PRINT A$
   NEXT I
   PRINT "%"
 ! Vue de la liste de perçage générée
   ALPHA TOP
   ALPHA VIEW
   ALPHA OFF
 ! Fin de la macro
   END
   END MACRO
 


 %
 N2X17.32Y-10.00
 N4X23.82Y-13.75
 N6X13.75Y-23.82
 N8X10.00Y-17.32
 N10X0.00Y-20.00
 N12Y-27.50
 N14X-13.75Y-23.82
 N16X-10.00Y-17.32
 N18X-17.32Y-10.00
 N20X-23.82Y-13.75
 N22X-27.50Y-0.00
 N24X-20.00Y-0.00
 N26X-17.32Y10.00
 N28X-23.82Y13.75
 N30X-13.75Y23.82
 N32X-10.00Y17.32
 N34X0.00Y20.00
 N36Y27.50
 N38X13.75Y23.82
 N40X10.00Y17.32
 N42X17.32Y10.00
 N44X23.82Y13.75
 N46X27.50Y0.00
 N48X20.00
 %