Prozessscreening nach GruppenIch möchte ein Prozess-Screening automatisieren, wobei alle gruppierten Variablen als Prozessvariablen einbezogen werden.
Das typische Skript, das ich für das Prozess-Screening erhalte, sieht folgendermaßen aus
Process Screening(
Process Variables(
Column Group( "ENG" ),
Column Group( "REJ" )
),
Grouping( :WAFER, :LOT ),
Control Chart Type( "Indiv and MR" )
);
Ich kann eine Liste verfügbarer Gruppen erstellen, weiß aber nicht, wie ich diese zur Prozessüberprüfung hinzufügen kann.
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)
);
Das obige Skript gerät ins Stocken, weil es jedes Element in der Liste durchlaufen muss.
Automatisierung und SkriptingBetreff: Prozess-Screening nach GruppenIch habe ein paar Methoden ausprobiert, musste aber wieder auf eine Eval(Parse())-Methode zurückgreifen.....hässlich, aber es funktioniert
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)
)"
)
);
Betreff: Prozess-Screening nach GruppenIch habe schon Schlimmeres gesehen, ich besitze einen Spiegel. Funktioniert gut. Mein ursprüngliches Ziel war es, nur Spalten mit angewendeten Spezifikationen auszuwählen, was in meinem Fall gruppierte Spalten bedeutet. Ich habe das Problem anschließend in eine andere Richtung angegangen, die auch funktioniert. Mir gefällt Ihr Ansatz besser.
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 )
);