Examen des processus par groupesJe souhaite automatiser un filtrage de processus, dans lequel toutes les variables groupées sont incluses en tant que variables de processus.
Le script typique que je reçois pour le contrôle des processus ressemble à ceci
Process Screening(
Process Variables(
Column Group( "ENG" ),
Column Group( "REJ" )
),
Grouping( :WAFER, :LOT ),
Control Chart Type( "Indiv and MR" )
);
Je suis capable de créer une liste de groupes disponibles, mais je ne sais pas comment les ajouter au filtrage des processus.
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)
);
Le script ci-dessus s'étouffe car il doit parcourir chaque élément de la liste.
Automatisation et scriptsObjet : Examen des processus par groupesJ'ai essayé quelques méthodes, mais j'ai dû revenir à une méthode Eval(Parse())... moche mais ça marche
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)
)"
)
);
Objet : Examen des processus par groupesJ'ai vu pire ; je possède un miroir. Ça marche bien. Mon objectif initial était de sélectionner uniquement les colonnes avec des spécifications appliquées, ce qui, dans mon cas, signifie des colonnes groupées. J'ai ensuite abordé le problème différemment, mais ça marche aussi. Je préfère votre approche.
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 )
);