设置 K sigma 宏的规格限制我经常使用“Distribution”平台和“Set Spec Limits for KSigma”来获取非正态数据的建议规格限制。工作流程是分布 -> 分配分布 -> 分布输出中的过程能力 -> 设置 K Sigma 的规格限制。当您有很多列时,这可能会成为一个漫长的过程。
理想情况下,我能够分配正确的分布,然后有一个宏可以循环遍历每一列并生成“设置限制...”输出。我看到有一个用于此功能的示例脚本,但它具有硬编码的分布,并且似乎仅将其应用于所有列。
看来我的第一个障碍(这似乎很愚蠢)是尝试从分发平台中获取指定的分发,以便我可以替换它的硬编码(本例中为 LogNormal):
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
obj = Distribution( Column( :CO ) );
obj << Fit Distribution( LogNormal( Set Spec Limits for KSigma( 3 ) ) );
我正在考虑使用诸如 current report()["Distributions"]<< get scriptable object; 之类的东西
为了能够使用开放分布分析的代码,然后我必须弄清楚如何循环开放分布中的列。
我正在考虑的另一个选择是将分布分配为列属性,然后从中提取并运行一堆单独的分析,但我也没有看到走这条路的代码。
感谢您的任何想法!
史蒂夫
质量和工艺工程回复:设置 K sigma 宏的规格限制事实证明,问题的一部分是我自己造成的。我没有意识到 Handle[1] 是列表顺序中的第一个分布(正态分布、柯西分布、对数正态分布等),而不是 AIC 有序表中的第一个分布。因此,宏将运行,但我看不到任何内容,因为它已应用于正态分布并且被隐藏。 如果我将 Handle[1] 更改为 Handle["best"] 那么它可以与最佳选择的发行版一起使用。
最终代码就是这样(尽管我学到了很多东西!)再次感谢托尼娅的所有帮助!
Names Default To Here( 1 );
dt=Current Data Table();
pf=current report()["Distributions"]<< get scriptable object;
pf<<(Fit Handle["best"]<<PROCESS capability=""></PROCESS>
回复:设置 K sigma 宏的规格限制您正在将新装配工与传统装配工混合在一起。对于新装配工来说,代码需要完全不同。以下是新装配工的一些示例代码。
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
obj = dt<<DISTRIBUTION></DISTRIBUTION>
回复:设置 K sigma 宏的规格限制感谢您再看一下托尼娅。
我同意您提供的代码可以工作,但它看起来可以工作,因为您首先通过宏分配分布。如果我删除发行版并手动重新添加它们,然后尝试运行宏的最后两行,它将不起作用。
我发现有趣的是,拟合分布的名称为“拟合指数”与“拟合指数分布”,当我手动分配它时会显示出来。所以这让我思考......如果我使用传统的配合,我可以让它发挥作用!因此,如果我启用旧版拟合器,手动拟合分布,然后运行最后两行,它就可以完美运行。
那么也许需要对脚本进行修改才能使用 15 中出现的新拟合功能?
史蒂夫
回复:设置 K sigma 宏的规格限制如果我有超过 1 列的分布,该代码对我来说效果很好。
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
obj = Distribution(
Continuous Distribution(
Column( :CO ),
Fit Distribution(
Exponential
)
),
Continuous Distribution( Column( :POP ), Fit Distribution( Gamma) )
);
ex=current report()["Distributions"]<< get scriptable object;
ex<<(Fit Handle[1]<<( Set Spec Limits for KSigma( 3 ) ) );
回复:设置 K sigma 宏的规格限制如果我包含我的脚本可能会有所帮助:
Names Default To Here( 1 );
dt=Current Data Table();
ex=current report()["Distributions"]<< get scriptable object;
ex<<(Fit Handle[1]<<( Set Spec Limits for KSigma( 3 ) ) );
理想情况下,我将运行分发平台,为每列选择我的分发,然后运行此脚本来设置所有规格限制。
所以这有效,但前提是我在分布分析中有一栏。
史蒂夫
回复:设置 K sigma 宏的规格限制它对我来说适用于多个列。
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
obj = Distribution( Column( :CO, :POP ) );
obj << Fit Distribution( exponential ) ;
obj<<(Fit Handle[1]<<( Set Spec Limits for KSigma( 3 ) ) );
回复:设置 K sigma 宏的规格限制谢谢托尼娅!
这真的很好用。但是,只有当我在分布分析中有一列时,它似乎才起作用。当我的分析中有多个列时,是否需要更改某些内容才能使其正常工作?如果我有多个,它就不起作用;没有错误,但也没有任何反应。
示例库中的脚本将使用多个列运行(尽管它是硬编码的分发选择)。
史蒂夫
回复:设置 K sigma 宏的规格限制如果每个响应只有一个拟合,您可以使用以下内容:
obj<<(Fit Handle[1]<<( 设置 KSigma( 3 ) ) 的规格限制 );
回复:设置 K sigma 宏的规格限制“显示树结构”可以帮助您在报告中找到正确的位置。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
obj = Distribution( Column( :CO ) );
obj << Fit Distribution( LogNormal( Set Spec Limits for KSigma( 3 ) ) );
obj << show tree structure;