Hi All,
I have a customer that has just moved from v15-v18. They use the programme with pre-written scripts to generate control charts/capability analysis and have ~100 scripts for different tasks, but all using 'Legacy Control Charts'. They want to see if there is an easy way of changing these scripts to work with Control Chart Builder without having to reassemble each one individually.
For context, here's a message from the customer:
- How are you using these scripts? Is there a template data table that you put data into then 'play' the script from? I'm just wondering if there's a central 'template' that can be changed to make things easier (rather than having each user individually change the scripts). à For each product we have a specific JMP file where we record all the data regarding its Quality Control. Depending on the product, the number of parameters tabulated may vary and we prepare scripts for each one of them. We do not have a central template; we work with individual files by products and scripts for each parameter of each product. As you can imagine, there are a lot of different files.
- How many different types of charts are you using? In this example it's an IMR of the House Standards at 1/2, 1/4, 1/8 etc. - is there different charts? For example, for the product of the code sent, we have one JMP file with 5 different scripts and in each one of them we try to group “same type” of parameter. For example, in the Reactivity Script we group the same reactivity results at different dilutions, then we have another Script of Controls and in this we group all the lots of controls, each one with individual graphs.
- How many scripts do you think need changing? We could have more than 180 different products, each one with the individual JMP file, and in each JMP file different scripts that vary depending on the parameters to be evaluated. We do not have an exact estimation of Scripts to be changing but it is a huge job to change each file and even to remake them according to the new configuration.
I have an example of one of their scripts below - any advice would be muchly appreciated!
//I and MR Charts with Sample Labels
Control Chart(
Sample Label( :Lote Semielaborado Rg Lx ),
Group Size( 1 ),
KSigma( 3 ),
Chart Col(
:"House Standard 1/1"n,
Individual Measurement( Shade Zones( 1 ), Test 1( 1 ), Test 3( 1 ) ),
Moving Range,
Capability(
Distribution(
Continuous Distribution(
Column( :"House Standard 1/1"n ),
Quantiles( 0 ),
Summary Statistics( 0 ),
Outlier Box Plot( 0 ),
Capability Analysis( LSL( 1 ), USL( 4 ) ),
Normal Quantile Plot( 1 )
)
)
)
),
Chart Col(
:"House Standard 1/2"n,
Individual Measurement( Shade Zones( 1 ), Test 1( 1 ), Test 3( 1 ) ),
Moving Range,
Capability(
Distribution(
Continuous Distribution(
Column( :"House Standard 1/2"n ),
Quantiles( 0 ),
Summary Statistics( 0 ),
Outlier Box Plot( 0 ),
Capability Analysis(
LSL( 1 ),
USL( 4 ),
Sigma( 0.827145130419285 ),
Shewhart
),
Normal Quantile Plot( 1 ),
Process Capability( Use Column Property Specs )
)
)
)
),
Chart Col(
:"House Standard 1/4"n,
Individual Measurement( Shade Zones( 1 ), Test 1( 1 ), Test 3( 1 ) ),
Moving Range,
Capability(
Distribution(
Continuous Distribution(
Column( :"House Standard 1/4"n ),
Quantiles( 0 ),
Summary Statistics( 0 ),
Outlier Box Plot( 0 ),
Capability Analysis(
LSL( 1 ),
USL( 4 ),
Sigma( 0.487424808997079 ),
Shewhart
),
Normal Quantile Plot( 1 ),
Process Capability( Use Column Property Specs )
)
)
)
),
Chart Col(
:" House Standard 1/8"n,
Individual Measurement( Shade Zones( 1 ), Test 1( 1 ), Test 3( 1 ) ),
Moving Range,
Capability(
Distribution(
Continuous Distribution(
Column( :" House Standard 1/8"n ),
Quantiles( 0 ),
Summary Statistics( 0 ),
Outlier Box Plot( 0 ),
Capability Analysis(
LSL( 1 ),
USL( 4 ),
Sigma( 0.295408975149745 ),
Shewhart
),
Normal Quantile Plot( 1 ),
Process Capability( Use Column Property Specs )
)
)
)
),
Chart Col(
:"House Standard 1/16"n,
Individual Measurement( Shade Zones( 1 ), Test 1( 1 ), Test 3( 1 ) ),
Moving Range,
Capability(
Distribution(
Continuous Distribution(
Column( :"House Standard 1/16"n ),
Quantiles( 0 ),
Summary Statistics( 0 ),
Outlier Box Plot( 0 ),
Capability Analysis(
LSL( 0 ),
USL( 4 ),
Sigma( 0.812374681661797 ),
Shewhart
),
Normal Quantile Plot( 1 ),
Process Capability( Use Column Property Specs )
)
)
)
),
Chart Col(
:"House Standard 1/32"n,
Individual Measurement( Shade Zones( 1 ), Test 1( 1 ), Test 3( 1 ) ),
Moving Range,
Capability(
Distribution(
Continuous Distribution(
Column( :"House Standard 1/32"n ),
Quantiles( 0 ),
Summary Statistics( 0 ),
Outlier Box Plot( 0 ),
Capability Analysis( LSL( 0 ), USL( 4 ) ),
Normal Quantile Plot( 1 )
)
)
)
),
Chart Col(
:"House Standard 1/64"n,
Individual Measurement( Shade Zones( 1 ), Test 1( 1 ), Test 3( 1 ) ),
Moving Range,
Capability(
Distribution(
Continuous Distribution(
Column( :"House Standard 1/64"n ),
Quantiles( 0 ),
Summary Statistics( 0 ),
Outlier Box Plot( 0 ),
Capability Analysis( Target( 0 ) ),
Normal Quantile Plot( 1 )
)
)
)
),
//Send Results to Report
SendToReport(
Dispatch( {"Individual Measurement of HS 1/1 SPEC P"}, "IR Chart of IM",
FrameBox,
{Frame Size( 657, 208 )}
),
Dispatch( {"Individual Measurement of HS 1/1 SPEC P"},
"Control Chart Limits frame", FrameBox,
{Frame Size( 64, 208 )}
),
Dispatch( {}, "Moving Range of HS 1/1 SPEC P", OutlineBox, {Close( 1 )} ),
Dispatch( {"Moving Range of HS 1/1 SPEC P"}, "IR Chart of MR", FrameBox,
{Frame Size( 657, 208 )}
),
Dispatch( {"Individual Measurement of HS 1/2 SPEC P"}, "IR Chart of IM",
FrameBox,
{Frame Size( 657, 208 )}
),
Dispatch( {}, "Moving Range of HS 1/2 SPEC P", OutlineBox,
{Close( 1 )}
),
Dispatch( {"Moving Range of HS 1/2 SPEC P"}, "IR Chart of MR", FrameBox,
{Frame Size( 657, 208 )}
),
Dispatch( {"Individual Measurement of HS 1/4 SPEC P"}, "IR Chart of IM",
FrameBox,
{Frame Size( 657, 208 )}
),
Dispatch( {}, "Moving Range of HS 1/4 SPEC P", OutlineBox,
{Close( 1 )}
),
Dispatch( {"Moving Range of HS 1/4 SPEC P"}, "IR Chart of MR", FrameBox,
{Frame Size( 657, 208 )}
),
Dispatch( {"Individual Measurement of HS 1/8 SPEC P"}, "IR Chart of IM",
FrameBox,
{Frame Size( 657, 208 )}
),
Dispatch( {}, "Moving Range of HS 1/8 SPEC P", OutlineBox, {Close( 1 )} ),
Dispatch( {"Moving Range of HS 1/8 SPEC P"}, "IR Chart of MR", FrameBox,
{Frame Size( 657, 208 )}
),
Dispatch( {"Individual Measurement of HS 1/16 SPEC P/N"},
"IR Chart of IM", FrameBox,
{Frame Size( 657, 208 )}
),
Dispatch( {}, "Moving Range of HS 1/16 SPEC P/N", OutlineBox,
{Close( 1 )}
),
Dispatch( {"Moving Range of HS 1/16 SPEC P/N"}, "IR Chart of MR",
FrameBox,
{Frame Size( 657, 208 )}
),
Dispatch( {"Individual Measurement of HS 1/32 SPEC P/N"},
"IR Chart of IM", FrameBox,
{Frame Size( 657, 208 )}
),
Dispatch( {}, "Moving Range of HS 1/32 SPEC P/N", OutlineBox,
{Close( 1 )}
),
Dispatch( {"Moving Range of HS 1/32 SPEC P/N"}, "IR Chart of MR",
FrameBox,
{Frame Size( 657, 208 )}
),
Dispatch( {"Individual Measurement of HS 1/64 SPEC N"}, "IR Chart of IM",
FrameBox,
{Frame Size( 657, 208 )}
),
Dispatch( {}, "Moving Range of HS 1/64 SPEC N", OutlineBox, {Close( 1 )} ),
Dispatch( {"Moving Range of HS 1/64 SPEC N"}, "IR Chart of MR", FrameBox,
{Frame Size( 657, 208 )}
)
)
);
Thanks,
Ben