ErtragstabelleIch versuche, eine Ertragstabelle mithilfe einer Tabelle mit eingebetteten Spezifikationsgrenzen zu erhalten.
Aus irgendeinem Grund gibt die Zeilenanzahl nichts anderes als Null aus. Gibt es eine Ahnung, was ich falsch mache?
Clear Globals();
dt = Current Data Table();
dtYield = New Table( "Yield Table",
New Column( "Column Name", Character, "Nominal" ),
New Column( "Pass Count", Numeric, "Continuous" ),
New Column( "Fail Count", Numeric, "Continuous" ),
New Column( "Yield (Percent)", Numeric, "Continuous", Format( "Percent", 12 ) )
);
// Get all numeric columns
colList = dt << get column names( numeric, string );
// Loop across the columns and generate the test pass/fails
Try(For( i = 1, i <= N Items( colList ), i++,
spec = As Column( dt, colList[i] ) << get property( "Spec Limits" );
//Establish the Notes Value from the Parent Column
dt << clear select;
If( !Is Empty( specs ),
/* Extract spec limits */
lsl = spec["LSL"]; // Lower Spec Limit
usl = spec["USL"]; // Upper Spec Limit
/* Step 5: Evaluate pass and fail counts */
failCount = N Rows( dt << Get Rows Where( Column(dt, colList[i]) <= lsl)) + N Rows( dt << Get Rows Where( Column(dt, colList[i]) >= usl));
passCount = N Rows( dt << Get Rows Where( Column(dt, colList[i]) > lsl & Column(dt, colList[i]) < usl ) );
/* Step 6: Calculate yield */
yield = 100 * passCount / (passCount + failCount);
Show(yield);
/* Step 7: Add results to the yield table */
dtYield << Add Rows(1);
dtYield:Column Name[ N Rows( dtYield ) ] = As Column(colList[i]) << Get Name();
dtYield:Pass Count[ N Rows( dtYield ) ] = passCount;
dtYield:Fail Count[ N Rows( dtYield ) ] = failCount;
dtYield:Yield (Percent)[ N Rows( dtYield ) ] = yield;
);
);<BR />);
Automatisierung und SkriptingBetreff: ErtragstabelleDas ist mir eingefallen. Hat jemand einen besseren Vorschlag?
Clear Globals();
dt = Current Data Table();
dtYield = New Table( "Yield Table",
Add Rows(1),
New Column( "Column Name", Character, "Nominal" ),
New Column( "Pass Count", Numeric, "Continuous" ),
New Column( "Fail Count", Numeric, "Continuous" ),
New Column( "Yield", Numeric, "Continuous" ),
);
// Get all numeric columns
colList = dt << get column names( numeric, string );
SpecCols ={};
For Each({colnames, index}, colList,
spec = Column(dt, colnames) << get property( "Spec Limits" );
If( !Is Empty( spec ), Insert Into (SpecCols, colnames)));
// Loop across the columns and generate the test pass/fails
For Each({colnames, index}, SpecCols,
spec = Column(dt, colnames) << get property( "Spec Limits" );
lsl = spec["LSL"]; // Lower Spec Limit
usl = spec["USL"]; // Upper Spec Limit
failCount = N Rows( dt << Get Rows Where((As Column(dt, colnames)[]<LSL>usl)));
passCount = N Rows( dt << Get Rows Where((As Column(dt, colnames)[]>lsl) & (As Column(dt, colnames)[]<USL></USL></LSL>Betreff: ErtragstabelleDies wurde optimiert, um eine wählbare Ertragsschwelle zu haben.
ex = New Window( "Enter % Pass Threshold",
<<MODAL>usl)));
passCount = N Rows( dt << Get Rows Where((As Column(dt, colnames)[]>lsl) & (As Column(dt, colnames)[]<USL></USL></MODAL>
Betreff: ErtragstabelleHallo,
Wenn Sie mit Spezifikationsgrenzen und Ertragstabellen arbeiten, gibt es tatsächlich ein kurzes Tutorial, das zeigt, wie dies ohne Skripting möglich ist – für den Fall, dass Sie nach einem gebrauchsfertigeren Ansatz suchen.
https://www.youtube.com/watch?v=1CjmA2hZhdg&t=315s
YieldOptiX ist ein JMP-basiertes Add-In, das die Handhabung von Spezifikationsgrenzen, Ertragszusammenfassungen und Binning-Berichte automatisiert. Es wird typischerweise mit Testdaten verwendet, die gleichen Prinzipien gelten jedoch für alle strukturierten Datensätze mit Spezifikationen und Messungen.
Ich dachte nur, ich teile es mit Ihnen, falls Sie daran interessiert sind, neben Ihren eigenen Arbeitsabläufen etwas schlüsselfertigeres zu erkunden.