Here is an example using the Wafer Stacked data table from the JMP Sample tables that selects the nearest neighbor die
names default to here(1);
dtMain =
// Open Data Table: Wafer Stacked.jmp
// → Data Table( "Wafer Stacked" )
Open( "$SAMPLE_DATA/Wafer Stacked.jmp" );
dtMain << set name("Main");
dtMain:X_Die << modeling type(Ordinal);
dtMain:Y_Die << modeling type(Ordinal);
// For illustration, use only Wafer 1 data
dtMain << select where( :Wafer == 1 & :Lot =="1" );
dtMain << invert row selection;
dtMain << delete rows;
// Create a separate data table that only has the die with defects in them
dtMain << select where( :Defects > 0 );
dtDefects = dtMain << subset( selected rows( 1 ), selected columns( 0 ),
output table( "Defects" ) );
// Remove the defects column from the main table
dtMain << delete columns( :Defects );
// Create a table with the nearest neighbor data from the main table, based upon one of the
// defect die that has a defect in the defect table.
// For illustration we will pick the die in the Defect table in row
DefectRow = 1;
dtMain << select where( dtMain:X_Die >= dtDefects:X_Die[DefectRow] - 1 &
dtMain:X_Die <= dtDefects:X_Die[DefectRow] + 1
&
dtMain:Y_Die >= dtDefects:Y_Die[DefectRow] - 1 & dtMain:Y_Die <= dtDefects:Y_Die[DefectRow] + 1
);
dtNear = dtMain << subset( selected rows( 1 ), selected columns( 0 ),
output table( "Nearest" ) );
// Display the selected die
dtNear << Graph Builder(
Size( 512, 448 ),
Show Control Panel( 0 ),
Variables( X( :X_Die ), Y( :Y_Die ) ),
Elements( Points( X, Y, Legend( 5 ) ) )
);
Jim