Me temo que no puedo explicar bien la solicitud del usuario en esta entrada debido a mi pobre inglés.
Si no entiende bien la solicitud de este usuario, me gustaría intentar explicarlo nuevamente de otras maneras.
¿Qué inspiró esta solicitud de lista de deseos?
Esto es sugerido por Masakazu Okada-san, SE en JMP Japón. Encontró esta sugerencia cuando respondió una pregunta sobre cómo configurar varias líneas LCL, UCL y centrales para diferentes variables de grupo. Esto se puede hacer con códigos JSL, pero es tedioso.
El usuario es FICT, la empresa fabricante de tableros impresos.
Describa la función o solución nueva o mejorada que le gustaría ver.
En la plataforma de detección de procesos actual, puede especificar la columna de agrupación y establecer diferentes objetivos, LSL, USL, líneas centrales y sigmas mediante la tabla de datos de límites.
Okada-san sugiere que tengamos las mismas funciones también para Control Chart Builder y Process Capability Platform.
¿Cuál sería el valor para usted y/u otros usuarios si se proporciona esta nueva función?
Actualmente, el usuario lo hace después de algunas manipulaciones de datos con JSL. es tedioso
¿Es esta una solicitud de un cliente externo?
Sí, el usuario es FICT. SE para ellos es Masakazu OKada-san en JMP Japón.
¿Hay algún paquete de software de la competencia que tenga esta característica o solución que debamos conocer?
No sé si otro software puede hacerlo.
¿Esto afectará una renovación, expansión o adopción en un cliente, y pone esto en riesgo una cuenta si no abordamos esto?
No. Pero Masakazu Okada-san cree que esta nueva función también puede ayudar a otros usuarios.
Detalles
El siguiente es un ejemplo para mostrar cómo establecer diferentes límites para diferentes grupos en la plataforma de Process Screening.
New Table( "Spec Limits",
New Column( "Variable", Character, Values( {"X1", "X2", "X3", "X4", "X1", "X2", "X3", "X4"} )),
New Column( "LSL", Values( [-3, -3, -3, -3, -5, -5, -5, -5] ) ),
New Column( "USL", Values( [3, 3, 3, 3, 5, 5, 5, 5] )),
New Column( "Target", Values( [0, 0, 0, 0, 0, 0, 0, 0] )),
New Column( "Sigma", Values( [1, 1, 1, 1, 2, 2, 2, 2] )),
New Column( "Center", Values( [0, 0, 0, 0, 1, 1, 1, 1] )),
New Column( "Group", Values( [1, 1, 1, 1, 2, 2, 2, 2] ))
);
dt = As Table(J(1000,1, Random Integer(2))||J(1000, 4, Random Normal()),
<
Ingeniería de Calidad y ProcesosRe: Función de agrupación para el generador de gráficos de control y la plataforma de capacidad de proceso: el estado cambió a: ReconocidoRe: Función de agrupación para el generador de gráficos de control y la plataforma de capacidad de proceso: el estado cambió a: InvestigandoRe: Función de agrupación para el generador de gráficos de control y la plataforma de capacidad de proceso: estado cambiado a: Sí, ¡permanezca atento!Esta función ya está disponible en CCB y en la versión 19 se agregó para la capacidad de proceso. Consulte https://jmpdiscovery.atlassian.net/browse/JMP-4341 y https://jmpdiscovery.atlassian.net/browse/JMP-22646
@mia_stephens -san, recibí la misma solicitud de un ingeniero de Resonac. Su solicitud es un poco más complicada. Quieren cambiar grupos (por medio del filtro de datos local) y variables Y (por medio del conmutador de columnas) que tienen diferentes límites de especificación. Ya les respondí que es posible haciendo un script (como el adjunto). Pero creo que puede ser posible más fácilmente incluso en el CCB de JMP18. ¿Podrías decirme cómo podemos establecer límites de especificación para las variables de grupo en el CCB de JMP18 o JMP19? No puedo encontrar la manera.
Clear Symbols();
Clear Globals();
Names Default To Here(1);
// Random Data
n = 1000; //Total Sample Szie
nprod = 5; // Number of Products
ntest = 20; //Number of Testes (measuremnt instruments)
Random Reset(11111111); // Random Seed
// Make a sample data
prodid = Shape(Repeat((1::nprod)`,nprod,n/nprod),n,1);
dt input = As Table(prodid || (prodid* J(1,ntest,1) + J(n, ntest, Round(Random Normal(Random Integer(1,3),Random Integer(1,3)),3))));
dt input << Set Name("Data");
Column(dt input,1)<<SET name=""> List of Product Name */
Summarize(input data, product names = By(Column(product col name input)));
/* test names --> List of Sencor Name */
/* The below code assume that measurment data are saved after the 2nd column. */
/* You need to change if not so. */
test names = Remove(input data <<GET column="" names="">=2, Dialog(TextBox("There are more than one corresponding data in Spec Limit data."));
);
lsl = Column(dt spec, lsl colname)[row num];
target = Column(dt spec, target colname)[row num];
usl = Column(dt spec, usl colname)[row num];
Eval List({lsl[1], target[1], usl[1]})
);
append cont chart = Function({input data, prod var, prod name, yvar, lsl, target, usl},{Default Local},
Eval(Eval Expr(
ccb = V List Box( input data << Control Chart Builder(
invisible,
Where(:As Column(input data, prod var) == Expr(prod name)),
// Where(:Product == Expr(prod name)),
Show Excluded Region( 0 ),
Variables( Y( Column(input data, yvar) )),
Chart(
Position( 1 ),
Limits( Spec Limits( 1 ) ),
Add Spec Limits( {LSL( lsl ), USL( usl ), Target( target )} )
),
Sort by Subgroup( 1 ),
Show Control Panel( 0 )
))
));
ccb[Text Box(1)] << Visibility("Collapse");
vb << Append( ccb )
);
update control chart by list box = Expr(
sel prod = lb prod<<GET selected="">=1 & NItems(sel test)>=1,
{lsl, target, usl} = get spec values from spec data(dt spec, sel prod[1], sel test[1],
product col name spec, test col name spec, lsl col name,
target col name, usl colname);
);
append cont chart(input data, product col name input, sel prod[1], sel test[1], lsl, target, usl);
);
New Window("Control Chart and Capability Analysis",
hb = HList Box(
OutlineBox("Product",
lb prod = ListBox(product names, <<SET max="" selected=""></SET></GET></GET></SET>
<P> </P>