ウェハの X および Y 座標のオフセットやあ、
ウェーハの X 座標と Y 座標を含む 2 つの jmp テーブルがあります。 ウエハ 1 とウエハ 2 の座標を合わせる方法があるかどうか知りたいのですが?
例: 次の強調表示された X と Y をウェーハ 2 の X と Y に合わせたいとします。
ウェハ 1 : X、Y = 129、372
ウェハ 2: X、Y = -17、-15
グラフビルダーでパターンを認識し、JSLでホバーラベル情報を取得する方法があるかどうかはわかりません。 ご提案をいただければ幸いです
ウェーハ 1 =

ウェーハ 2 =

スクリプト作成Re: ウェハの X 座標と Y 座標のオフセットそれは本当に問題ではありません。ただし、例ではウェーハ 1 を転置しているため、そのウェーハを引き続き使用することをお勧めします。
あなたの質問から気になります。ただ闇雲にコードを挿入するのではなく、Max +1 からの減算がなぜ機能するのかを理解する必要があります。変形が完了したときにダイスがどこに移動するかを必ず確認してください。
Re: ウェハの X 座標と Y 座標のオフセット」転置とは、最大値に 1 を加えた値から各値を減算することです。 」
X と Y の各行をウエハ 2 またはウエハ 1 の最大値で減算するという意味ですか?
Re: ウェハの X 座標と Y 座標のオフセット転置は簡単な計算です。問題は方向性の決定です。 現在の 2 つのウェーハは上下に反転する必要があるように見えますが、左から右に反転する必要がある場合もあります。ウェーハ上の空き領域のパターンを見ると、そのようです。 どちらの場合も、転置は最大値に 1 を加えた値から各値を減算します。
Re: ウェハの X 座標と Y 座標のオフセットいいえ、方向情報は含まれていません。 転置を実装できますか?
Re: ウェハの X 座標と Y 座標のオフセット私は、ウエハは同じ向きで、xy 原点が異なるだけで測定されたものだと仮定しました。 どうやら全体の向きは異なる可能性があります。そのため移調はより複雑になりますが、不可能ではありません。ウェーハを読み込んだファイルには方向情報が含まれていますか?
Re: ウェハの X 座標と Y 座標のオフセット向きが一致しません。 例えば マップ 1 の上部エリアの Y 座標は 0 から負の範囲です。 ただし、ウェーハマップ 2 では同じエリアが 300 以上にあります。

Re: ウェハの X 座標と Y 座標のオフセットグラフの 1 つで軸が逆になっています
Re: ウェハの X 座標と Y 座標のオフセットジムもうまくいきません。 以下の結果を参照してください

Re: ウェハの X 座標と Y 座標のオフセット以前はこれに気づきませんでした...問題は、オフセットからの座標ではなく、座標からオフセットを減算または追加する必要があることです。

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>これは私が思いついたオリジナルのコードのバージョンです。実行速度は速くなりますが、結果は同じになります。コードを見て、別のアプローチを確認してください。</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: ウェハの X 座標と Y 座標のオフセット@txnelson 、
ありがとう、ジム。 コードは機能しますが、結果は期待したものとは異なります。 X 軸と Y 軸がウェーハ 2 マップと一致していないことがわかります。

Re: ウェハの X 座標と Y 座標のオフセットここまで頑張ったね。時間をかけてスクリプト ガイドを読むことを強くお勧めします。
以下は、新しい列を設定するコードの変更です。
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: ウェハの X 座標と Y 座標のオフセット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];
)
);「ウェハ 1 の X Coord 列の最大値がウェハ 2 の X Coord 列の最大値より大きい場合、ウェハ 1 の X Coord 値からオフセットを減算する必要がある新しい列を作成する必要があります。そうでない場合は、オフセットが X 座標値に追加されます。
このステップを Y 座標に対して繰り返す必要があります。」
ジム、上記の文のコード例を共有していただけますか? XとYの最大値とabsの差を見つけることができました
Re: ウェハの X 座標と Y 座標のオフセットはい!
これは JMP にとって簡単なことです。実際、この小さな問題は、最初の JSL プロジェクトとして最適な素晴らしい小さなプロジェクトです。解決策は、ウェハ 1 データ テーブルとウェハ 2 データ テーブルの X Coord の最大値の差を加算または減算することです。次に、Y 座標についても同じことを行います。
スクリプトは次の手順を実行します
データテーブルを開きます。これがその実際のコードです
Names Default To Here( 1 );
dt1 = data table("Wafer 1");
dt2 = data table("Wafer 2");
次に、2 つのウェーハ間のオフセット差を決定するには、ウェーハ 1 X Coord 列の最大値とウェーハ 2 X Coord 列の最大値の間の絶対差を見つける必要があります。
次に、Y Coord 列に対して同じことを繰り返します。
次のステップでは、オフセット値を加算するか減算するかを条件付きで決定する必要があります。 ウェハ 1 の X Coord 列の最大値がウェハ 2 の X Coord 列の最大値より大きい場合、ウェハ 1 の X Coord 値からオフセットを減算する必要がある新しい列を作成する必要があります。そうでない場合は、オフセットが X 座標値に追加されます。
このステップは Y 座標に対して繰り返す必要があります。
スクリプト ガイドを読むと、JSL で使用できるデータ構造とプログラミング機能についての情報が得られます。
Re: ウェハの X 座標と Y 座標のオフセットマップ内の両方のダイの位置とオフセット値を見つけるには、両方のマップを手動で比較する必要がありました。 jslを使って実装する方法はあるのでしょうか?
Re: ウェハの X 座標と Y 座標のオフセットウェーハ 2 データ テーブルの X 座標に 89 を、Y 座標に 58 を追加すると、ウェーハマップが揃うようです。