Screening dei processi per gruppiVoglio automatizzare uno screening di processo, in cui tutte le variabili raggruppate vengono incluse come variabili di processo.
Lo script tipico che ottengo per lo screening del processo è simile a questo
Process Screening(
Process Variables(
Column Group( "ENG" ),
Column Group( "REJ" )
),
Grouping( :WAFER, :LOT ),
Control Chart Type( "Indiv and MR" )
);
Riesco a creare un elenco dei gruppi disponibili, ma non riesco a capire come aggiungerli allo screening del processo.
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)
);
Lo script sopra riportato si blocca perché deve scorrere ogni elemento dell'elenco.
Automazione e scriptingRe: Screening dei processi per gruppiHo provato un paio di metodi, ma ho dovuto tornare al metodo Eval(Parse())...brutto ma funziona
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)
)"
)
);
Re: Screening dei processi per gruppiNe ho viste di peggiori, ho uno specchio. Funziona bene. Il mio obiettivo di fondo era selezionare solo le colonne con le specifiche applicate, che nel mio caso significa colonne raggruppate. Successivamente ho affrontato il problema in una direzione diversa, che funziona anch'essa. Mi piace di più il tuo approccio.
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 )
);