JSL automatise les colonnes utilisées dans Process CapabilityBonjour,
donc je veux écrire un script JSL qui peut exécuter Process Capability sur le clic d'un bouton sur une barre d'outils. J'ai tout codé sauf pour les variables de processus. voir le code ci-dessous. comment vais-je pouvoir ajouter dynamiquement les colonnes dans "process variables()"
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 automatise les colonnes utilisées dans Process Capabilityfonctionne très bien! j'ai ajouté pcVar = Eval(.... au script et je peux envoyer des commandes à la fenêtre afin pcVar << Goal Plot(0); pour une personnalisation plus poussée. pour les personnes qui verront cela à l'avenir !
pcVar =Eval(Parse("dt << Process Capability(
Variables de processus( "|| LesVars|| ") ),
);"));
pcVar <Re : JSL automatise les colonnes utilisées dans Process CapabilityEssaye ça
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 automatise les colonnes utilisées dans Process Capabilityc'est un bon début mais il n'accepte que la 1ère colonne. J'ai créé une table de données factice (colonne1, colonne2, colonne3) et modifié l'apparence de la chaîne pour qu'elle corresponde au script que j'ai enregistré de l'analyse sur les données factices et elle n'accepte toujours que la première colonne. J'essaierai différentes méthodes et si je trouve quelque chose, je ferai un rapport !
Re : JSL automatise les colonnes utilisées dans Process CapabilityJe ne suis pas tout à fait sûr si le script (voir ci-dessous) que j'ai écrit vous donnera une direction possible dans laquelle vous voulez aller.
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 );