Importación de límites de especificacionesAsí que tengo un script que ejecuta Process Capability en una tabla de datos. Puedo ejecutarlo automáticamente usando esta solución, https://community.jmp.com/t5/Discussions/JSL-automatice-the-columns-used-in-Process-Capability/mp/39855 . Ahora también estoy tratando de importar la hoja de especificaciones automáticamente. En este momento, los usuarios tienen automáticamente 2 hojas. 1 con datos y 1 con la información de especificaciones. Puedo crear una solución que tome la información de la hoja de especificaciones y la copie en las propiedades de la columna, pero prefiero que se ejecute en el código en caso de que los usuarios quieran usar la hoja de datos con otro archivo de especificaciones.
mi codigo hasta ahora...
yyy = Eval( Parse("summ_table << Capacidad de proceso(
Variables de proceso( " || TheVars || "), <
Límites de especificaciones (Límites de especificaciones de importación (\!"" || Especificaciones ||"\!")) <
);"
)
);
spec contiene el nombre de las tablas de especificaciones abiertas. Puedo conseguirlo fácilmente en estos 2 formatos.
"specTable1.jmp"
"DataTable("specTable1.jmp")"
obtuve el código de límites de especificaciones de este blog -- https://community.jmp.com/t5/JMPer-Cable/3-ways-to-load-your-specification-limits-into-Process-Capability/ba-p/34189
Re: Importación de límites de especificacionesEscribir límites en una tabla de datos desde una tabla de límites complemento es una opción
Re: Importación de límites de especificacionesGracias, jti.Funciona bien con su script modificado ~
¿Hay alguna secuencia de comandos para cargar el archivo de límite y guardar directamente todo el límite en las propiedades de la columna?
Re: Importación de límites de especificacionesEsta es una secuencia de comandos bastante antigua (y una publicación) y, según lo que intente hacer al final, define cómo modificarla (o tal vez debería usar otra secuencia de comandos por completo o posiblemente el complemento provisto).
Con el complemento, deberá cambiar el tipo de modelado de columnas variables de Texto no estructurado a Nominal


A continuación se muestra una modificación bastante rápida que debería funcionar si tiene JMP16+ para el script (modificaciones realizadas en las líneas 24 y 26):
Names Default To Here( 1 );
// Select the data table and open it
path = Pick File( "Select Data Table" );
dt = Open( path );
// Select the limits table and open it
path = Pick File( "Select Limits Table" );
dt2 = Open( path );
// Point to the data table as the main table
Current Data Table( dt );
// Open a new window to select the process variables
nw = New Window( "Select Process Variables",
Text Box( "Selection Columns" ),
H List Box(
datacolbox = Col List Box( all ),
Button Box( "Process Variables", pList << append( datacolbox << get selected ) ),
pList = List Box( {} )
),
Button Box( "OK",
thelist = plist << get items;
pvars = ":\!"" || thelist[1] ||"\!"n";
For( i = 2, i <= N Items( thelist ), i++,
pvars = pvars || ", :\!"" || thelist[i] ||"\!"n";
);
Eval(
Parse(
"obj = dt << Process Capability(
Process Variables(" || pvars || " ),
Spec Limits( Import Spec Limits( dt2 ) )
);"
)
);
nw << close window;
)
);Re: Importación de límites de especificacionesHola Txnelson,
Intento usar su secuencia de comandos para ejecutar la importación de mi archivo de límite, pero se produce un error. (adjunte mi archivo de especificaciones de límite)
parece un problema de nombre de variable largo o carácter '/', ¿podría ayudar? Gracias.

Saludos, Chily
Re: Importación de límites de especificacionesPor lo tanto, esto se copia y pega literalmente del índice de secuencias de comandos. En mi humilde opinión, es la forma más sencilla de cargar especificaciones de una tabla y guardarlas en las propiedades de la columna de otra tabla.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
obj = Capability(Y( :OZONE, :CO, :SO2, :NO ), Spec Limits(Import Spec Limits("$SAMPLE_DATA/CitySpecLimits.jmp")));
obj << Save Spec Limits as Column Properties;<STRIKE></STRIKE><BR />
...aunque tengo que decir que el complemento de Jim Nelson es bastante ingenioso y tiene una funcionalidad generalizada muy conveniente.
Re: Importación de límites de especificacionesIndependientemente de si puede abrir las tablas de datos de muestra o no, el código que incluí se puede cortar y pegar en su sesión de JMP, sabiendo que funciona. Entonces, si toma su propia tabla de datos y tabla de límites, y el código no funciona para usted, entonces debe buscar en sus datos el problema.
Re: Importación de límites de especificacionesCreo que es mi pc que es el problema. Su secuencia de comandos parece que debería funcionar y funciona en su PC. Descargué sus tablas de muestra pero en mi máquina da un error/alerta. Parece que su solución funciona, pero algo más está sucediendo. Creo que primero necesito arreglar la E/S antes de poder implementar su solución.

Re: Importación de límites de especificacionesJSL es capaz de realizar casi cualquier cosa que necesite haber hecho, por lo que en respuesta a su pregunta, sí, puede seleccionar la tabla de datos y luego la tabla de límites y luego ejecutar la capacidad del proceso. Aquí hay un script muy simple que hace exactamente eso. Lo he probado con la tabla de datos y límites adjunta. El código definitivamente no es a prueba de balas. Pero debería mostrarle cómo proceder.
Names Default To Here( 1 );
// Select the data table and open it
path = Pick File( "Select Data Table" );
dt = Open( path );
// Select the limits table and open it
path = Pick File( "Select Limits Table" );
dt2 = Open( path );
// Point to the data table as the main table
Current Data Table( dt );
// Open a new window to select the process variables
nw = New Window( "Select Process Variables",
Text Box( "Selection Columns" ),
H List Box(
datacolbox = Col List Box( all ),
Button Box( "Process Variables", pList << append( datacolbox << get selected ) ),
pList = List Box( {} )
),
Button Box( "OK",
thelist = plist << get items;
pvars = ":" || thelist[1];
For( i = 2, i <= N Items( thelist ), i++,
pvars = pvars || ",:" || thelist[i]
);
Eval(
Parse(
"obj = dt << Process Capability(
Process Variables(" || pvars || " ),
Spec Limits( Import Spec Limits( dt2 ) )
);"
)
);
nw << close window;
)
);Re: Importación de límites de especificacionesMiré el código de ese complemento y me parece que hace algo que ya he hecho. básicamente edita las columnas de una tabla para que tengan las características de los límites.
Me pregunto si es posible usar JSL para básicamente pedirle al usuario una hoja con datos y una hoja con los límites/especificaciones. Después de que el usuario ingrese esos 2, el script se ejecutará automáticamente y ejecutará el análisis de capacidad en la hoja con los datos. así que básicamente es posible ejecutar una hoja de especificaciones en un análisis de capacidad usando JSL. Me pregunto si esta línea es posible como se describe en la segunda publicación vinculada en la publicación original.
Spec Limits(Import Spec Limits(\!" specLimits.jmp\!"))
Parece que no funciona. ¿Debería intentar formatearlo así? y tiene una cadena larga que contiene toda la información de límites/especificaciones?
Spec Limits(
c1( LSL( -1.4 ), Target( . ), USL( . ) ),
c2 2( LSL( -1.4 ), Target( . ), USL( . ) ),
Name( "c3" )(LSL( 12 ), Target( . ), USL( 144 )),
c4( LSL( . ), Target( . ), USL( -18 ) )
),
Re: Importación de límites de especificacionesHay un complemento JMP que completará los límites de especificación de una tabla de datos adicional que contiene los límites de especificación.
Escribir límites en una tabla de datos desde una tabla de límites
Si no hace exactamente lo que desea, siempre puede extraer el JSL y modificarlo para satisfacer sus necesidades.