cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • Learn how to build custom Python data connectors and further customize JMP’s Data Connector Framework with the Python Data Connector Demo, available now in the JMP Marketplace!
  • See how to create experiments to support product design and ID useful product features. Register for June 12 webinar, 2pm US Eastern Time.

Discussions

Solve problems, and share tips and tricks with other JMP users.
Choose Language Hide Translation Bar
Jackie_
Level VI

Offsetting X and Y coordinates of wafer

Hi,

 

I've two jmp table which has X and Y coordinates of the wafer. I would like to know if there's a way to align the coordinates of Wafer 1 with Wafer 2? 

For examples: I want to align the following highlighted X and Y with the X and Y of wafer 2.

Wafer 1 : X, Y = 129, 372 

Wafer 2: X, Y = -17, -15

I am not sure if there a way to recognize patterns in the graph builder and get the hover label information with JSL. Any suggestions would be much appreciated 

 

Wafer 1 =

Jacksmith12_0-1659881657253.png

 

Wafer 2 = 

Jacksmith12_1-1659881682065.png

 

 

1 ACCEPTED SOLUTION

Accepted Solutions
txnelson
Super User

Re: Offsetting X and Y coordinates of wafer

Yes!

This is a simple thing for JMP to do.  In fact, this little problem is a perfect li a great little project as your first JSL project.  The solution is to either add or subtract the difference between the maximum value of X Coord from Wafer 1 data table and Wafer 2 data table.  And then to do the same for the Y coordinates.

The script takes the following steps

Open the data table.  Here is the actual code for that

Names Default To Here( 1 );
dt1 = data table("Wafer 1");
dt2 = data table("Wafer 2");

Next, to determine the offset difference between the 2 wafers, you need to find the Absolute differeence between the maximum value in the wafer 1 X Coord column and the maximum value in the wafer 2 X Coord column.

Now repeat the same for the Y Coord columns.

The next step requires the conditional determination of whether to add or subtract the offset value. A new column needs to be created that  if the X Coord column's maximum value for wafer 1 is greater than the X Coord column's maximum value for wafer 2, the offset needs to be subtracted from wafer 1's X Coord values.  If that is not true, then the offset is added to the X Coord values.

This step needs to be repeated for the Y Coord.

 

The reading of the Scripting Guide will give you the information on the data structures a programming features available in JSL.

Jim

View solution in original post

15 REPLIES 15
txnelson
Super User

Re: Offsetting X and Y coordinates of wafer

It appears that if you add 89 to the X Coord and 58 to the Y Coord in the Wafer 2 data table, the wafermaps will align

Jim
Jackie_
Level VI

Re: Offsetting X and Y coordinates of wafer

I had to manually compare both maps to find the location of both dies in the map and the offset value. Is there a way to implement using jsl?

txnelson
Super User

Re: Offsetting X and Y coordinates of wafer

Yes!

This is a simple thing for JMP to do.  In fact, this little problem is a perfect li a great little project as your first JSL project.  The solution is to either add or subtract the difference between the maximum value of X Coord from Wafer 1 data table and Wafer 2 data table.  And then to do the same for the Y coordinates.

The script takes the following steps

Open the data table.  Here is the actual code for that

Names Default To Here( 1 );
dt1 = data table("Wafer 1");
dt2 = data table("Wafer 2");

Next, to determine the offset difference between the 2 wafers, you need to find the Absolute differeence between the maximum value in the wafer 1 X Coord column and the maximum value in the wafer 2 X Coord column.

Now repeat the same for the Y Coord columns.

The next step requires the conditional determination of whether to add or subtract the offset value. A new column needs to be created that  if the X Coord column's maximum value for wafer 1 is greater than the X Coord column's maximum value for wafer 2, the offset needs to be subtracted from wafer 1's X Coord values.  If that is not true, then the offset is added to the X Coord values.

This step needs to be repeated for the Y Coord.

 

The reading of the Scripting Guide will give you the information on the data structures a programming features available in JSL.

Jim
Jackie_
Level VI

Re: Offsetting X and Y coordinates of wafer

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, "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];
		
)
		
		
	);

"A new column needs to be created that  if the X Coord column's maximum value for wafer 1 is greater than the X Coord column's maximum value for wafer 2, the offset needs to be subtracted from wafer 1's X Coord values.  If that is not true, then the offset is added to the X Coord values.

This step needs to be repeated for the Y Coord."

Jim, would you mind sharing an example code for the above sentence? I was able to Find the Max values for X and Y and the abs difference

txnelson
Super User

Re: Offsetting X and Y coordinates of wafer

Good work getting as far as you did.  I strongly suggest you take the time to read the Scripting Guide.

Below is a modification to your code that populates the new columns

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]
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] = Offset_y - dt1:YCoord[i], //dt1:New_Y[i] = Offset_y + dt1:YCoord[i]
dt1:New_Y[i] = dt1:YCoord[i] - Offset_y,
dt1:New_Y[i] = dt1:YCoord[i] + Offset_y ) );
Jim
Jackie_
Level VI

Re: Offsetting X and Y coordinates of wafer

@txnelson ,

Thanks, Jim. The code works but the results isn't what I expected. You see the X and Y axis don't align with the wafer 2 Map

Jacksmith12_0-1659991878463.png

 

txnelson
Super User

Re: Offsetting X and Y coordinates of wafer

I did not notice this before....the issue is you need to subtract or add the Offset from the coordinate, not the coordinate from the offset.

txnelson_0-1659992853090.png

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
	)
);

Here is the original version of the code that I undependably came up with.  It runs faster, but gives the same results.  Take a look at the code, and check out the different approach.

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 ) )
);



 

Jim
Jackie_
Level VI

Re: Offsetting X and Y coordinates of wafer

It doesn't work either Jim. See the results below

Jacksmith12_0-1660049777038.png

 

txnelson
Super User

Re: Offsetting X and Y coordinates of wafer

Your axes have been reversed on one of the charts

Jim

Recommended Articles