@code3d/screws 0.0.1-alpha.4 → 0.0.1-alpha.7
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/README.md +228 -40
- package/bld/chunks/chunk-2DGVQRQ5.js +78 -0
- package/bld/chunks/chunk-2DGVQRQ5.js.map +7 -0
- package/bld/chunks/chunk-4FMUSJBB.js +27 -0
- package/bld/chunks/chunk-4FMUSJBB.js.map +7 -0
- package/bld/chunks/chunk-7UGU5EFV.js +87 -0
- package/bld/chunks/chunk-7UGU5EFV.js.map +7 -0
- package/bld/chunks/chunk-DKS4VANI.js +27 -0
- package/bld/chunks/chunk-DKS4VANI.js.map +7 -0
- package/bld/chunks/chunk-ES62SR3Q.js +21 -0
- package/bld/chunks/chunk-ES62SR3Q.js.map +7 -0
- package/bld/chunks/chunk-ESLSQKZW.js +25 -0
- package/bld/chunks/chunk-ESLSQKZW.js.map +7 -0
- package/bld/chunks/chunk-GAX6375G.js +25 -0
- package/bld/chunks/chunk-GAX6375G.js.map +7 -0
- package/bld/chunks/chunk-GIIOR3XJ.js +49 -0
- package/bld/chunks/chunk-GIIOR3XJ.js.map +7 -0
- package/bld/chunks/chunk-HPPYZYCK.js +23 -0
- package/bld/chunks/chunk-HPPYZYCK.js.map +7 -0
- package/bld/chunks/chunk-IXFHRZSY.js +121 -0
- package/bld/chunks/chunk-IXFHRZSY.js.map +7 -0
- package/bld/chunks/chunk-MEIKYZ23.js +84 -0
- package/bld/chunks/chunk-MEIKYZ23.js.map +7 -0
- package/bld/chunks/chunk-O34BMYJV.js +84 -0
- package/bld/chunks/chunk-O34BMYJV.js.map +7 -0
- package/bld/chunks/chunk-P3M5KQ5U.js +46 -0
- package/bld/chunks/chunk-P3M5KQ5U.js.map +7 -0
- package/bld/chunks/chunk-PFFNLWWR.js +25 -0
- package/bld/chunks/chunk-PFFNLWWR.js.map +7 -0
- package/bld/chunks/chunk-SDUJLXOE.js +46 -0
- package/bld/chunks/chunk-SDUJLXOE.js.map +7 -0
- package/bld/chunks/chunk-SDYJF2XK.js +25 -0
- package/bld/chunks/chunk-SDYJF2XK.js.map +7 -0
- package/bld/chunks/chunk-SGDNOA44.js +92 -0
- package/bld/chunks/chunk-SGDNOA44.js.map +7 -0
- package/bld/chunks/chunk-SPFHOFBC.js +125 -0
- package/bld/chunks/chunk-SPFHOFBC.js.map +7 -0
- package/bld/chunks/chunk-VVX3WOBG.js +160 -0
- package/bld/chunks/chunk-VVX3WOBG.js.map +7 -0
- package/bld/chunks/chunk-W62ASGIP.js +25 -0
- package/bld/chunks/chunk-W62ASGIP.js.map +7 -0
- package/bld/chunks/chunk-Z5LEGL77.js +464 -0
- package/bld/chunks/chunk-Z5LEGL77.js.map +7 -0
- package/bld/chunks/chunk-ZNWKI54A.js +25 -0
- package/bld/chunks/chunk-ZNWKI54A.js.map +7 -0
- package/bld/library/common.d.ts +104 -0
- package/bld/library/common.d.ts.map +1 -0
- package/bld/library/gb-2672.d.ts +8 -0
- package/bld/library/gb-2672.d.ts.map +1 -0
- package/bld/library/gb-2672.js +17 -0
- package/bld/library/gb-2672.js.map +7 -0
- package/bld/library/gb-5281.d.ts +8 -0
- package/bld/library/gb-5281.d.ts.map +1 -0
- package/bld/library/gb-5281.js +15 -0
- package/bld/library/gb-5281.js.map +7 -0
- package/bld/library/gb-5782.d.ts +8 -0
- package/bld/library/gb-5782.d.ts.map +1 -0
- package/bld/library/gb-5782.js +19 -0
- package/bld/library/gb-5782.js.map +7 -0
- package/bld/library/gb-5783.d.ts +8 -0
- package/bld/library/gb-5783.d.ts.map +1 -0
- package/bld/library/gb-5783.js +19 -0
- package/bld/library/gb-5783.js.map +7 -0
- package/bld/library/gb-70-1.d.ts +8 -0
- package/bld/library/gb-70-1.d.ts.map +1 -0
- package/bld/library/gb-70-1.js +17 -0
- package/bld/library/gb-70-1.js.map +7 -0
- package/bld/library/gb-70-2.d.ts +8 -0
- package/bld/library/gb-70-2.d.ts.map +1 -0
- package/bld/library/gb-70-2.js +17 -0
- package/bld/library/gb-70-2.js.map +7 -0
- package/bld/library/gb-70-3.d.ts +8 -0
- package/bld/library/gb-70-3.d.ts.map +1 -0
- package/bld/library/gb-70-3.js +17 -0
- package/bld/library/gb-70-3.js.map +7 -0
- package/bld/library/gb-70-4.d.ts +8 -0
- package/bld/library/gb-70-4.d.ts.map +1 -0
- package/bld/library/gb-70-4.js +17 -0
- package/bld/library/gb-70-4.js.map +7 -0
- package/bld/library/gb-80.d.ts +8 -0
- package/bld/library/gb-80.d.ts.map +1 -0
- package/bld/library/gb-80.js +13 -0
- package/bld/library/gb-80.js.map +7 -0
- package/bld/library/gb-818.d.ts +8 -0
- package/bld/library/gb-818.d.ts.map +1 -0
- package/bld/library/gb-818.js +17 -0
- package/bld/library/gb-818.js.map +7 -0
- package/bld/library/hex-head.d.ts +18 -0
- package/bld/library/hex-head.d.ts.map +1 -0
- package/bld/library/index.d.ts +19 -0
- package/bld/library/index.d.ts.map +1 -1
- package/bld/library/index.js +80 -455
- package/bld/library/index.js.map +3 -3
- package/bld/library/iso-10642.d.ts +51 -0
- package/bld/library/iso-10642.d.ts.map +1 -0
- package/bld/library/iso-10642.js +16 -0
- package/bld/library/iso-10642.js.map +7 -0
- package/bld/library/iso-14583.d.ts +35 -0
- package/bld/library/iso-14583.d.ts.map +1 -0
- package/bld/library/iso-14583.js +16 -0
- package/bld/library/iso-14583.js.map +7 -0
- package/bld/library/iso-4014.d.ts +20 -0
- package/bld/library/iso-4014.d.ts.map +1 -0
- package/bld/library/iso-4014.js +18 -0
- package/bld/library/iso-4014.js.map +7 -0
- package/bld/library/iso-4017.d.ts +20 -0
- package/bld/library/iso-4017.d.ts.map +1 -0
- package/bld/library/iso-4017.js +18 -0
- package/bld/library/iso-4017.js.map +7 -0
- package/bld/library/iso-4029.d.ts +32 -0
- package/bld/library/iso-4029.d.ts.map +1 -0
- package/bld/library/iso-4029.js +12 -0
- package/bld/library/iso-4029.js.map +7 -0
- package/bld/library/iso-4762.d.ts +10 -152
- package/bld/library/iso-4762.d.ts.map +1 -1
- package/bld/library/iso-4762.js +16 -0
- package/bld/library/iso-4762.js.map +7 -0
- package/bld/library/iso-7045.d.ts +33 -0
- package/bld/library/iso-7045.d.ts.map +1 -0
- package/bld/library/iso-7045.js +16 -0
- package/bld/library/iso-7045.js.map +7 -0
- package/bld/library/iso-7379.d.ts +56 -0
- package/bld/library/iso-7379.d.ts.map +1 -0
- package/bld/library/iso-7379.js +14 -0
- package/bld/library/iso-7379.js.map +7 -0
- package/bld/library/iso-7380-1.d.ts +31 -0
- package/bld/library/iso-7380-1.d.ts.map +1 -0
- package/bld/library/iso-7380-1.js +16 -0
- package/bld/library/iso-7380-1.js.map +7 -0
- package/bld/library/iso-7380-2.d.ts +33 -0
- package/bld/library/iso-7380-2.d.ts.map +1 -0
- package/bld/library/iso-7380-2.js +16 -0
- package/bld/library/iso-7380-2.js.map +7 -0
- package/package.json +82 -2
- package/src/library/common.ts +367 -0
- package/src/library/gb-2672.ts +7 -0
- package/src/library/gb-5281.ts +7 -0
- package/src/library/gb-5782.ts +7 -0
- package/src/library/gb-5783.ts +7 -0
- package/src/library/gb-70-1.ts +7 -0
- package/src/library/gb-70-2.ts +7 -0
- package/src/library/gb-70-3.ts +7 -0
- package/src/library/gb-70-4.ts +7 -0
- package/src/library/gb-80.ts +7 -0
- package/src/library/gb-818.ts +7 -0
- package/src/library/hex-head.ts +53 -0
- package/src/library/index.ts +20 -0
- package/src/library/iso-10642.ts +173 -0
- package/src/library/iso-14583.ts +181 -0
- package/src/library/iso-4014.ts +64 -0
- package/src/library/iso-4017.ts +62 -0
- package/src/library/iso-4029.ts +101 -0
- package/src/library/iso-4762.ts +70 -300
- package/src/library/iso-7045.ts +134 -0
- package/src/library/iso-7379.ts +230 -0
- package/src/library/iso-7380-1.ts +110 -0
- package/src/library/iso-7380-2.ts +135 -0
- package/src/library/thread.ts +7 -1
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type HeadSpecification, type Screw, type ClearanceHole, type CounterboredHole, type ClearanceHoleOptions, type PlainHoleOptions, type CounterboredHoleOptions } from './common.js';
|
|
2
|
+
export type { ClearanceFit, Screw, ScrewElements, ClearanceHole, HoleElements, CounterboredHole, CounterboredHoleElements, ClearanceHoleOptions, PlainHoleOptions, CounterboredHoleOptions, CounterboreOptions, } from './common.js';
|
|
3
|
+
export type Specification = HeadSpecification & Readonly<{
|
|
4
|
+
hexSocketWidth: number;
|
|
5
|
+
hexSocketDepth: number;
|
|
6
|
+
}>;
|
|
7
|
+
export declare const specifications: {
|
|
8
|
+
readonly M3: Specification;
|
|
9
|
+
readonly M4: Specification;
|
|
10
|
+
readonly M5: Specification;
|
|
11
|
+
readonly M6: Specification;
|
|
12
|
+
readonly M8: Specification;
|
|
13
|
+
readonly M10: Specification;
|
|
14
|
+
readonly M12: Specification;
|
|
15
|
+
};
|
|
16
|
+
export type Size = keyof typeof specifications;
|
|
17
|
+
export type ScrewInput = Size | Specification;
|
|
18
|
+
export declare function resolveSpecification(input: ScrewInput): Specification;
|
|
19
|
+
/** Nominal partial thread b; the builder limits it to the available shank. */
|
|
20
|
+
export declare function threadLength(spec: Specification, _length: number): number;
|
|
21
|
+
/**
|
|
22
|
+
* @code3d.arguments ['M6', 18]
|
|
23
|
+
* @code3d.param length {kind: 'length'}
|
|
24
|
+
*/
|
|
25
|
+
export declare function screw(input: ScrewInput, length: number): Screw;
|
|
26
|
+
/** @code3d.arguments ['M6', 10] */
|
|
27
|
+
export declare function clearanceHole(input: ScrewInput, depth: number): ClearanceHole;
|
|
28
|
+
export declare function clearanceHole(input: ScrewInput, options: PlainHoleOptions): ClearanceHole;
|
|
29
|
+
export declare function clearanceHole(input: ScrewInput, options: CounterboredHoleOptions): CounterboredHole;
|
|
30
|
+
export declare function clearanceHole(input: ScrewInput, options: ClearanceHoleOptions): ClearanceHole | CounterboredHole;
|
|
31
|
+
//# sourceMappingURL=iso-7380-1.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iso-7380-1.d.ts","sourceRoot":"","sources":["../../src/library/iso-7380-1.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,iBAAiB,EAEtB,KAAK,KAAK,EACV,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC7B,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,YAAY,EACZ,KAAK,EACL,aAAa,EACb,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAC3C,QAAQ,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAC,CAAC,CAAC;AAqB7D,eAAO,MAAM,cAAc;aACzB,EAAE;aACF,EAAE;aACF,EAAE;aACF,EAAE;aACF,EAAE;aACF,GAAG;aACH,GAAG;CACK,CAAC;AACX,MAAM,MAAM,IAAI,GAAG,MAAM,OAAO,cAAc,CAAC;AAC/C,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,aAAa,CAAC;AAC9C,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,UAAU,GAAG,aAAa,CAErE;AACD,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEzE;AACD;;;GAGG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,CAc9D;AAED,mCAAmC;AACnC,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC;AAC/E,wBAAgB,aAAa,CAC3B,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,gBAAgB,GACxB,aAAa,CAAC;AACjB,wBAAgB,aAAa,CAC3B,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,uBAAuB,GAC/B,gBAAgB,CAAC;AACpB,wBAAgB,aAAa,CAC3B,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,oBAAoB,GAC5B,aAAa,GAAG,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import {
|
|
2
|
+
clearanceHole,
|
|
3
|
+
resolveSpecification,
|
|
4
|
+
screw,
|
|
5
|
+
specifications,
|
|
6
|
+
threadLength
|
|
7
|
+
} from "../chunks/chunk-2DGVQRQ5.js";
|
|
8
|
+
import "../chunks/chunk-Z5LEGL77.js";
|
|
9
|
+
export {
|
|
10
|
+
clearanceHole,
|
|
11
|
+
resolveSpecification,
|
|
12
|
+
screw,
|
|
13
|
+
specifications,
|
|
14
|
+
threadLength
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=iso-7380-1.js.map
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type HeadSpecification, type Screw, type ClearanceHole, type CounterboredHole, type ClearanceHoleOptions, type PlainHoleOptions, type CounterboredHoleOptions } from './common.js';
|
|
2
|
+
export type { ClearanceFit, Screw, ScrewElements, ClearanceHole, HoleElements, CounterboredHole, CounterboredHoleElements, ClearanceHoleOptions, PlainHoleOptions, CounterboredHoleOptions, CounterboreOptions, } from './common.js';
|
|
3
|
+
export type Specification = HeadSpecification & Readonly<{
|
|
4
|
+
hexSocketWidth: number;
|
|
5
|
+
hexSocketDepth: number;
|
|
6
|
+
buttonDiameter: number;
|
|
7
|
+
collarHeight: number;
|
|
8
|
+
}>;
|
|
9
|
+
export declare const specifications: {
|
|
10
|
+
readonly M3: Specification;
|
|
11
|
+
readonly M4: Specification;
|
|
12
|
+
readonly M5: Specification;
|
|
13
|
+
readonly M6: Specification;
|
|
14
|
+
readonly M8: Specification;
|
|
15
|
+
readonly M10: Specification;
|
|
16
|
+
readonly M12: Specification;
|
|
17
|
+
};
|
|
18
|
+
export type Size = keyof typeof specifications;
|
|
19
|
+
export type ScrewInput = Size | Specification;
|
|
20
|
+
export declare function resolveSpecification(input: ScrewInput): Specification;
|
|
21
|
+
/** Nominal partial thread b; the builder limits it to the available shank. */
|
|
22
|
+
export declare function threadLength(spec: Specification, _length: number): number;
|
|
23
|
+
/**
|
|
24
|
+
* @code3d.arguments ['M6', 18]
|
|
25
|
+
* @code3d.param length {kind: 'length'}
|
|
26
|
+
*/
|
|
27
|
+
export declare function screw(input: ScrewInput, length: number): Screw;
|
|
28
|
+
/** @code3d.arguments ['M6', 10] */
|
|
29
|
+
export declare function clearanceHole(input: ScrewInput, depth: number): ClearanceHole;
|
|
30
|
+
export declare function clearanceHole(input: ScrewInput, options: PlainHoleOptions): ClearanceHole;
|
|
31
|
+
export declare function clearanceHole(input: ScrewInput, options: CounterboredHoleOptions): CounterboredHole;
|
|
32
|
+
export declare function clearanceHole(input: ScrewInput, options: ClearanceHoleOptions): ClearanceHole | CounterboredHole;
|
|
33
|
+
//# sourceMappingURL=iso-7380-2.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iso-7380-2.d.ts","sourceRoot":"","sources":["../../src/library/iso-7380-2.ts"],"names":[],"mappings":"AACA,OAAO,EASL,KAAK,iBAAiB,EAEtB,KAAK,KAAK,EACV,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC7B,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,YAAY,EACZ,KAAK,EACL,aAAa,EACb,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAC3C,QAAQ,CAAC;IACP,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC,CAAC;AA0BL,eAAO,MAAM,cAAc;aACzB,EAAE;aACF,EAAE;aACF,EAAE;aACF,EAAE;aACF,EAAE;aACF,GAAG;aACH,GAAG;CACK,CAAC;AACX,MAAM,MAAM,IAAI,GAAG,MAAM,OAAO,cAAc,CAAC;AAC/C,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,aAAa,CAAC;AAC9C,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,UAAU,GAAG,aAAa,CAErE;AACD,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEzE;AACD;;;GAGG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,CA0B9D;AAED,mCAAmC;AACnC,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC;AAC/E,wBAAgB,aAAa,CAC3B,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,gBAAgB,GACxB,aAAa,CAAC;AACjB,wBAAgB,aAAa,CAC3B,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,uBAAuB,GAC/B,gBAAgB,CAAC;AACpB,wBAAgB,aAAa,CAC3B,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,oBAAoB,GAC5B,aAAa,GAAG,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import {
|
|
2
|
+
clearanceHole,
|
|
3
|
+
resolveSpecification,
|
|
4
|
+
screw,
|
|
5
|
+
specifications,
|
|
6
|
+
threadLength
|
|
7
|
+
} from "../chunks/chunk-SGDNOA44.js";
|
|
8
|
+
import "../chunks/chunk-Z5LEGL77.js";
|
|
9
|
+
export {
|
|
10
|
+
clearanceHole,
|
|
11
|
+
resolveSpecification,
|
|
12
|
+
screw,
|
|
13
|
+
specifications,
|
|
14
|
+
threadLength
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=iso-7380-2.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@code3d/screws",
|
|
3
|
-
"version": "0.0.1-alpha.
|
|
3
|
+
"version": "0.0.1-alpha.7",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -18,6 +18,86 @@
|
|
|
18
18
|
".": {
|
|
19
19
|
"types": "./bld/library/index.d.ts",
|
|
20
20
|
"default": "./bld/library/index.js"
|
|
21
|
+
},
|
|
22
|
+
"./iso4762": {
|
|
23
|
+
"types": "./bld/library/iso-4762.d.ts",
|
|
24
|
+
"default": "./bld/library/iso-4762.js"
|
|
25
|
+
},
|
|
26
|
+
"./iso10642": {
|
|
27
|
+
"types": "./bld/library/iso-10642.d.ts",
|
|
28
|
+
"default": "./bld/library/iso-10642.js"
|
|
29
|
+
},
|
|
30
|
+
"./iso7380-1": {
|
|
31
|
+
"types": "./bld/library/iso-7380-1.d.ts",
|
|
32
|
+
"default": "./bld/library/iso-7380-1.js"
|
|
33
|
+
},
|
|
34
|
+
"./iso4017": {
|
|
35
|
+
"types": "./bld/library/iso-4017.d.ts",
|
|
36
|
+
"default": "./bld/library/iso-4017.js"
|
|
37
|
+
},
|
|
38
|
+
"./iso4014": {
|
|
39
|
+
"types": "./bld/library/iso-4014.d.ts",
|
|
40
|
+
"default": "./bld/library/iso-4014.js"
|
|
41
|
+
},
|
|
42
|
+
"./iso7380-2": {
|
|
43
|
+
"types": "./bld/library/iso-7380-2.d.ts",
|
|
44
|
+
"default": "./bld/library/iso-7380-2.js"
|
|
45
|
+
},
|
|
46
|
+
"./iso4029": {
|
|
47
|
+
"types": "./bld/library/iso-4029.d.ts",
|
|
48
|
+
"default": "./bld/library/iso-4029.js"
|
|
49
|
+
},
|
|
50
|
+
"./iso7045": {
|
|
51
|
+
"types": "./bld/library/iso-7045.d.ts",
|
|
52
|
+
"default": "./bld/library/iso-7045.js"
|
|
53
|
+
},
|
|
54
|
+
"./iso14583": {
|
|
55
|
+
"types": "./bld/library/iso-14583.d.ts",
|
|
56
|
+
"default": "./bld/library/iso-14583.js"
|
|
57
|
+
},
|
|
58
|
+
"./iso7379": {
|
|
59
|
+
"types": "./bld/library/iso-7379.d.ts",
|
|
60
|
+
"default": "./bld/library/iso-7379.js"
|
|
61
|
+
},
|
|
62
|
+
"./gb70-1": {
|
|
63
|
+
"types": "./bld/library/gb-70-1.d.ts",
|
|
64
|
+
"default": "./bld/library/gb-70-1.js"
|
|
65
|
+
},
|
|
66
|
+
"./gb70-2": {
|
|
67
|
+
"types": "./bld/library/gb-70-2.d.ts",
|
|
68
|
+
"default": "./bld/library/gb-70-2.js"
|
|
69
|
+
},
|
|
70
|
+
"./gb70-3": {
|
|
71
|
+
"types": "./bld/library/gb-70-3.d.ts",
|
|
72
|
+
"default": "./bld/library/gb-70-3.js"
|
|
73
|
+
},
|
|
74
|
+
"./gb70-4": {
|
|
75
|
+
"types": "./bld/library/gb-70-4.d.ts",
|
|
76
|
+
"default": "./bld/library/gb-70-4.js"
|
|
77
|
+
},
|
|
78
|
+
"./gb5782": {
|
|
79
|
+
"types": "./bld/library/gb-5782.d.ts",
|
|
80
|
+
"default": "./bld/library/gb-5782.js"
|
|
81
|
+
},
|
|
82
|
+
"./gb5783": {
|
|
83
|
+
"types": "./bld/library/gb-5783.d.ts",
|
|
84
|
+
"default": "./bld/library/gb-5783.js"
|
|
85
|
+
},
|
|
86
|
+
"./gb818": {
|
|
87
|
+
"types": "./bld/library/gb-818.d.ts",
|
|
88
|
+
"default": "./bld/library/gb-818.js"
|
|
89
|
+
},
|
|
90
|
+
"./gb2672": {
|
|
91
|
+
"types": "./bld/library/gb-2672.d.ts",
|
|
92
|
+
"default": "./bld/library/gb-2672.js"
|
|
93
|
+
},
|
|
94
|
+
"./gb80": {
|
|
95
|
+
"types": "./bld/library/gb-80.d.ts",
|
|
96
|
+
"default": "./bld/library/gb-80.js"
|
|
97
|
+
},
|
|
98
|
+
"./gb5281": {
|
|
99
|
+
"types": "./bld/library/gb-5281.d.ts",
|
|
100
|
+
"default": "./bld/library/gb-5281.js"
|
|
21
101
|
}
|
|
22
102
|
},
|
|
23
103
|
"files": [
|
|
@@ -26,7 +106,7 @@
|
|
|
26
106
|
"src"
|
|
27
107
|
],
|
|
28
108
|
"peerDependencies": {
|
|
29
|
-
"@code3d/core": "^0.0.1-alpha.
|
|
109
|
+
"@code3d/core": "^0.0.1-alpha.7"
|
|
30
110
|
},
|
|
31
111
|
"devDependencies": {
|
|
32
112
|
"@code3d/core": "*"
|
|
@@ -0,0 +1,367 @@
|
|
|
1
|
+
import {
|
|
2
|
+
offset,
|
|
3
|
+
cylinder,
|
|
4
|
+
cut,
|
|
5
|
+
frustum,
|
|
6
|
+
intersect,
|
|
7
|
+
loft,
|
|
8
|
+
rectangle,
|
|
9
|
+
regularPrism,
|
|
10
|
+
sphere,
|
|
11
|
+
union,
|
|
12
|
+
type Bound,
|
|
13
|
+
type CanonicalElements,
|
|
14
|
+
type LineAnchor,
|
|
15
|
+
type SolidModel,
|
|
16
|
+
} from '@code3d/core';
|
|
17
|
+
import {helicalThread} from './thread.js';
|
|
18
|
+
|
|
19
|
+
export type ClearanceFit = 'close' | 'normal' | 'loose';
|
|
20
|
+
export type MetricSpecification = Readonly<{
|
|
21
|
+
designation: string;
|
|
22
|
+
nominalDiameter: number;
|
|
23
|
+
pitch: number;
|
|
24
|
+
clearance: Readonly<Record<ClearanceFit, number>>;
|
|
25
|
+
}>;
|
|
26
|
+
|
|
27
|
+
// ISO metric coarse pitches and ISO 273 clearance series, millimetres.
|
|
28
|
+
const metricDimensions = {
|
|
29
|
+
M3: [3, 0.5, 3.2, 3.4, 3.6],
|
|
30
|
+
M4: [4, 0.7, 4.3, 4.5, 4.8],
|
|
31
|
+
M5: [5, 0.8, 5.3, 5.5, 5.8],
|
|
32
|
+
M6: [6, 1, 6.4, 6.6, 7],
|
|
33
|
+
M8: [8, 1.25, 8.4, 9, 10],
|
|
34
|
+
M10: [10, 1.5, 10.5, 11, 12],
|
|
35
|
+
M12: [12, 1.75, 13, 13.5, 14.5],
|
|
36
|
+
} as const;
|
|
37
|
+
export type MetricSize = keyof typeof metricDimensions;
|
|
38
|
+
|
|
39
|
+
export function metric(designation: MetricSize): MetricSpecification {
|
|
40
|
+
const [nominalDiameter, pitch, close, normal, loose] =
|
|
41
|
+
metricDimensions[designation];
|
|
42
|
+
return {
|
|
43
|
+
designation,
|
|
44
|
+
nominalDiameter,
|
|
45
|
+
pitch,
|
|
46
|
+
clearance: {close, normal, loose},
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export type ShankElements = Readonly<{
|
|
51
|
+
shankTop: Bound;
|
|
52
|
+
shankBottom: Bound;
|
|
53
|
+
shankAxis: LineAnchor;
|
|
54
|
+
}>;
|
|
55
|
+
export type ScrewElements = CanonicalElements &
|
|
56
|
+
ShankElements &
|
|
57
|
+
Readonly<{
|
|
58
|
+
headTop: Bound;
|
|
59
|
+
headBottom: Bound;
|
|
60
|
+
}>;
|
|
61
|
+
export type Screw = SolidModel<ScrewElements>;
|
|
62
|
+
export type HoleElements = CanonicalElements &
|
|
63
|
+
Readonly<{
|
|
64
|
+
shaftTop: Bound;
|
|
65
|
+
shaftBottom: Bound;
|
|
66
|
+
shaftAxis: LineAnchor;
|
|
67
|
+
}>;
|
|
68
|
+
export type CounterboredHoleElements = HoleElements &
|
|
69
|
+
Readonly<{
|
|
70
|
+
counterboreTop: Bound;
|
|
71
|
+
counterboreBottom: Bound;
|
|
72
|
+
}>;
|
|
73
|
+
export type ClearanceHole = SolidModel<HoleElements>;
|
|
74
|
+
export type CounterboredHole = SolidModel<CounterboredHoleElements>;
|
|
75
|
+
|
|
76
|
+
export type HeadSpecification = MetricSpecification &
|
|
77
|
+
Readonly<{
|
|
78
|
+
headDiameter: number;
|
|
79
|
+
headHeight: number;
|
|
80
|
+
underHeadRadius: number;
|
|
81
|
+
}>;
|
|
82
|
+
export type CounterboreOptions = Readonly<{
|
|
83
|
+
diameter?: number;
|
|
84
|
+
depth?: number;
|
|
85
|
+
axialClearance?: number;
|
|
86
|
+
}>;
|
|
87
|
+
export type ClearanceHoleOptions = Readonly<{
|
|
88
|
+
depth: number;
|
|
89
|
+
fit?: ClearanceFit;
|
|
90
|
+
diameter?: number;
|
|
91
|
+
counterbore?: boolean | CounterboreOptions;
|
|
92
|
+
}>;
|
|
93
|
+
export type PlainHoleOptions = ClearanceHoleOptions &
|
|
94
|
+
Readonly<{counterbore?: false}>;
|
|
95
|
+
export type CounterboredHoleOptions = ClearanceHoleOptions &
|
|
96
|
+
Readonly<{
|
|
97
|
+
counterbore: true | CounterboreOptions;
|
|
98
|
+
}>;
|
|
99
|
+
|
|
100
|
+
export function positive(name: string, value: number): void {
|
|
101
|
+
if (!Number.isFinite(value) || value <= 0)
|
|
102
|
+
throw new Error(`${name} must be a positive finite number.`);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export function validateMetric(spec: MetricSpecification): void {
|
|
106
|
+
positive('Nominal diameter', spec.nominalDiameter);
|
|
107
|
+
positive('Pitch', spec.pitch);
|
|
108
|
+
if (spec.pitch >= spec.nominalDiameter)
|
|
109
|
+
throw new Error('Pitch must be smaller than the nominal diameter.');
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
export function validateHead(spec: HeadSpecification): void {
|
|
113
|
+
validateMetric(spec);
|
|
114
|
+
positive('Head diameter', spec.headDiameter);
|
|
115
|
+
positive('Head height', spec.headHeight);
|
|
116
|
+
positive('Under-head radius', spec.underHeadRadius);
|
|
117
|
+
if (spec.headDiameter <= spec.nominalDiameter)
|
|
118
|
+
throw new Error('Head diameter must exceed the nominal diameter.');
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/** Translate geometry within the package's common Y-axis frame. */
|
|
122
|
+
export function atY<T extends SolidModel>(model: T, y: number) {
|
|
123
|
+
return model.originOffset(0, -y, 0);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
export function externalThread(spec: MetricSpecification, length: number) {
|
|
127
|
+
validateMetric(spec);
|
|
128
|
+
positive('Thread length', length);
|
|
129
|
+
const fundamentalHeight = (Math.sqrt(3) / 2) * spec.pitch;
|
|
130
|
+
return helicalThread({
|
|
131
|
+
pitch: spec.pitch,
|
|
132
|
+
y: length,
|
|
133
|
+
majorDiameter: spec.nominalDiameter,
|
|
134
|
+
minorDiameter: spec.nominalDiameter - 2 * ((5 / 8) * fundamentalHeight),
|
|
135
|
+
rootWidth: (3 / 4) * spec.pitch,
|
|
136
|
+
crestWidth: (1 / 8) * spec.pitch,
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/** Shaft top is Y=0; its tip is Y=-length, including the blended ends. */
|
|
141
|
+
export function shank(
|
|
142
|
+
spec: MetricSpecification,
|
|
143
|
+
length: number,
|
|
144
|
+
threadedLength: number,
|
|
145
|
+
radius: number,
|
|
146
|
+
) {
|
|
147
|
+
positive('Screw length', length);
|
|
148
|
+
positive('Thread length', threadedLength);
|
|
149
|
+
if (length <= spec.pitch + radius)
|
|
150
|
+
throw new Error(
|
|
151
|
+
'Screw length must leave room for at least one full thread pitch.',
|
|
152
|
+
);
|
|
153
|
+
const bodyLength = length - radius;
|
|
154
|
+
const threadLength = Math.min(bodyLength, threadedLength);
|
|
155
|
+
const plainLength = bodyLength - threadLength;
|
|
156
|
+
const overlap = Math.min(0.08, spec.pitch / 10);
|
|
157
|
+
const transition = atY(
|
|
158
|
+
frustum(
|
|
159
|
+
spec.nominalDiameter / 2,
|
|
160
|
+
spec.nominalDiameter / 2 + radius,
|
|
161
|
+
radius,
|
|
162
|
+
),
|
|
163
|
+
-radius / 2,
|
|
164
|
+
);
|
|
165
|
+
const parts: SolidModel[] = [transition];
|
|
166
|
+
if (plainLength > 0)
|
|
167
|
+
parts.push(
|
|
168
|
+
atY(
|
|
169
|
+
cylinder(spec.nominalDiameter / 2, plainLength + overlap),
|
|
170
|
+
-radius - plainLength / 2 + overlap / 2,
|
|
171
|
+
),
|
|
172
|
+
);
|
|
173
|
+
const thread = atY(
|
|
174
|
+
externalThread(spec, threadLength + overlap),
|
|
175
|
+
-length + (threadLength + overlap) / 2,
|
|
176
|
+
);
|
|
177
|
+
parts.push(thread);
|
|
178
|
+
return union(parts).expose({
|
|
179
|
+
shankTop: transition.up,
|
|
180
|
+
shankBottom: thread.down,
|
|
181
|
+
shankAxis: thread.axis,
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
export function headedScrew(
|
|
186
|
+
head: SolidModel,
|
|
187
|
+
spec: HeadSpecification,
|
|
188
|
+
length: number,
|
|
189
|
+
threadedLength: number,
|
|
190
|
+
): Screw {
|
|
191
|
+
validateHead(spec);
|
|
192
|
+
const shaft = shank(
|
|
193
|
+
spec,
|
|
194
|
+
length,
|
|
195
|
+
threadedLength,
|
|
196
|
+
spec.underHeadRadius,
|
|
197
|
+
).relate(part => part.on(head.down));
|
|
198
|
+
return union([head, shaft]).expose({
|
|
199
|
+
headTop: head.up,
|
|
200
|
+
headBottom: head.down,
|
|
201
|
+
shankTop: shaft.shankTop,
|
|
202
|
+
shankBottom: shaft.shankBottom,
|
|
203
|
+
shankAxis: shaft.shankAxis,
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
export function hexSocket(
|
|
208
|
+
head: SolidModel,
|
|
209
|
+
width: number,
|
|
210
|
+
depth: number,
|
|
211
|
+
height: number,
|
|
212
|
+
): SolidModel {
|
|
213
|
+
positive('Hex socket width', width);
|
|
214
|
+
positive('Hex socket depth', depth);
|
|
215
|
+
if (depth >= height)
|
|
216
|
+
throw new Error('Hex socket depth must be smaller than the head height.');
|
|
217
|
+
const tool = regularPrism(width / Math.sqrt(3), depth + 0.2, 6, 30).relate(
|
|
218
|
+
part => [part.down.on(head.up), offset(0, -depth, 0)],
|
|
219
|
+
);
|
|
220
|
+
return cut(head, [tool]);
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
/** Spherical head with a small flat crown surrounding the driving recess. */
|
|
224
|
+
export function roundHead(
|
|
225
|
+
diameter: number,
|
|
226
|
+
height: number,
|
|
227
|
+
crownDiameter: number,
|
|
228
|
+
): SolidModel {
|
|
229
|
+
positive('Head diameter', diameter);
|
|
230
|
+
positive('Head height', height);
|
|
231
|
+
positive('Crown diameter', crownDiameter);
|
|
232
|
+
if (crownDiameter >= diameter)
|
|
233
|
+
throw new Error('Crown diameter must be smaller than the head diameter.');
|
|
234
|
+
const radius = diameter / 2;
|
|
235
|
+
const crown = crownDiameter / 2;
|
|
236
|
+
const center =
|
|
237
|
+
(height * height + crown * crown - radius * radius) / (2 * height);
|
|
238
|
+
const ball = atY(sphere(Math.hypot(radius, center)), center - height / 2);
|
|
239
|
+
return intersect([cylinder(radius, height), ball]);
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
export function panHead(
|
|
243
|
+
diameter: number,
|
|
244
|
+
height: number,
|
|
245
|
+
crownDiameter: number,
|
|
246
|
+
curvatureRadius: number,
|
|
247
|
+
): SolidModel {
|
|
248
|
+
positive('Head curvature radius', curvatureRadius);
|
|
249
|
+
if (curvatureRadius <= diameter / 2)
|
|
250
|
+
throw new Error(
|
|
251
|
+
'Head curvature radius must exceed half the head diameter.',
|
|
252
|
+
);
|
|
253
|
+
const capHeight =
|
|
254
|
+
Math.sqrt(curvatureRadius ** 2 - (crownDiameter / 2) ** 2) -
|
|
255
|
+
Math.sqrt(curvatureRadius ** 2 - (diameter / 2) ** 2);
|
|
256
|
+
if (!Number.isFinite(capHeight) || capHeight <= 0 || capHeight >= height)
|
|
257
|
+
throw new Error('Pan head crown must leave a cylindrical barrel.');
|
|
258
|
+
const barrel = cylinder(diameter / 2, height - capHeight);
|
|
259
|
+
const cap = atY(roundHead(diameter, capHeight, crownDiameter), height / 2);
|
|
260
|
+
return union([barrel, cap]);
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
export type CrossRecessType = 'H' | 'Z';
|
|
264
|
+
export type CrossRecess = Readonly<{
|
|
265
|
+
number: number;
|
|
266
|
+
diameter: number;
|
|
267
|
+
depth: number;
|
|
268
|
+
width: number;
|
|
269
|
+
}>;
|
|
270
|
+
|
|
271
|
+
/** Tapered cruciform drive; type Z adds its four intermediate ribs. */
|
|
272
|
+
export function crossSocket(
|
|
273
|
+
head: SolidModel,
|
|
274
|
+
recess: CrossRecess,
|
|
275
|
+
type: CrossRecessType,
|
|
276
|
+
): SolidModel {
|
|
277
|
+
const {diameter, depth, width} = recess;
|
|
278
|
+
positive('Cross recess diameter', diameter);
|
|
279
|
+
positive('Cross recess depth', depth);
|
|
280
|
+
positive('Cross recess width', width);
|
|
281
|
+
const bottom = rectangle(width * 0.7, diameter * 0.5);
|
|
282
|
+
const top = rectangle(width, diameter).originOffset(0, -depth, 0);
|
|
283
|
+
const wing = loft([bottom, top]);
|
|
284
|
+
const tools = [wing, wing.rotate(0, 90, 0)];
|
|
285
|
+
if (type === 'Z') {
|
|
286
|
+
const rib = loft([
|
|
287
|
+
rectangle(width * 0.2, diameter * 0.45),
|
|
288
|
+
rectangle(width * 0.35, diameter * 0.85).originOffset(0, -depth, 0),
|
|
289
|
+
]);
|
|
290
|
+
tools.push(rib.rotate(0, 45, 0), rib.rotate(0, 135, 0));
|
|
291
|
+
}
|
|
292
|
+
const tool = union(tools).relate(part => part.up.on(head.up));
|
|
293
|
+
return cut(head, [tool]);
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
export function plainHole(
|
|
297
|
+
spec: MetricSpecification,
|
|
298
|
+
options: Omit<ClearanceHoleOptions, 'counterbore'>,
|
|
299
|
+
): ClearanceHole {
|
|
300
|
+
validateMetric(spec);
|
|
301
|
+
positive('Hole depth', options.depth);
|
|
302
|
+
const diameter = options.diameter ?? spec.clearance[options.fit ?? 'normal'];
|
|
303
|
+
positive('Clearance diameter', diameter);
|
|
304
|
+
if (diameter <= spec.nominalDiameter)
|
|
305
|
+
throw new Error(
|
|
306
|
+
'Clearance-hole diameter must exceed the nominal screw diameter.',
|
|
307
|
+
);
|
|
308
|
+
const shaft = cylinder(diameter / 2, options.depth);
|
|
309
|
+
return shaft.expose({
|
|
310
|
+
shaftTop: shaft.up,
|
|
311
|
+
shaftBottom: shaft.down,
|
|
312
|
+
shaftAxis: shaft.axis,
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
export function clearanceHole(
|
|
317
|
+
spec: HeadSpecification & {counterboreDiameter?: number},
|
|
318
|
+
optionsOrDepth: number | ClearanceHoleOptions,
|
|
319
|
+
defaultCounterbore = false,
|
|
320
|
+
): ClearanceHole | CounterboredHole {
|
|
321
|
+
const options =
|
|
322
|
+
typeof optionsOrDepth === 'number'
|
|
323
|
+
? {depth: optionsOrDepth}
|
|
324
|
+
: optionsOrDepth;
|
|
325
|
+
return withCounterbore(
|
|
326
|
+
plainHole(spec, options),
|
|
327
|
+
spec,
|
|
328
|
+
options,
|
|
329
|
+
defaultCounterbore,
|
|
330
|
+
);
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
/** Add a head recess to a centered Y-axis passage, preserving its references. */
|
|
334
|
+
export function withCounterbore(
|
|
335
|
+
shaft: ClearanceHole,
|
|
336
|
+
spec: Pick<HeadSpecification, 'headDiameter' | 'headHeight'> &
|
|
337
|
+
Readonly<{counterboreDiameter?: number}>,
|
|
338
|
+
options: Pick<ClearanceHoleOptions, 'depth' | 'counterbore'>,
|
|
339
|
+
defaultCounterbore = false,
|
|
340
|
+
): ClearanceHole | CounterboredHole {
|
|
341
|
+
const counterboreOption = options.counterbore ?? defaultCounterbore;
|
|
342
|
+
if (counterboreOption === false) return shaft;
|
|
343
|
+
const counterbore = counterboreOption === true ? {} : counterboreOption;
|
|
344
|
+
const axialClearance = counterbore.axialClearance ?? 0.5;
|
|
345
|
+
if (!Number.isFinite(axialClearance) || axialClearance < 0)
|
|
346
|
+
throw new Error('Axial clearance must be a nonnegative finite number.');
|
|
347
|
+
const depth = counterbore.depth ?? spec.headHeight + axialClearance;
|
|
348
|
+
const diameter =
|
|
349
|
+
counterbore.diameter ?? spec.counterboreDiameter ?? spec.headDiameter + 1;
|
|
350
|
+
positive('Counterbore depth', depth);
|
|
351
|
+
positive('Counterbore diameter', diameter);
|
|
352
|
+
if (depth > options.depth)
|
|
353
|
+
throw new Error('Counterbore depth must be within the total hole depth.');
|
|
354
|
+
if (diameter < spec.headDiameter)
|
|
355
|
+
throw new Error('Counterbore diameter must accommodate the screw head.');
|
|
356
|
+
const recess = atY(
|
|
357
|
+
cylinder(diameter / 2, depth),
|
|
358
|
+
(options.depth - depth) / 2,
|
|
359
|
+
);
|
|
360
|
+
return union([shaft, recess]).expose({
|
|
361
|
+
shaftTop: shaft.shaftTop,
|
|
362
|
+
shaftBottom: shaft.shaftBottom,
|
|
363
|
+
shaftAxis: shaft.shaftAxis,
|
|
364
|
+
counterboreTop: recess.up,
|
|
365
|
+
counterboreBottom: recess.down,
|
|
366
|
+
});
|
|
367
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GB/T 2672-2017 (MOD ISO 14583:2011).
|
|
3
|
+
* Shares the corresponding ISO module's nominal geometry within our preset
|
|
4
|
+
* range. See the package README for sizes, hole allowances and modeling limits.
|
|
5
|
+
* https://std.samr.gov.cn/gb/search/gbDetailed?id=71F772D818CAD3A7E05397BE0A0AB82A
|
|
6
|
+
*/
|
|
7
|
+
export * from './iso-14583.js';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GB/T 5281-1985 (EQV ISO 7379:1983).
|
|
3
|
+
* Shares the corresponding ISO module's nominal geometry within our preset
|
|
4
|
+
* range. See the package README for sizes, hole allowances and modeling limits.
|
|
5
|
+
* https://std.samr.gov.cn/gb/search/gbDetailed?id=71F772D7AF1AD3A7E05397BE0A0AB82A
|
|
6
|
+
*/
|
|
7
|
+
export * from './iso-7379.js';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GB/T 5782-2025 (MOD ISO 4014:2022).
|
|
3
|
+
* Shares the corresponding ISO module's nominal geometry within our preset
|
|
4
|
+
* range. See the package README for sizes, hole allowances and modeling limits.
|
|
5
|
+
* https://std.samr.gov.cn/gb/search/gbDetailed?id=jAnZliYiA5M%3D&mode=p
|
|
6
|
+
*/
|
|
7
|
+
export * from './iso-4014.js';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GB/T 5783-2025 (MOD ISO 4017:2022).
|
|
3
|
+
* Shares the corresponding ISO module's nominal geometry within our preset
|
|
4
|
+
* range. See the package README for sizes, hole allowances and modeling limits.
|
|
5
|
+
* https://std.samr.gov.cn/gb/search/gbDetailed?id=42BA7D06A331E936E06397BE0A0ACDC9
|
|
6
|
+
*/
|
|
7
|
+
export * from './iso-4017.js';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GB/T 70.1-2008 (MOD ISO 4762:2004).
|
|
3
|
+
* Shares the corresponding ISO module's nominal geometry within our preset
|
|
4
|
+
* range. See the package README for sizes, hole allowances and modeling limits.
|
|
5
|
+
* https://std.samr.gov.cn/gb/search/gbDetailed?id=71F772D7F825D3A7E05397BE0A0AB82A
|
|
6
|
+
*/
|
|
7
|
+
export * from './iso-4762.js';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GB/T 70.2-2025 (MOD ISO 7380-1:2022).
|
|
3
|
+
* Shares the corresponding ISO module's nominal geometry within our preset
|
|
4
|
+
* range. See the package README for sizes, hole allowances and modeling limits.
|
|
5
|
+
* https://openstd.samr.gov.cn/bzgk/std/newGbInfo?hcno=6F19BF92846B48BF27058E2B5299935E
|
|
6
|
+
*/
|
|
7
|
+
export * from './iso-7380-1.js';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GB/T 70.3-2023 (MOD ISO 10642:2019).
|
|
3
|
+
* Shares the corresponding ISO module's nominal geometry within our preset
|
|
4
|
+
* range. See the package README for sizes, hole allowances and modeling limits.
|
|
5
|
+
* https://std.samr.gov.cn/gb/search/gbDetailed?id=FC816D05003162EBE05397BE0A0AD5FA
|
|
6
|
+
*/
|
|
7
|
+
export * from './iso-10642.js';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GB/T 70.4-2025 (MOD ISO 7380-2:2022).
|
|
3
|
+
* Shares the corresponding ISO module's nominal geometry within our preset
|
|
4
|
+
* range. See the package README for sizes, hole allowances and modeling limits.
|
|
5
|
+
* https://std.samr.gov.cn/gb/search/gbDetailed?id=42BA7D06A4DCE936E06397BE0A0ACDC9
|
|
6
|
+
*/
|
|
7
|
+
export * from './iso-7380-2.js';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GB/T 80-2007 (MOD ISO 4029:2003).
|
|
3
|
+
* Shares the corresponding ISO module's nominal geometry within our preset
|
|
4
|
+
* range. See the package README for sizes, hole allowances and modeling limits.
|
|
5
|
+
* https://std.samr.gov.cn/gb/search/gbDetailed?id=71F772D7890DD3A7E05397BE0A0AB82A
|
|
6
|
+
*/
|
|
7
|
+
export * from './iso-4029.js';
|