cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Try the Materials Informatics Toolkit, which is designed to easily handle SMILES data. This and other helpful add-ins are available in the JMP® Marketplace
Choose Language Hide Translation Bar
RA899
Level III

Creating Spec limits

Hi, 

I'm trying to create spec limits using jmp interface or jsl. I'm trying to create the spec limit for different columns with no USL or LSL.. Please help. thank.

1 ACCEPTED SOLUTION

Accepted Solutions
txnelson
Super User

Re: Creating Spec limits

Spec Limits are not normally calculated limits.  They are set based on the design specifications or on the tool limitations, etc.

 

However, here is a simple script that will set the spec limits for all continuous columns in a data table using 3 sigma limits

Names Default To Here( 1 );
dt = Current Data Table();

colNames = dt << get column names( string, continuous );

For Each( {col}, colNames,
	theMean = Col Mean( As Column( dt, col ) );
	theSTD = Col Std Dev( As Column( dt, col ) );
	Eval(
		Substitute(
				Expr(
					Column( dt, col ) << set property(
						"Spec Limits",
						{LSL( _LSL_ ), Target( _Target_ ), USL( _USL_ ), Show Limits( 1 )}
					)
				),
			Expr( _LSL_ ), theMean - 3 * theSTD,
			Expr( _Target_ ), theMean,
			Expr( _USL_ ), theMean + 3 * theSTD
		)
	);
);
Jim

View solution in original post

6 REPLIES 6
txnelson
Super User

Re: Creating Spec limits

Have you looking into the Limits Manager?

     Analyze=>Quality and Process=>Limits Manager

Jim
RA899
Level III

Re: Creating Spec limits

Hi Jim, 

I have looked at it, but from what I see this tool is to accept limit and apply it to column. What I'm trying to do is to make just calculate a USL or LSL based on a sigma, and a mean that I provide. Or if there is a tool where I specific what I want the sigma to be for that column and then JMP generates the spec limits. Have you been across something like this ? thanks Jim.

txnelson
Super User

Re: Creating Spec limits

Spec Limits are not normally calculated limits.  They are set based on the design specifications or on the tool limitations, etc.

 

However, here is a simple script that will set the spec limits for all continuous columns in a data table using 3 sigma limits

Names Default To Here( 1 );
dt = Current Data Table();

colNames = dt << get column names( string, continuous );

For Each( {col}, colNames,
	theMean = Col Mean( As Column( dt, col ) );
	theSTD = Col Std Dev( As Column( dt, col ) );
	Eval(
		Substitute(
				Expr(
					Column( dt, col ) << set property(
						"Spec Limits",
						{LSL( _LSL_ ), Target( _Target_ ), USL( _USL_ ), Show Limits( 1 )}
					)
				),
			Expr( _LSL_ ), theMean - 3 * theSTD,
			Expr( _Target_ ), theMean,
			Expr( _USL_ ), theMean + 3 * theSTD
		)
	);
);
Jim
qli107966
Level I

Re: Creating Spec limits

is it possible to setup different spec limit for different step w/o splitting all steps into each column? 

 

txnelson
Super User

Re: Creating Spec limits

Currently, only one set of spec limits are allowed per column.

However, using JSL, multiple spec limits can be woven into a script that can loop through a data table pulling out each subgroup one at a time, applying the spec limits for the subset and then running the analysis.  Here is a simple example.

txnelson_0-1732433416635.png

Names Default To Here( 1 );
dt = 
// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
Open( "$SAMPLE_DATA/Big Class.jmp" );

dtLimits = New Table( "Limits",
	New Column( "Group", character, values( {"F", "M"} ) ),
	New Column( "USL", values( {66, 70} ) ),
	New Column( "Target", values( {61, 64} ) ),
	New Column( "LSL", values( {52, 51} ) )
);

groups = Associative Array( dt:sex ) << get keys;

nw = New Window( "Distributions", hlb = H List Box() );

For Each( {level}, groups,
	dt << select where( :sex == level );
	dtSub = dt << subset( selected columns( 0 ), selecte rows( 1 ), output table( level ), invisible );
	theRow = (dtLimits << get rows where( :group == level ))[1];
	Eval(
		Eval Expr(
			dtSub:height << set property(
				"spec limits",
				{LSL( Expr( dtLimits:LSL[theRow] ) ), USL( Expr( dtLimits:USL[theRow] ) ),
				Target( Expr( dtLimits:Target[theRow] ) ), Show Limits( 1 )}
			)
		)
	);
	hlb << append(
		dis = dtSub << Distribution( Continuous Distribution( Column( :height ), Process Capability( 0 ) ) );
		Report( dis )[Outline Box( 2 )] << set title( "Height=" || level )
		;
	);	
);
Jim
ElenorLedner
Level I

Re: Creating Spec limits

Certainly! To create spec limits in JMP using JSL, open your data table, choose the desired column, and use the Distribution platform with the Spec Limits option to set your limits.