<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我想知道您是否可以使用“規範限制”文件來添加能力研究的限制,並使用它來一次性添加列屬性的限制來執行儀表R&R而無需逐個輸入它們。 我想獲得精度公差比,並且需要所有列的規格限制。
沒關係,我自己想通了:
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 )})
)
)
)
)
);
populateSpecs不再適用於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 ]
)
)
) ;
// ************************************************ ******************************************
//給定列引用,設置spec liomits屬性
// ************************************************ ******************************************
setSpecLimits = 功能 ({ C , LSL , USL ,柏油 } ,
CMD = EXPR ( C << 的SetProperty ( “規格限制” , { LSL ( EXPR ( LSL )) , USL ( EXPR ( USL )) ,目標 ( EXPR ( 柏油 ))})) ;
EVAL ( evalexpr ( CMD )) ;
) ;
// ************************************************ ******************************************
//給定表dt和包含規範限制的表dt1,在dt中填充spec limit屬性
// ************************************************ ******************************************
populateSpecs = 功能 ({ DT , DT1 } , { 默認本地 } ,
//循環遍歷dt1行,如果在dt中有匹配列,則設置其屬性
CLIST = DT << GetColumnNames ( 數字 ,串 ) ;
對於 ( [R = 1 , [R <= NROWS ( DT1 ) , [R ++,
名稱 = 柱 ( DT1 , “處理” ) [R ] ;
LSL = 柱 ( DT1 , “LSL” ) [R ] ;
USL = 柱 ( DT1 , “USL” ) [R ] ;
柏油 = 柱 ( DT1 , “目標” ) [R ] ;
如果 ( 包含 ( CLIST ,名稱 ) , SetSpecLimits ( 柱 ( DT ,名稱 ) , LSL , USL ,柏油 )) ;
)
) ;
//使用dt1在dt中定義規範限制列屬性
等待 ( 3 ) ;
populateSpecs ( DT , DT1 ) ;
//啟動Capability平台(自動使用列屬性)
COLS = DT << getColumnNames ;
DT << 能力 ( ÿ ( EVAL ( COLS ))) ;