<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />ケイパビリティスタディに制限を追加するために使用される「スペック制限」ファイルを使用して、列のプロパティに制限を追加してゲージR&Rを1つずつ入力せずに実行できるかどうかを知りたいです。。 精度と許容差の比率を取得し、すべての列に対して仕様制限が必要です。
決して気にしないで、私は自分でそれを考え出した:
populateSpecs = Function({dt, dt1}, {Default Local},
// Loop over rows of dt1, and iff there is a matching column in dt set its property
clist = dt << GetColumnNames(Numeric, String);
for (r=1, r<=NRows(dt1), r++,
name = Column(dt1, "Variable")[r];
lsl = Column(dt1, "LSL")[r];
usl = Column(dt1, "USL")[r];
tar = Column(dt1, "Target")[r];
Eval(
Eval Expr(
if (Contains(clist, name), Column(dt, name) << Set Property ( "Spec Limits",
{LSL( Expr(lsl) ), USL( Expr(usl) ), Target( Expr(tar) ), Show Limits( 1 )})
)
)
)
)
);
populateSpecは、JMP 13では機能しなくなりました(私が何か問題を起こしていない限り)。私はそれを "修正"しようとしましたが、うまくいきません。ループ内のlsl、usl、およびtarの現在の値を評価することと関係があると思いますが、どのように機能させるかはわかりません。提案?
// ******************************************************************************************
// Given a table dt, and a table dt1 containing spec limits, populates spec limit properties in dt
// ******************************************************************************************
populateSpecs = Function({dt, dt1}, {Default Local},
// Loop over rows of dt1, and iff there is a matching column in dt set its property
clist = dt << GetColumnNames(Numeric, String);
for (r=1, r<=NRows(dt1), r++,
name = Column(dt1, "Variable")[r];
lsl = Column(dt1, "LSL")[r];
usl = Column(dt1, "USL")[r];
tar = Column(dt1, "Target")[r];
if (Contains(clist, name), Column(dt, name) << Set Property ( "Spec Limits",
{LSL( lsl ), USL( usl ), Target( tar ), Show Limits( 1 )})
)
)
);
以下のコードでは、'dt'( 'dt1')はデータを含むテーブルへの参照です(仕様範囲)。コードを使用するには、[ファイル]> [新規]> [新しいスクリプト]を実行し、表示されるウィンドウにカットアンドペーストしてから[編集]> [スクリプトの実行]を実行します。
NamesDefaultToHere ( 1 ) ;
//使用するスペックを制限します
dt1 =
新しいテーブル ( 「スペック制限」 、
行を追加 ( 3 ) 、
新しいコラム ( "プロセス" 、
キャラクター 、
「公称」 、
設定値 ( { "NPN1" 、 「PNP1」 、 「PNP2」 } )
) 、
新しいコラム ( "LSL" 、
数値 、
「連続」 、
設定値 ( [ 104.412948990151 、 164.389518443879 、 - 136.122122529984 ] )
) 、
新しいコラム ( "ターゲット" 、
数値 、
「連続」 、
設定値 ( [ 118.153221027253 、 297.017932186294 、 465.441998810449 ] )
) 、
新しいコラム ( 「USL」 、
数値 、
「連続」 、
設定値 ( [ 131.893493064355 、 429.64634592871 、 1067.00612015088 ] )
)
) ;
//処理するデータを作成します
dt =
新しいテーブル ( "データ" 、
行を追加 ( 10年 ) 、
新しいコラム ( "NPN1" 、
数値 、
「連続」 、
設定値 (
[ 114.555760105678 、 120.043693059459 、 114.926510466106 、 111.756445551183 、
111.545085144313 、 113.52359591958 、 111.749308571209 、 114.411433304976 、
118.48975048042 、 113.171122695149 ]
)
) 、
新しいコラム ( 「PNP1」 、
数値 、
「連続」 、
設定値 (
[ 322.616751775796 、 333.128079728678 、 348.978757216574 、 268.548094462492 、
295.073165929223 、 323.833298568833 、 369.320490694357 、 342.987400315929 、
315.52243608245 、 288.978183718528 ]
)
) 、
新しいコラム ( 「PNP2」 、
数値 、
「連続」 、
設定値 (
[ 469.390289765043 、 437.781112798903 、 532.12814730405 、 373.058628529111 、
338.900737368942 、 469.992171436316 、 563.084459366587 、 479.378108668814 、
530.265608347575 、 421.454501563007 ]
)
)
) ;
// ***************************************************** *****************************************
//列参照を指定して、specomomitsプロパティを設定する
// ***************************************************** *****************************************
setSpecLimits = 関数 ({ c 、 LSL 、 usl 、タール } 、
cmd = 経験値 ( c << SetProperty ( 「スペック制限」 、 { LSL ( expr ( LSL )) 、 USL ( expr ( usl )) 、ターゲット ( expr ( タール ))})) ;
評価する ( evalexpr ( cmd )) ;
) ;
// ***************************************************** *****************************************
//テーブルdtとスペック制限を含むテーブルdt1が与えられた場合、スペック制限プロパティをdtに設定します
// ***************************************************** *****************************************
populateSpecs = 関数 ({ dt 、 dt1 } 、 { デフォルトのローカル } 、
// dt1の行をループし、dtに一致する列がある場合はそのプロパティを設定する
クリスト = dt << GetColumnNames ( 数値 、ひも ) ;
にとって ( r = 1 、 r <= NRows ( dt1 ) 、 r ++、
名 = カラム ( dt1 、 "プロセス" )[ r ] ;
LSL = カラム ( dt1 、 "LSL" )[ r ] ;
usl = カラム ( dt1 、 「USL」 )[ r ] ;
タール = カラム ( dt1 、 "ターゲット" )[ r ] ;
もし ( 含む ( クリスト 、名 ) 、 SetSpecLimits ( カラム ( dt 、名 ) 、 LSL 、 usl 、タール )) ;
)
) ;
// dt1を使用してdtにスペック制限列のプロパティを定義する
待つ ( 3 ) ;
populateSpecs ( dt 、 dt1 ) ;
// Capabilityプラットフォームを起動します(これは自動的に列のプロパティを使用します)。
コルズ = dt << getColumnNames ;
dt << 能力 ( Y ( 評価 ( コルズ ))) ;