你好,
我正在嘗試創建一個表來保存每個模型的參考線。 每條參考線都是每個模型的產量預期。 我打算有一個腳本,可以從中心表導入參考線,並在分析每個模型的收益率趨勢時在控製圖或變異性圖表上繪製參考線。
這是我的產量表的虛擬數據
| 模型 | 晶圓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]
);
);
);