Versetzen der X- und Y-Koordinaten des WafersHallo,
Ich habe zwei JMP-Tabellen mit X- und Y-Koordinaten des Wafers. Ich würde gerne wissen, ob es eine Möglichkeit gibt, die Koordinaten von Wafer 1 mit Wafer 2 auszurichten?
Zum Beispiel: Ich möchte die folgenden hervorgehobenen X- und Y-Werte an den X- und Y-Werten von Wafer 2 ausrichten.
Wafer 1: X, Y = 129, 372
Wafer 2: X, Y = -17, -15
Ich bin mir nicht sicher, ob es eine Möglichkeit gibt, Muster im Graph Builder zu erkennen und die Hover-Label-Informationen mit JSL abzurufen. Für Vorschläge wäre ich sehr dankbar
Wafer 1 =

Wafer 2 =

SkripterstellungBetreff: X- und Y-Koordinaten des Wafers versetzenEs spielt wirklich keine Rolle.Allerdings haben Sie in Ihren Beispielen Wafer 1 transponiert, daher schlage ich vor, dass Sie diesen Wafer weiterhin verwenden.
Ihre Frage macht mir Sorgen.Sie müssen verstehen, warum die Subtraktion von Max +1 funktioniert, und nicht einfach nur den Code blind eingeben.Stellen Sie sicher, dass Sie prüfen, wohin sich der Würfel bewegt, wenn die Transformation abgeschlossen ist.
Betreff: X- und Y-Koordinaten des Wafers versetzen" Die Transposition besteht darin, jeden Wert vom Maximalwert plus 1 zu subtrahieren. "
Wollen Sie damit sagen, subtrahieren Sie jede Zeile von X und Y mit dem Maximalwert von Wafer 2 oder Wafer 1?
Betreff: X- und Y-Koordinaten des Wafers versetzenDie Transposition ist einfache Mathematik.Es geht um die Bestimmung der Ausrichtung. Die aktuellen 2 Wafer müssen anscheinend von oben nach unten gewendet werden, möglicherweise müssen sie jedoch auch von links nach rechts gewendet werden.Betrachtet man das Muster der leeren Bereiche auf dem Wafer, scheint dies der Fall zu sein. In beiden Fällen besteht die Transposition darin, jeden Wert vom Maximalwert plus 1 zu subtrahieren.
Betreff: X- und Y-Koordinaten des Wafers versetzenNein, es enthält keine Orientierungsinformationen. Können wir die Umsetzung umsetzen?
Betreff: X- und Y-Koordinaten des Wafers versetzenIch ging davon aus, dass Ihre Wafer in derselben Ausrichtung gemessen wurden, nur mit unterschiedlichen xy-Ursprüngen. Anscheinend kann die Gesamtausrichtung unterschiedlich sein.Das macht die Umsetzung komplexer, aber nicht unmöglich.Enthalten die Dateien, aus denen Sie die Wafer einlesen, Orientierungsinformationen?
Betreff: X- und Y-Koordinaten des Wafers versetzenSie stimmen hinsichtlich der Ausrichtung nicht überein. Z.B Der obere Bereich auf Karte 1 hat Y-Koordinaten zwischen 0 und negativ. In der Waferkarte 2 liegt der gleiche Bereich jedoch bei 300 und höher

Betreff: X- und Y-Koordinaten des Wafers versetzenIn einem der Diagramme wurden Ihre Achsen vertauscht
Betreff: X- und Y-Koordinaten des Wafers versetzenEs funktioniert auch nicht, Jim. Sehen Sie sich die Ergebnisse unten an

Betreff: X- und Y-Koordinaten des Wafers versetzenDas ist mir vorher nicht aufgefallen. Das Problem ist, dass Sie den Offset von der Koordinate subtrahieren oder addieren müssen, nicht die Koordinate vom Offset.

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>Hier ist die Originalversion des Codes, den ich unzuverlässig erstellt habe.Es läuft schneller, liefert aber die gleichen Ergebnisse.Schauen Sie sich den Code an und sehen Sie sich den anderen Ansatz an.</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 ) )
);
Betreff: X- und Y-Koordinaten des Wafers versetzen@txnelson ,
Danke, Jim. Der Code funktioniert, aber die Ergebnisse entsprechen nicht meinen Erwartungen. Sie sehen, dass die X- und Y-Achse nicht mit der Wafer-2-Karte übereinstimmen

Betreff: X- und Y-Koordinaten des Wafers versetzenGute Arbeit, so weit zu kommen wie du.Ich empfehle Ihnen dringend, sich die Zeit zu nehmen, den Scripting Guide zu lesen.
Nachfolgend finden Sie eine Änderung Ihres Codes, mit der die neuen Spalten gefüllt werden
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 />
Betreff: X- und Y-Koordinaten des Wafers versetzenNames 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];
)
);„Eine neue Spalte muss erstellt werden. Wenn der Maximalwert der X-Koordinatenspalte für Wafer 1 größer ist als der Maximalwert der X-Koordinatenspalte für Wafer 2, muss der Offset von den X-Koordinatenwerten von Wafer 1 abgezogen werden.Wenn dies nicht der Fall ist, wird der Versatz zu den X-Koordinatenwerten addiert.
Dieser Schritt muss für die Y-Koordinate wiederholt werden.
Jim, würde es dir etwas ausmachen, einen Beispielcode für den obigen Satz zu teilen? Ich konnte die Maximalwerte für X und Y sowie die Differenz der Bauchmuskeln ermitteln
Betreff: X- und Y-Koordinaten des Wafers versetzenJa!
Dies ist für JMP eine einfache Sache.Tatsächlich ist dieses kleine Problem ein perfektes kleines Projekt wie Ihr erstes JSL-Projekt.Die Lösung besteht darin, die Differenz zwischen dem Maximalwert von X Coord aus der Datentabelle von Wafer 1 und der Datentabelle von Wafer 2 entweder zu addieren oder zu subtrahieren.Und dann machen Sie dasselbe für die Y-Koordinaten.
Das Skript führt die folgenden Schritte aus
Öffnen Sie die Datentabelle.Hier ist der eigentliche Code dafür
Names Default To Here( 1 );
dt1 = data table("Wafer 1");
dt2 = data table("Wafer 2");
Um die Offset-Differenz zwischen den beiden Wafern zu bestimmen, müssen Sie als Nächstes die absolute Differenz zwischen dem Maximalwert in der Spalte „Wafer 1 X Coord“ und dem Maximalwert in der Spalte „Wafer 2 X Coord“ ermitteln.
Wiederholen Sie nun dasselbe für die Y-Koordinatenspalten.
Der nächste Schritt erfordert die bedingte Bestimmung, ob der Offsetwert addiert oder subtrahiert werden soll. Es muss eine neue Spalte erstellt werden. Wenn der Maximalwert der X-Koordinatenspalte für Wafer 1 größer ist als der Maximalwert der X-Koordinatenspalte für Wafer 2, muss der Offset von den X-Koordinatenwerten von Wafer 1 abgezogen werden.Wenn dies nicht der Fall ist, wird der Versatz zu den X-Koordinatenwerten addiert.
Dieser Schritt muss für die Y-Koordinate wiederholt werden.
Durch die Lektüre des Scripting Guide erhalten Sie Informationen zu den Datenstrukturen und Programmierfunktionen, die in JSL verfügbar sind.
Betreff: X- und Y-Koordinaten des Wafers versetzenIch musste beide Karten manuell vergleichen, um die Position beider Matrizen in der Karte und den Versatzwert zu ermitteln. Gibt es eine Möglichkeit, mit jsl zu implementieren?
Betreff: X- und Y-Koordinaten des Wafers versetzenEs scheint, dass die Wafermaps ausgerichtet werden, wenn Sie 89 zur X-Koordinate und 58 zur Y-Koordinate in der Wafer-2-Datentabelle hinzufügen