formulab 0.14.0 → 0.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/dist/quality/gageRR.d.ts.map +1 -1
- package/dist/quality/gageRR.js +17 -11
- package/dist/quality/gageRR.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,19 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.14.1] - 2026-07-06
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- **`quality/gageRR()` — `status` now also considers `%GRR`-of-tolerance when a `tolerance`
|
|
13
|
+
is supplied.** Previously `status` was classified from `percentGRR` (the process-control
|
|
14
|
+
criterion, %GRR of Total Variation) alone, so a measurement system with excellent %GRR but
|
|
15
|
+
a tolerance far narrower than the part-to-part variation could report `'acceptable'` while
|
|
16
|
+
`percentTolerance` (the product-acceptance criterion) sat well above 30%. `status` is now
|
|
17
|
+
`worse(byPercentGRR, byPercentTolerance)` — AIAG MSA 4th Ed.'s ≤10/≤30 bands applied to
|
|
18
|
+
both criteria — falling back to `byPercentGRR` alone when no tolerance is given (unchanged
|
|
19
|
+
behavior). Reported via dogfooding (online-tools `quality/gage-rr`, ISSUE-20260705).
|
|
20
|
+
|
|
8
21
|
## [0.14.0] - 2026-07-05
|
|
9
22
|
|
|
10
23
|
### Changed (breaking within 0.x) — standard-table conformance sweep
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gageRR.d.ts","sourceRoot":"","sources":["../../src/quality/gageRR.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"gageRR.d.ts","sourceRoot":"","sources":["../../src/quality/gageRR.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AA4B5D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,YAAY,CA2FvD"}
|
package/dist/quality/gageRR.js
CHANGED
|
@@ -8,6 +8,18 @@ const K3 = {
|
|
|
8
8
|
2: 3.65, 3: 2.70, 4: 2.30, 5: 2.08,
|
|
9
9
|
6: 1.93, 7: 1.82, 8: 1.74, 9: 1.67, 10: 1.62,
|
|
10
10
|
};
|
|
11
|
+
const STATUS_RANK = { acceptable: 0, marginal: 1, unacceptable: 2 };
|
|
12
|
+
// AIAG MSA 4th Ed. applies the same ≤10/≤30 bands to %GRR-of-tolerance as to %GRR-of-TV.
|
|
13
|
+
function classifyPercent(percent) {
|
|
14
|
+
if (percent <= 10)
|
|
15
|
+
return 'acceptable';
|
|
16
|
+
if (percent <= 30)
|
|
17
|
+
return 'marginal';
|
|
18
|
+
return 'unacceptable';
|
|
19
|
+
}
|
|
20
|
+
function worse(a, b) {
|
|
21
|
+
return STATUS_RANK[a] >= STATUS_RANK[b] ? a : b;
|
|
22
|
+
}
|
|
11
23
|
/**
|
|
12
24
|
* Gage R&R (Measurement System Analysis) — AIAG MSA 4th Edition, Average and Range Method
|
|
13
25
|
*
|
|
@@ -84,17 +96,11 @@ export function gageRR(input) {
|
|
|
84
96
|
: null;
|
|
85
97
|
// ndc
|
|
86
98
|
const ndc = grr > 0 ? Math.floor(1.41 * (pv / grr)) : 0;
|
|
87
|
-
// Status
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
else if (percentGRR <= 30) {
|
|
93
|
-
status = 'marginal';
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
status = 'unacceptable';
|
|
97
|
-
}
|
|
99
|
+
// Status — %GRR-of-TV is the process-control criterion; when a tolerance is supplied,
|
|
100
|
+
// %GRR-of-tolerance (product-acceptance criterion) is evaluated too and the worse of the
|
|
101
|
+
// two wins, since a measurement system unfit for either purpose should not read "acceptable".
|
|
102
|
+
const byPercentGRR = classifyPercent(percentGRR);
|
|
103
|
+
const status = percentTolerance != null ? worse(byPercentGRR, classifyPercent(percentTolerance)) : byPercentGRR;
|
|
98
104
|
return {
|
|
99
105
|
ev: roundTo(ev, 4),
|
|
100
106
|
av: roundTo(av, 4),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gageRR.js","sourceRoot":"","sources":["../../src/quality/gageRR.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC,qDAAqD;AACrD,MAAM,EAAE,GAA2B,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;AAExD,sCAAsC;AACtC,MAAM,EAAE,GAA2B,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;AAExD,kCAAkC;AAClC,MAAM,EAAE,GAA2B;IACjC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI;IAClC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI;CAC7C,CAAC;
|
|
1
|
+
{"version":3,"file":"gageRR.js","sourceRoot":"","sources":["../../src/quality/gageRR.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "formulab",
|
|
3
|
-
"version": "0.14.
|
|
3
|
+
"version": "0.14.1",
|
|
4
4
|
"description": "Manufacturing & Engineering calculation formulas library - 182 industrial calculations across 15 domains for OEE, Cpk, SPC, FMEA, Nelson Rules, metal weight, CNC machining, GD&T, battery, environmental, pipe flow, logistics, IE time study, and more",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|