Décalage des coordonnées X et Y de la plaquetteSalut,
J'ai deux tables jmp qui ont les coordonnées X et Y de la plaquette. J'aimerais savoir s'il existe un moyen d'aligner les coordonnées de Wafer 1 avec Wafer 2 ?
Par exemple : je souhaite aligner les X et Y en surbrillance suivants avec les X et Y de la plaquette 2.
Plaquette 1 : X, Y = 129, 372
Plaquette 2 : X, Y = -17, -15
Je ne sais pas s'il existe un moyen de reconnaître les modèles dans le générateur de graphiques et d'obtenir les informations d'étiquette de survol avec JSL. Toutes les suggestions seraient très appréciées
Plaquette 1 =

Plaquette 2 =

ScriptRe : Décalage des coordonnées X et Y de la plaquetteCela n'a vraiment pas d'importance.Cependant, dans vos exemples, vous avez transposé la plaquette 1, je vous suggère donc de continuer à utiliser cette plaquette.
Je suis préoccupé par votre question.Vous devez comprendre pourquoi la soustraction du Max +1 fonctionne, pas seulement mettre aveuglément le code.Assurez-vous d'examiner où le dé se déplace lorsque la transformation est effectuée.
Re : Décalage des coordonnées X et Y de la plaquette" La transposition consiste à soustraire chaque valeur de la valeur max plus 1. "
Vous voulez dire soustraire chaque rangée de X et Y avec la valeur Max de Wafer 2 ou Wafer 1 ?
Re : Décalage des coordonnées X et Y de la plaquetteLa transposition est un calcul simple.Le problème est la détermination de l'orientation. Les 2 tranches actuelles semblent devoir être retournées de haut en bas, cependant, elles peuvent également devoir être retournées de gauche à droite.En regardant le motif des zones vides sur la plaquette, cela semble être le cas. Dans les deux cas, la transposition consiste à soustraire chaque valeur de la valeur max plus 1.
Re : Décalage des coordonnées X et Y de la plaquetteNon, il ne contient pas d'informations d'orientation. Pouvons-nous mettre en œuvre la transposition ?
Re : Décalage des coordonnées X et Y de la plaquetteJ'ai supposé que vos plaquettes étaient mesurées dans la même orientation, juste avec des origines xy différentes. Apparemment, l'orientation totale peut être différente.Cela rend la transposition plus complexe, mais pas impossible.Les fichiers à partir desquels vous lisez les plaquettes contiennent-ils les informations d'orientation ?
Re : Décalage des coordonnées X et Y de la plaquetteIls ne correspondent pas à l'orientation sage. Par exemple La zone supérieure de la carte 1 a des coordonnées Y comprises entre 0 et négatives. Cependant, dans la carte de plaquette 2, la même zone est à 300 et au-dessus

Re : Décalage des coordonnées X et Y de la plaquetteVos axes ont été inversés sur l'un des graphiques
Re : Décalage des coordonnées X et Y de la plaquetteÇa ne marche pas non plus Jim. Voir les résultats ci-dessous

Re : Décalage des coordonnées X et Y de la plaquetteJe ne l'avais pas remarqué auparavant .... le problème est que vous devez soustraire ou ajouter le décalage de la coordonnée, pas la coordonnée du décalage.

Names Default To Here( 1 );
Clear Globals();
Clear Log();
dt1 = Data Table( "Wafer 1" );
dt2 = Data Table( "Wafer 2" );
dt1 << New Column( "New_X", Numeric, "Ordinal", Format( "Best", 12 ) );
dt1 << New Column( "New_Y", Numeric, "Ordinal", Format( "Best", 12 ) );
Max_X1 = Col Maximum( dt1:X Coord );
Max_Y1 = Col Maximum( dt1:Y Coord );
Max_X2 = Col Maximum( dt2:X Coord );
Max_Y2 = Col Maximum( dt2:Y Coord );
Offset_x = Abs( Max_X2 - Max_X1 );
Offset_y = Abs( Max_Y2 - Max_Y1 );
For( i = 1, i <= N Rows( dt1 ), i++,
If( Max_X1 > Max_X2,
dt1:New_X[i] = dt1:XCoord[i] - Offset_x,
dt1:New_X[i] = dt1:XCoord[i] + Offset_x
)
);
For( i = 1, i <= N Rows( dt1 ), i++,
If( Max_Y1 > Max_Y2,
dt1:New_Y[i] = dt1:YCoord[i] - Offset_y,
dt1:New_Y[i] = dt1:YCoord[i] + Offset_y
)
);
</CODE></PRE>
<P>Voici la version originale du code que j'ai trouvé de manière indépendante.Il tourne plus vite, mais donne les mêmes résultats.Jetez un œil au code et découvrez l'approche différente.</P>
<PRE><CODE class=" language-jsl">Names Default To Here( 1 );
dt1 = data table("Wafer 1");
dt2 = data table("Wafer 2");
xOffset = abs(col max(dt1:X Coord) - col max(dt2:X Coord));
yOffset = abs(col max(dt1:Y Coord) - col max(dt2:Y Coord));
If( Col Max( dt1:X Coord ) > Col Max( dt2:X Coord ),
dt1 << New Column( "New X Coord", set each value( :X Coord - xOffset ) ),
dt1 << New Column( "New X Coord", set each value( :X Coord + xOffset ) )
);
If( Col Max( dt1:Y Coord ) > Col Max( dt2:Y Coord ),
dt1 << New Column( "New Y Coord", set each value( :Y Coord - yOffset ) ),
dt1 << New Column( "New Y Coord", set each value( :Y Coord + yOffset ) )
);
Re : Décalage des coordonnées X et Y de la plaquette@txnelson ,
Merci Jim. Le code fonctionne mais les résultats ne sont pas ceux que j'attendais. Vous voyez que les axes X et Y ne s'alignent pas avec la plaquette 2 Map

Re : Décalage des coordonnées X et Y de la plaquetteBon travail d'aller aussi loin que vous l'avez fait.Je vous suggère fortement de prendre le temps de lire le Guide de Scripting.
Vous trouverez ci-dessous une modification de votre code qui remplit les nouvelles colonnes
Names Default To Here( 1 );
Clear Globals();
Clear Log();
dt1 = Data Table( "Wafer 1" );
dt2 = Data Table( "Wafer 2" );
dt1 << New Column( "New_X", Numeric, "Ordinal", Format( "Best", 12 ) );
dt1 << New Column( "New_Y", Numeric, "Ordinal", Format( "Best", 12 ) );
Max_X1 = Col Maximum( dt1:X Coord );
Max_Y1 = Col Maximum( dt1:Y Coord );
Max_X2 = Col Maximum( dt2:X Coord );
Max_Y2 = Col Maximum( dt2:Y Coord );
Offset_x = Abs( Max_X2 - Max_X1 );
Offset_y = Abs( Max_Y2 - Max_Y1 );
For( i = 1, i <= N Rows( dt1 ), i++,
If( Max_X1 > Max_X2,
//dt1:New_X[i] = Offset_x - dt1:XCoord[i],
//dt1:New_X[i] = Offset_x + dt1:XCoord[i]<BR />dt1:New_X[i] = dt1:XCoord[i] - Offset_x,<BR />dt1:New_X[i] = dt1:XCoord[i] + Offset_x
)
);
For( i = 1, i <= N Rows( dt1 ), i++,
If( Max_Y1 > Max_Y2,
//dt1:New_Y[i] = Offset_y - dt1:YCoord[i],
//dt1:New_Y[i] = Offset_y + dt1:YCoord[i]<BR />dt1:New_Y[i] = dt1:YCoord[i] - Offset_y,<BR />dt1:New_Y[i] = dt1:YCoord[i] + Offset_y
)
);
<BR />
Re : Décalage des coordonnées X et Y de la plaquetteNames Default To Here( 1 );
Clear Globals();
Clear Log();
dt1 = data table("Wafer 1");
dt2 = data table("Wafer 2");
dt1 << New Column( "New_X", Numeric, "Continuous", Format( "Best", 12 ) );
dt1 << New Column( "New_Y", Numeric, "Continuous", Format( "Best", 12 ) );
Max_X1= Col Maximum(dt1:X Coord);
Max_Y1= Col Maximum(dt1:Y Coord);
Max_X2= Col Maximum(dt2:X Coord);
Max_Y2= Col Maximum(dt2:Y Coord);
Offset_x = abs( Max_X2 - Max_X1);
Offset_y = abs(Max_Y2 - Max_Y1);
For( i = 1, i <= N rows(dt1), i++,
if( Max_X1 > Max_X2,
Column(dt1, 4)[i] = Offset_x - Column(dt1, 1)[i] ;,
Column(dt1, 4)[i] = Offset_x + Column(dt1, 1)[i];
)
);
For( i = 1, i <= N rows(dt1), i++,
if( Max_Y1 > Max_Y2,
Column(dt1, 5)[i] = Offset_y - Column(dt1, 2)[i] ;,
Column(dt1, 5)[i] = Offset_y + Column(dt1, 2)[i];
)
);"Une nouvelle colonne doit être créée pour que si la valeur maximale de la colonne X Coord pour la plaquette 1 est supérieure à la valeur maximale de la colonne X Coord pour la plaquette 2, le décalage doit être soustrait des valeurs X Coord de la plaquette 1.Si ce n'est pas vrai, le décalage est ajouté aux valeurs X Coord.
Cette étape doit être répétée pour le Y Coord."
Jim, cela vous dérangerait-il de partager un exemple de code pour la phrase ci-dessus ? J'ai pu trouver les valeurs Max pour X et Y et la différence abs
Re : Décalage des coordonnées X et Y de la plaquetteOui!
C'est une chose simple à faire pour JMP.En fait, ce petit problème est parfait pour un super petit projet comme votre premier projet JSL.La solution consiste à ajouter ou à soustraire la différence entre la valeur maximale de X Coord de la table de données Wafer 1 et de la table de données Wafer 2.Et puis faire de même pour les coordonnées Y.
Le script suit les étapes suivantes
Ouvrez le tableau de données.Voici le code réel pour cela
Names Default To Here( 1 );
dt1 = data table("Wafer 1");
dt2 = data table("Wafer 2");
Ensuite, pour déterminer la différence de décalage entre les 2 wafers, vous devez trouver la différence absolue entre la valeur maximale dans la colonne wafer 1 X Coord et la valeur maximale dans la colonne wafer 2 X Coord.
Répétez maintenant la même chose pour les colonnes Y Coord.
L'étape suivante nécessite la détermination conditionnelle d'ajouter ou de soustraire la valeur de décalage. Une nouvelle colonne doit être créée. Si la valeur maximale de la colonne X Coord pour la plaquette 1 est supérieure à la valeur maximale de la colonne X Coord pour la plaquette 2, le décalage doit être soustrait des valeurs X Coord de la plaquette 1.Si ce n'est pas vrai, le décalage est ajouté aux valeurs X Coord.
Cette étape doit être répétée pour la coordonnée Y.
La lecture du Scripting Guide vous donnera les informations sur les structures de données et les fonctionnalités de programmation disponibles en JSL.
Re : Décalage des coordonnées X et Y de la plaquetteJ'ai dû comparer manuellement les deux cartes pour trouver l'emplacement des deux matrices sur la carte et la valeur de décalage. Existe-t-il un moyen d'implémenter en utilisant jsl?
Re : Décalage des coordonnées X et Y de la plaquetteIl semble que si vous ajoutez 89 au X Coord et 58 au Y Coord dans la table de données Wafer 2, les wafermaps s'aligneront