JSL per specificare il numero variabile di livelli di fase in un diagramma di controlloCiao. Sto scrivendo uno script per automatizzare la creazione di grafici di controllo basati su una configurazione che sto leggendo per ogni grafico da creare. Di seguito è riportato un codice snipet per la creazione di un diagramma di controllo. Questo grafico contiene due diverse fasi in cui viene utilizzato il comando Livello di fase per specificare il Sigma e l'Avg all'interno delle fasi.
chart = Control Chart(
Sample Label ( Column(dt, chartConfig["XParamName"]) ),
Phase( Column(dt, chartConfig["PhaseColumn"]) ),
Group Size( 1 ),
Chart Col(
column(dt,chartConfig["YParamName"]),
Individual Measurement(
Phase Level( "1", Sigma(p1_CL_Range/3), Avg(p1_Mean_calc)),
Phase Level( "2", Sigma(p2_CL_Range/3), Avg(p2_Mean_calc))
)
)
);Mi piacerebbe essere in grado di farlo per un numero qualsiasi di fasi, dove vorrei che le fasi fossero specificate nelle mie informazioni di configurazione e ciclicamente attraverso di esse. Ma non so come fare una chiamata a Phase Level () come quella. Immagino ci siano forse tre opzioni:
- creare l'oggetto del grafico di controllo senza le informazioni sul livello di fase e quindi inviare un messaggio (o Invia a report - Dispatch) all'oggetto del grafico di controllo che aggiungerà i livelli di fase in un ciclo for e quindi richiamerà il grafico << Redo Analysis (),
- avere una funzione con un loop incorporato all'interno del Control Chart (Chart Col (Individiaul Measurement ())), ma non so come farlo o se è possibile, o
- avere il ciclo for prima del comando Control Chart () e salvare i comandi Phase Level () in una variabile di lista e quindi usare in qualche modo quell'elenco all'interno del comando Control Chart ().
Ri: JSL per specificare il numero variabile di livelli di fase in un diagramma di controlloGrazie per questo suggerimento, @txnelson . Questo ha fatto il lavoro per me.
Ri: JSL per specificare il numero variabile di livelli di fase in un diagramma di controlloMolte volte, il modo in cui gestisco queste cose, è di usare JSL per creare tutto il codice che deve essere usato, in una variabile a stringa lunga, e poi una volta fatto, eseguire quel codice.
L'esempio seguente è un esempio non testato di tale
Phases = 3;
theExpr =
"chart = Control Chart(
Sample Label( Column( dt, chartConfig[\!"XParamName\!"] ) ),
Phase( Column( dt, chartConfig[\!"PhaseColumn\!"] ) ),
Group Size( 1 ),
Chart Col(
Column( dt, chartConfig[\!"YParamName\!"] ),
Individual Measurement(";
For( i = 1, i <= Phases, i++,
theExpr = theExpr || "Phase Level( \!"" || Char( i ) || "\!",
Sigma( p" || Char( i ) || "_CL_Range / 3 ), Avg( p" || Char( i ) ||
"_Mean_calc ) ),"
);
theExpr = theExpr || ")));";
Eval( Parse( theExpr ) );