Zeilenauswahl
Hallo JMP-Community,
@jthi
Ein etwas herausforderndes Problem: Ich versuche, einen Code in JSL zu schreiben, auf den ein Ausschluss angewendet werden kann Im Grunde möchte ich also auswählen
Vielen Dank für Ihre Hilfe und Ihren Vorschlag.
BR,
Jack
Automatisierung und SkripterstellungQualitäts- und VerfahrenstechnikBetreff: Markieren Sie die 3 Dies vom Rand der Waferkarte ausIn diesem Fall würden Sie die „select“-Formel (aus meinem ersten Beispiel, in dem ich die Formel einer Ellipse verwendet habe) wie folgt ändern:
Abs( :X coord - Round( :Cx ) ) <= 1 & Abs( :Y coord - Round( :Cy ) ) <= 1
Der Grund, warum ich das Ellipsenbeispiel verwende, ist, dass im Gegensatz zum rangbasierten Beispiel Mittelpunkt x und Mittelpunkt y bestimmt werden müssen. Sobald Sie das getan haben, suchen Sie nach einer Differenz von -1, 0 oder 1 vom gerundeten Wert des Mittelpunkts x und einer Differenz von -1, 0 oder 1 vom gerundeten Wert des Mittelpunkts y.
Im Allgemeinen müsste die Formel für ein NxN-Quadrat wie oben aussehen, jedoch mit (N-1)/2 an jeder Stelle ersetzt, an der ich in der obigen Formel den Wert „1“ habe.
EDIT: Eigentlich gilt das für ein NxN-Quadrat, wenn N ungerade ist. Wenn N gerade ist, müssten Sie etwas mehr Arbeit leisten.
a) Wenn sich herausstellt, dass Cx oder Cy ganze Zahlen sind, müssen Sie entscheiden, ob Sie mehr Würfel links von der Mitte (analog unten) oder mehr Würfel rechts von der Mitte (analog oben) nehmen und sich dann etwas davon entfernen möchten Zentrum und nimm N/2 Würfel auf jeder Seite davon. Wenn Cx oder Cy keine ganze Zahl ist, können Sie einfach N/2 Würfel auf jeder Seite von Cx bzw. Cy erfassen.

Betreff: Markieren Sie die 3 Dies vom Rand der Waferkarte aus@brady_brady
Kurze Frage Brady – Was passiert, wenn ich eine quadratische Matrix von 3 x 3 aus der Mitte der Waferkarte auswählen möchte?
Names Default To Here( 1 );
dt = Current Data Table();
Try( dt << Delete Columns( "RevX", "RevY", "RankX", "RankY", "Select" ) );
Try( dt << Delete Table Variable( "Par" ) );
Par = 135;
dt << New Table Variable( "Par", 4 );
dt << New Column( "RevX", Formula( (Col Number( :X coord, :Y coord ) - Col Rank( :X coord, :Y coord )) + 1 < Par ) );
dt << New Column( "RevY", Formula( (Col Number( :Y coord, :X coord ) - Col Rank( :Y coord, :X coord )) + 1 < Par ) );
dt << New Column( "RankX", Formula( Col Rank( :X coord, :Y coord ) < Par ) );
dt << New Column( "RankY", Formula( Col Rank( :Y coord, :X coord ) < Par ) );
dt << New Column( "Select", Formula( :RevX + :RevY + :RankX + :RankY > 0 ) );
dt << Select Where( :Select == 1 );
New Window( "",
H List Box(
Outline Box( "Control",
tb = Text Edit Box( 3 ),
Button Box( "Set",
val = Num( tb << get text ) + 1;
dt << Set Table Variable( "Par", val );
dt << Select Where( :Select == 1 );
)
/* sb= Slider Box( 0.001, 1, p,
dt:Par = p;
dt << Select Where(:To Select == 1 );
tb << Set text( p )
)*/
),
Graph Builder(
Size( 534, 456 ),
Show Control Panel( 0 ),
Variables( X( :X coord ), Y( :Y coord ) ),
Elements( Points( X, Y, Legend( 3 ) ) )
)
)
);
Betreff: Markieren Sie die 3 Dies vom Rand der Waferkarte ausVielen Dank, Brady!
Betreff: Markieren Sie die 3 Dies vom Rand der Waferkarte ausGern geschehen. Sie können dies auch mit einem rangbasierten Ansatz tun, indem Sie die oberen und unteren 3 xs für ein gegebenes y auswählen und umgekehrt.
Diese Auswahl sieht so aus:

Ich habe eine Tabelle mit Spalten angehängt, die beide Ansätze unterstützen.
Prost,
Brady
Betreff: Markieren Sie die 3 Dies vom Rand der Waferkarte ausDanke Brady
Betreff: Markieren Sie die 3 Dies vom Rand der Waferkarte ausDies könnte ein iterativer Prozess sein. In einer pixeligen Umgebung wie dieser ist es außerdem schwierig, „3 vom Rand“ strikt zu definieren.
Sie können ziemlich nahe kommen, indem Sie zur Auswahl eine Ellipse verwenden.
1) Finden Sie Mittelpunkt x und Mittelpunkt y
2) Unter Verwendung der Exzentrizität nach Bedarf einen Kreis stören, um eine Ellipse parallel zur Waferkante zu erhalten.
3) Wählen Sie einen „Radius“ (hier ein zweifelhafter Begriff, ich weiß), der die gewünschten Punkte auswählt.
4) Verwenden Sie eine Formelspalte, um interessante Punkte zu kennzeichnen.
Unten finden Sie Screenshots und ein Skript, das Sie für Ihre Datentabelle ausführen können


Names Default To Here(1);
dt = current data table();
dt << new column ("Cx", Formula( (Col Max( :X coord ) + Col Min( :X coord ) ) / 2 ) );
dt << new column ("Cy", Formula( (Col Max( :Y coord ) + Col Min( :Y coord ) ) / 2 ) );
dt << new column ("To Select", Formula( Root( Power( :X coord - :Cx ) * 0.57 + Power( :Y coord - :Cy ) ) > 100 ) );
dt << Select Where(:To Select == 1 );
dt << Run Script ("Wafer Map");