JSL automatizza le colonne utilizzate in Process CapabilityCiao,
quindi voglio scrivere uno script JSL in grado di eseguire Process Capability con un clic di un pulsante su una barra degli strumenti. ho tutto codificato tranne le variabili di processo. vedere il codice di seguito. come potrò aggiungere dinamicamente le colonne in "variabili di processo ()"
func_Process_Cap = Function({summ_table,spec_table},
// local vars
{},
Process Capability(
Process Variables( // hard coded - not ideal
:Name( "column1" ), //some columns are preseeded by :name()
:column2 // some are not
),
Spec Limits(
Import Spec Limits(spec_table) // dynamic
),
Individual Detail Reports( 1 ),
Capability Box Plots( 0 ),
Overall Sigma Summary Report( 1 ),
Goal Plot( 0 ),
Capability Index Plot( 0 ),
Order By( "Overall Sigma Ppk Ascending" ),
);
);Ri: JSL automatizza le colonne utilizzate in Process Capabilityfunziona alla grande! ho aggiunto pcVar = Eval(.... allo script e sono in grado di inviare comandi alla finestra quindi pcVar << Goal Plot(0); per ulteriore personalizzazione. per le persone che lo vedranno in futuro!
pcVar =Eval(Parse("dt << Capacità di processo(
Variabili di processo( "|| TheVars|| ") ) ,
);"));
pcVar <Ri: JSL automatizza le colonne utilizzate in Process CapabilityProva questo
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\semiconductor capability.jmp" );
// Create a complex name for a column to make sure it will be
// processed correctly
dt:NPN1 << set name( "NPN1-7/Best" );
// Get a list of columns to be used
colList = dt << get column names( continuous, string );
ProcessFunc = Function( {TheList},
// Move them into a single literal string of the format required
// for the Process Variables element in the Process Capability
// platform
TheVars = ":Name(\!"" || TheList[1] || "\!")";
For( i = 2, i <= 10, i++,
TheVars = TheVars || "," || ":Name(\!"" || TheList[i] || "\!")"
);
// Run the Process Capability platform, using the literal
// string "TheVars"
Eval(Parse("dt << Process Capability(
Process Variables( "|| TheVars|| ") ) ,
Goal Plot( 1 ), Capability Index Plot( 1 )
);"));
);
Return = ProcessFunc( colList );Ri: JSL automatizza le colonne utilizzate in Process Capabilityè un buon inizio ma accetta solo la prima colonna. ho creato una tabella di dati fittizi, (colonna1, colonna2, colonna3) e ho modificato il modo in cui la stringa sembrava corrispondere allo script che ho salvato dell'analisi sui dati fittizi e accetta ancora solo la prima colonna. proverò diversi metodi e se trovo qualcosa riferirò indietro!
Ri: JSL automatizza le colonne utilizzate in Process CapabilityNon sono del tutto sicuro se la sceneggiatura (vedi sotto) che ho scritto ti darà una possibile direzione in cui vuoi andare.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\semiconductor capability.jmp" );
// Create a complex name for a column to make sure it will be
// processed correctly
dt:NPN1 << set name( "NPN1-7/Best" );
// Get a list of columns to be used
colList = dt << get column names( continuous, string );
ProcessFunc = Function( {TheList},
// Move them into a single literal string of the format required
// for the Process Variables element in the Process Capability
// platform
TheVars = ":Name(\!"" || TheList[1] || "\!")";
For( i = 2, i <= N Items( TheList ), i++,
TheVars = TheVars || "," || ":Name(\!"" || TheList[i] || "\!")"
);
// Run the Process Capability platform, using the literal
// string "TheVars"
dt << Process Capability(
Process Variables( Eval( Parse( TheVars ) ) ),
Goal Plot( 1 ), Capability Index Plot( 1 )
);
);
Return = ProcessFunc( colList );