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
%
|