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