导入规格限制所以我有一个在数据表上运行过程能力的脚本。 我可以使用此解决方案自动运行它, https://community.jmp.com/t5/Discussions/JSL-automate-the-columns-used-in-Process-Capability/mp/39855 . 我现在也在尝试自动导入规格表。 现在用户自动拥有 2 张。 1 个带有数据,1 个带有规格信息。 我可以制作一个获取规格表信息并将其复制到列属性的解决方案,但我宁愿让它在代码中运行,以防用户想要将数据表与另一个规格文件一起使用。
我的代码到目前为止...
yyy = Eval( Parse("summ_table << 过程能力(
过程变量(“|| TheVars ||”),<
规格限制(导入规格限制(\!”“||规格||“\!”))<<不工作
);"
)
);
spec 保存开放的规格表名称。我可以轻松地以这两种格式获得它。
“specTable1.jmp”
“数据表(“specTable1.jmp”)”
我从这个博客得到了规范限制代码—— https://community.jmp.com/t5/JMPer-Cable/3-ways-to-load-your-specification-limits-into-Process-Capability/ba-p/34189
回复:导入规格限制从极限表向数据表写入极限加载项是一种选择
回复:导入规格限制谢谢你,jthi。用你修改过的脚本效果很好~
是否有任何脚本可以加载限制文件并将所有限制直接保存到列属性?
回复:导入规格限制这是相当旧的脚本(和帖子),并且取决于您最终要做什么来定义如何修改它(或者您应该完全使用其他脚本或可能使用提供的加载项)。
使用加载项,您必须将变量列建模类型从非结构化文本更改为标称


下面是一个相当快速的修改,如果您的脚本有 JMP16+,它应该可以工作(对第 24 和 26 行进行的修改):
Names Default To Here( 1 );
// Select the data table and open it
path = Pick File( "Select Data Table" );
dt = Open( path );
// Select the limits table and open it
path = Pick File( "Select Limits Table" );
dt2 = Open( path );
// Point to the data table as the main table
Current Data Table( dt );
// Open a new window to select the process variables
nw = New Window( "Select Process Variables",
Text Box( "Selection Columns" ),
H List Box(
datacolbox = Col List Box( all ),
Button Box( "Process Variables", pList << append( datacolbox << get selected ) ),
pList = List Box( {} )
),
Button Box( "OK",
thelist = plist << get items;
pvars = ":\!"" || thelist[1] ||"\!"n";
For( i = 2, i <= N Items( thelist ), i++,
pvars = pvars || ", :\!"" || thelist[i] ||"\!"n";
);
Eval(
Parse(
"obj = dt << Process Capability(
Process Variables(" || pvars || " ),
Spec Limits( Import Spec Limits( dt2 ) )
);"
)
);
nw << close window;
)
);回复:导入规格限制嗨特克斯尼尔森,
我尝试使用您的脚本来运行导入我的限制文件但出现错误。 (附上我的极限规格文件)
它看起来很长变量名或字符'/'问题,你能帮忙吗? 谢谢。

问候,智利
回复:导入规格限制因此,这完全是从脚本索引中复制和粘贴的。 恕我直言,这是从一个表加载规格并将它们保存到另一个表的列属性中的最简单方法。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
obj = Capability(Y( :OZONE, :CO, :SO2, :NO ), Spec Limits(Import Spec Limits("$SAMPLE_DATA/CitySpecLimits.jmp")));
obj << Save Spec Limits as Column Properties;<STRIKE></STRIKE><BR />
...尽管如此,我不得不说 Jim Nelson 的插件非常漂亮并且具有一些非常方便的通用功能。
回复:导入规格限制无论您是否可以打开示例数据表,我都可以将我包含的代码剪切并粘贴到您的 JMP 会话中,并且知道它可以工作。 因此,如果您使用自己的数据表和限制表,而代码不适合您,那么您需要查看您的数据以查找问题。
回复:导入规格限制我认为这是我的电脑的问题。 您的脚本看起来应该可以在您的电脑上运行。我下载了您的示例表,但在我的机器上却出现错误/警报。 看起来您的解决方案有效,但正在发生其他事情。 我想我需要先修复 I/O,然后才能实施您的解决方案。

回复:导入规格限制JSL 能够执行几乎任何您需要完成的操作,因此针对您的问题,是的,您可以选择数据表,然后选择限制表,然后运行过程能力。 这是一个非常简单的脚本,可以做到这一点。 我已经使用随附的数据和限制表对其进行了测试。 该代码肯定不是防弹的。 但它应该告诉你如何进行。
Names Default To Here( 1 );
// Select the data table and open it
path = Pick File( "Select Data Table" );
dt = Open( path );
// Select the limits table and open it
path = Pick File( "Select Limits Table" );
dt2 = Open( path );
// Point to the data table as the main table
Current Data Table( dt );
// Open a new window to select the process variables
nw = New Window( "Select Process Variables",
Text Box( "Selection Columns" ),
H List Box(
datacolbox = Col List Box( all ),
Button Box( "Process Variables", pList << append( datacolbox << get selected ) ),
pList = List Box( {} )
),
Button Box( "OK",
thelist = plist << get items;
pvars = ":" || thelist[1];
For( i = 2, i <= N Items( thelist ), i++,
pvars = pvars || ",:" || thelist[i]
);
Eval(
Parse(
"obj = dt << Process Capability(
Process Variables(" || pvars || " ),
Spec Limits( Import Spec Limits( dt2 ) )
);"
)
);
nw << close window;
)
);回复:导入规格限制我查看了该插件的代码,对我来说它似乎做了一些我已经做过的事情。基本上它编辑表中的列以具有限制特征。
我想知道是否可以使用 JSL 基本上向用户询问包含数据的工作表和包含限制/规格的工作表。 用户输入这 2 个后,脚本将自动运行,并使用数据在工作表上运行能力分析。所以基本上可以使用 JSL 在能力分析中运行规格表。 我想知道这条线是否可能像原始帖子中链接的第二篇文章中所描述的那样。
Spec Limits(Import Spec Limits(\!" specLimits.jmp\!"))
它似乎不起作用。 我应该尝试像这样格式化吗?并有一个包含所有限制/规格信息的长字符串?
Spec Limits(
c1( LSL( -1.4 ), Target( . ), USL( . ) ),
c2 2( LSL( -1.4 ), Target( . ), USL( . ) ),
Name( "c3" )(LSL( 12 ), Target( . ), USL( 144 )),
c4( LSL( . ), Target( . ), USL( -18 ) )
),
回复:导入规格限制有一个 JMP 插件可以从一个包含规格限的附加数据表中填充规格限。
从极限表向数据表写入极限
如果它不完全符合您的要求,您可以随时提取 JSL 并对其进行修改以满足您的需求