按组进行流程筛选我想要自动化过程筛选,从而将所有分组变量都包含在过程变量中。
我得到的流程筛选的典型脚本如下所示
Process Screening(
Process Variables(
Column Group( "ENG" ),
Column Group( "REJ" )
),
Grouping( :WAFER, :LOT ),
Control Chart Type( "Indiv and MR" )
);
我可以创建可用组的列表,但不知道如何将它们添加到流程筛选中。
Names Default To Here(1);
dt = Current Data Table();
Grps = dt << Get Column Groups Names;
ps = dt << Process Screening(
Process Variables(Column Group( Expr(Grps) )),
Grouping(:LOT, :WAFER),
Control Chart Type("Indiv and MR"),
Within Sigma(0),
Overall Sigma(0),
Stability Index(0),
Mean(0),
Show Tests(0),
Test 1(0),
Out of Spec Rate(0),
Latest Out of Spec(0),
Cpk(0),
Ppk(0)
);
上面的脚本运行失败,因为它需要遍历列表中的每个项目。
自动化和脚本回复:按组进行流程筛选我尝试了几种方法,但不得不恢复到 Eval(Parse()) 方法......虽然丑陋,但有效
Names Default To Here( 1 );
dt = Current Data Table();
Grps = dt << Get Column Groups Names;
Eval(
Parse(
"ps = dt << Process Screening(
Process Variables(Column Group( \!"" || Grps[1] ||
"\!" )),
Grouping(:LOT, :WAFER),
Control Chart Type(\!"Indiv and MR\!"),
Within Sigma(0),
Overall Sigma(0),
Stability Index(0),
Mean(0),
Show Tests(0),
Test 1(0),
Out of Spec Rate(0),
Latest Out of Spec(0),
Cpk(0),
Ppk(0)
)"
)
);
回复:按组进行流程筛选我见过更丑的,我有一面镜子。效果很好。我最初的目标是只选择应用了规范的列,在我的情况下,这意味着分组列。后来我从另一个方向尝试了这个问题,结果也有效。我更喜欢你的方法。
Names Default To Here( 1 );
dt = Current Data Table();
colList = dt << get column names( numeric, string );
SpecCols = {};
For Each( {colnames, index}, colList,
spec = Column( dt, colnames ) << get property( "Spec Limits" );
If( !Is Empty( spec ),
Insert Into( SpecCols, colnames )
);
);
ps = dt << Process Screening(
Process Variables( Eval( SpecCols ) ),
Grouping( :WAFER, :LOT ),
Control Chart Type( "Indiv and MR" ),
Within Sigma( 0 ),
Overall Sigma( 0 ),
Stability Index( 0 ),
Mean( 0 ),
Show Tests( 0 ),
Test 1( 0 ),
Out of Spec Rate( 0 ),
Latest Out of Spec( 0 ),
Cpk( 0 ),
Ppk( 0 )
);