JSL automatiza las columnas utilizadas en Process CapabilityHola,
entonces quiero escribir un script JSL que pueda ejecutar Process Capability con solo hacer clic en un botón en una barra de herramientas. tengo todo codificado excepto las variables de proceso. ver el código a continuación. ¿Cómo podré agregar dinámicamente las columnas en "variables de proceso ()"?
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" ),
);
);Re: JSL automatiza las columnas utilizadas en Process Capability¡Funciona genial! agregué pcVar = Eval(.... al script y puedo enviar comandos a la ventana, así que pcVar << Goal Plot(0); para una mayor personalización. ¡Para las personas que vean esto en el futuro!
pcVar =Eval(Parse("dt << Capacidad de proceso(
Variables de proceso( "|| TheVars|| ") ) ,
);"));
pcVar <Re: JSL automatiza las columnas utilizadas en Process CapabilityPrueba esto
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 );Re: JSL automatiza las columnas utilizadas en Process Capabilityes un buen comienzo, pero solo acepta la primera columna. Hice una tabla de datos ficticios (columna 1, columna 2, columna 3) y modifiqué el aspecto de la cadena para que coincidiera con el script que guardé del análisis de los datos ficticios y todavía solo acepta la primera columna. ¡Probaré diferentes métodos y si encuentro algo lo informaré!
Re: JSL automatiza las columnas utilizadas en Process CapabilityNo estoy muy seguro de si el guión (ver más abajo) que escribí le dará una posible dirección a dónde quiere ir.
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 );