Hola,
Estoy intentando crear una tabla que contenga las líneas de referencia para cada modelo. Cada línea de referencia es la expectativa de rendimiento para cada modelo. Tengo la intención de tener un script que pueda importar las líneas de referencia de la tabla central y trazar la línea de referencia en los gráficos de control o los gráficos de variabilidad al realizar tendencias de rendimiento de cada modelo.
Aquí están mis datos ficticios para la tabla de rendimiento.
| Modelo | ID de oblea | Producir |
| IC1 | A | 50 |
| IC1 | B | 60 |
| IC1 | C | 70 |
| IC2 | mi | 30 |
| IC2 | F | 40 |
| IC2 | GRAMO | 50 |
| IC2 | h | 60 |
| IC3 | R | 80 |
| IC3 | S | 90 |
| IC3 | t | 70 |
| IC3 | z | sesenta y cinco |
Aquí está mi tabla de líneas de referencia ficticias que debo importar a los gráficos de control.
| Modelo | Línea de referencia para la expectativa de rendimiento |
| IC1 | 50 |
| IC2 | 45 |
| IC3 | 70 |
El gráfico de control o el gráfico de variabilidad que estoy intentando trazar tiene "Rendimiento" en el eje y y "ID de oblea" en el eje x. Por lo tanto, no puedo utilizar la función "propiedad de columna" en la columna "Rendimiento" para establecer las líneas de referencia. Tengo más de 60 circuitos integrados para revisar y busco ayuda para automatizarlos en lugar de ingresarlos manualmente. Aquí hay una instantánea de muestra de lo que estoy tratando de lograr. Cualquier ayuda sería muy apreciada.

Tomé una ruta diferente. Dividí la columna Rendimiento por modelo para crear una columna separada por modelo. Luego, usando Propiedades de columna > Límites de especificación > Objetivo, ingresó los valores esperados (que son esencialmente objetivos, ¿no?). Ver archivo adjunto.
La traducción de JSL a los diferentes idiomas que admite JMP es perfectamente posible, pero requiere un esfuerzo adicional. Para obtener algunos detalles sobre cómo se puede hacer esto, consulte la documento de descubrimiento por @hecht_jmp . Por ejemplo, si está trabajando con nodos de esquema (como en el código anterior) y hace referencia a ellos por su nombre, es casi seguro que esto fallará. Por otro lado, la referencia por número (como en el código anterior) puede fallar si la estructura del informe cambia (por ejemplo, si el contenido del informe se enriquece entre versiones).
Probablemente sea mejor enviar un correo electrónico a support@jmp.com y señalarles este hilo.
Probé este JSL en mi JMP11 chino. Obtenga el siguiente informe en el registro. Todavía no puedo dibujar una línea de referencia. ¿Puedes explicarme?
GMán
Muchas gracias Ian. Esto funciona muy bien.
El siguiente código producirá:

y debería ayudarte a empezar. Puede utilizar 'Ayuda > Libros > Guía de secuencias de comandos' y 'Ayuda > Índice de secuencias de comandos' para descubrir qué está haciendo. Tenga en cuenta que el uso de los títulos de los nodos de esquema no es muy sólido actualmente, pero esto podría mejorarse o hacerse de manera diferente.
NamesDefaultToHere(1);
// Yield table
dt1 =
New Table( "Yield",
Add Rows( 11 ),
New Column( "Model",
Character,
"Nominal",
Set Values(
{"IC1", "IC1", "IC1", "IC2", "IC2", "IC2", "IC2", "IC3", "IC3", "IC3",
"IC3"}
)
),
New Column( "WaferID",
Character( 16 ),
"Nominal",
Set Values( {"A", "B", "C", "E", "F", "G", "H", "R", "S", "T", "Z"} )
),
New Column( "Yield",
Numeric,
"Nominal",
Format( "Best", 12 ),
Set Values( [50, 60, 70, 30, 40, 50, 60, 80, 90, 70, 65] )
)
);
// Reference table
dt2 =
New Table( "Reference",
Add Rows( 3 ),
New Column( "Model", Character, "Nominal", Set Values( {"IC1", "IC2", "IC3"} ) ),
New Column( "Value",
Numeric,
"Nominal",
Format( "Best", 12 ),
Set Values( [50, 40, 70] )
)
);
// Start here . . .
// Get the values in dt2 into lists for later
modelVal = Column(dt2, "Model") << getValues;
refVal = Column(dt2, "Value") << getValues;
// Control Charts
cc = dt1 << Control Chart(
Sample Label( :WaferID ),
Chart Col( :Yield, Individual Measurement ),
By( :Model )
);
// Loop over the control chart reports
for(r=1, r<=NItems(cc), r++,
ccRep = Report(cc[r]);
// Extract the level of 'Model' from the title of the outline node
title = ccRep[OutlineBox(1)] << getTitle;
delimPos = Munger(title, 1, "=");
level = Substr(title, delimPos+1, Length(title)-delimPos);
// Get the reference value and plot it using a graphics script
ref = refVal[Loc(modelVal, level)];
Eval(
Substitute(
Expr(ccRep[FrameBox(1)] << addGraphicsScript(PenColor("Blue"); HLine(TBD))),
Expr(TBD),
ref[1]
);
);
);