你好,
我正在尝试创建一个表来保存每个模型的参考线。 每条参考线都是每个模型的产量预期。 我打算有一个脚本,可以从中心表导入参考线,并在分析每个模型的收益率趋势时在控制图或变异性图表上绘制参考线。
这是我的产量表的虚拟数据
| 模型 | 晶圆ID | 屈服 |
| 集成电路1 | A | 50 |
| 集成电路1 | 乙 | 60 |
| 集成电路1 | C | 70 |
| 集成电路2 | 乙 | 30 |
| 集成电路2 | F | 40 |
| 集成电路2 | G | 50 |
| 集成电路2 | H | 60 |
| IC3 | 右 | 80 |
| IC3 | S | 90 |
| IC3 | 时间 | 70 |
| IC3 | Z | 65 |
这是我的虚拟参考线表,需要导入到控制图中
| 模型 | 收益率预期参考线 |
| 集成电路1 | 50 |
| 集成电路2 | 45 |
| IC3 | 70 |
我试图绘制的控制图或变异性图的 y 轴为“产量”,x 轴为“WaferID”。 因此我无法使用“产量”列中的“列属性”功能来设置参考线。 我有 60 多个 IC 需要查看,并且正在寻找一些可以自动输入而不是手动输入的帮助。 这是我想要实现的目标的示例快照。 任何帮助将不胜感激。

我走了一条不同的路。 我按模型拆分“产量”列,为每个模型创建一个单独的列。 然后使用“列属性”>“规格限值”>“目标”,输入预期值(本质上是目标,不是吗?)。 查看附件。
将 JSL 本地化为 JMP 支持的不同语言是完全可能的,但需要付出一定的额外努力。 有关如何完成此操作的一些详细信息,请参阅发现论文经过@hecht_jmp 。 例如,如果您正在使用大纲节点(如上面的代码所示),并且通过名称引用它们,那么这几乎肯定会失败。 另一方面,如果报告的结构发生变化(例如,如果报告的内容在版本之间变得更加丰富),则按数字引用(如上面的代码所示)可能会失败。
也许最好发送电子邮件至 support@jmp.com 并将其指向此主题。
我在我的中文 JMP11 上测试了这个 JSL。 在日志中获取以下报告。 我仍然无法绘制参考线。 你能为我解释一下吗?
格曼
下面的代码将产生:

应该可以帮助您开始。 您可以使用“帮助>书籍>脚本指南”和“帮助>脚本索引”来了解它在做什么。 请注意,使用大纲节点的标题目前还不是很稳健,但这可以改进,或者以不同的方式进行。
NamesDefaultToHere(1);
// Yield table
dt1 =
New Table( "Yield",
Add Rows( 11 ),
New Column( "Model",
Character,
"Nominal",
Set Values(
{"IC1", "IC1", "IC1", "IC2", "IC2", "IC2", "IC2", "IC3", "IC3", "IC3",
"IC3"}
)
),
New Column( "WaferID",
Character( 16 ),
"Nominal",
Set Values( {"A", "B", "C", "E", "F", "G", "H", "R", "S", "T", "Z"} )
),
New Column( "Yield",
Numeric,
"Nominal",
Format( "Best", 12 ),
Set Values( [50, 60, 70, 30, 40, 50, 60, 80, 90, 70, 65] )
)
);
// Reference table
dt2 =
New Table( "Reference",
Add Rows( 3 ),
New Column( "Model", Character, "Nominal", Set Values( {"IC1", "IC2", "IC3"} ) ),
New Column( "Value",
Numeric,
"Nominal",
Format( "Best", 12 ),
Set Values( [50, 40, 70] )
)
);
// Start here . . .
// Get the values in dt2 into lists for later
modelVal = Column(dt2, "Model") << getValues;
refVal = Column(dt2, "Value") << getValues;
// Control Charts
cc = dt1 << Control Chart(
Sample Label( :WaferID ),
Chart Col( :Yield, Individual Measurement ),
By( :Model )
);
// Loop over the control chart reports
for(r=1, r<=NItems(cc), r++,
ccRep = Report(cc[r]);
// Extract the level of 'Model' from the title of the outline node
title = ccRep[OutlineBox(1)] << getTitle;
delimPos = Munger(title, 1, "=");
level = Substr(title, delimPos+1, Length(title)-delimPos);
// Get the reference value and plot it using a graphics script
ref = refVal[Loc(modelVal, level)];
Eval(
Substitute(
Expr(ccRep[FrameBox(1)] << addGraphicsScript(PenColor("Blue"); HLine(TBD))),
Expr(TBD),
ref[1]
);
);
);