恐怕由于我的英语不好,我无法在这个词条中很好地解释用户的要求。
如果您没有很好地理解该用户的要求,我想尝试通过其他方式再次解释。
是什么激发了这个愿望清单请求?
这是 JMP Japan 的工程师 Masakazu Okada-san 提出的建议。 他在回答一个关于如何为不同的组变量设置多个LCL、UCL和中心线的问题时发现了这个建议。 这可以通过 JSL 代码来完成,但它很乏味。
用户是印制板制造公司FICT。
请描述您希望看到的新的或改进的功能或解决方案。
在目前的Process Screening平台中,可以指定Grouping列,通过Limits数据表设置不同的Targets、LSLs、USLs、center lines和sigmas。
Okada-san 建议我们也为控制图生成器和过程能力平台提供相同的功能。
如果提供此新功能,对您和/或其他用户有何价值?
目前,用户在使用 JSL 进行一些数据操作后执行此操作。 这很乏味。
这是外部客户的要求吗?
是的,用户是 FICT。 他们的 SE 是 JMP Japan 的 Masakazu OKada-san。
有没有我们应该注意的具有此功能或解决方案的竞争软件包?
不知道其他软件能不能做到。
这是否会影响客户的续订、扩展或采用,如果我们不解决这个问题,是否会使客户面临风险?
不会。但是冈田正和先生相信这项新功能也可以帮助其他用户。
细节
下面举例说明如何在Process Screening platfrom中为不同的组设置不同的限值。
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()),
<
质量与工艺工程回复:控制图生成器和过程能力平台的分组功能 - 状态更改为:已确认回复:控制图生成器和过程能力平台的分组功能 - 状态更改为:正在调查回复:控制图生成器和过程能力平台的分组功能 - 状态更改为:是的,敬请期待!CCB 中已提供此功能,19 版已添加流程能力。请参阅https://jmpdiscovery.atlassian.net/browse/JMP-4341和https://jmpdiscovery.atlassian.net/browse/JMP-22646
@mia_stephens -san,我从 Resonac 的一位工程师那里得到了同样的请求。他们的要求稍微复杂一些。他们想要切换具有不同规格限制的组(通过本地数据过滤器)和 Y 变量(通过列切换器)。我已经回答他们说,通过编写脚本(如附件中的脚本)可以做到这一点。但我觉得即使在 JMP18 的 CCB 中也可以更轻松地做到这一点。你能告诉我如何在 JMP18 或 JMP19 的 CCB 中设置组变量的规格限制吗?我找不到方法。
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>